高度なイベントセレクター
高度なイベントセレクターについて
AWS CloudTrail の高度なイベントセレクターは、equals、not equals、starts with、ends with などの演算子を使用したフィールドベースの条件で特定の選択基準を定義することにより、どのデータイベントを記録するかをきめ細かく制御できます。このきめ細かなアプローチにより、組織はセキュリティ、コンプライアンス、および運用要件に関連するデータイベントのみをキャプチャしながら、過剰なイベントログに関連するコストを削減できます。
高度なイベントセレクターは、フィールドセレクター、演算子、および値で構成されています。各セレクターには、選択基準を定義するフィールドセレクターの配列が含まれており、各フィールドセレクターはフィールド名(eventCategory、eventName、resources.type など)、演算子(Equals、NotEquals、StartsWith、EndsWith)、および照合する 1 つ以上の値を指定します。単一の高度なイベントセレクター内の複数のフィールドセレクター間の関係は論理 AND であり、イベントが記録されるためにはすべての条件が満たされる必要があります。

サポートされているフィールドと演算子
CloudTrail の高度なイベントセレクターは、データイベントの AWS API コールのあらゆる側面をカバーする包括的なフィールドセットをサポートしています。主なフィールドには、特定の API オペレーションを指定する eventName、AWS リソースタイプを指定する resources.type、特定のリソース識別子を指定する resources.ARN、読み取りオペレーションと書き込みオペレーションを区別する readOnly が含まれます。各フィールドは特定の演算子をサポートしており、Equals と NotEquals は完全一致で機能し、StartsWith と EndsWith はパターンベースの選択を可能にします。効果的な選択戦略を作成するには、これらの組み合わせを理解することが重要です。
以下では、高度なイベントセレクターを使用して、AWS リソースに関連する特定のデータイベントを選択する方法の例を示します。
Amazon S3
クリティカル書き込み操作セレクター
このセレクターは、データの持ち出し、不正な変更、またはコンプライアンス違反を示す可能性のある高リスクな S3 オペレーションに焦点を当てています。機密バケットへの書き込みオペレーションのみを記録することで、組織は S3 イベントのログ量を削減しながら悪意のあるアクティビティを検出できます。このアプローチは、日常的な読み取りオペレーションによってセキュリティチームが圧倒されることなく、セキュリティの可視性を維持するために不可欠です。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::S3::Object"]
},
{
"Field": "eventName",
"Equals": ["DeleteObject", "PutObject", "RestoreObject"]
},
{
"Field": "resources.ARN",
"StartsWith": ["arn:aws:s3:::sensitive-bucket/", "arn:aws:s3:::compliance-bucket/"]
}
]
}
]
AWS Lambda 関数のモニタリング
本番関数呼び出しセレクター
Lambda 呼び出しの監視は、不正な関数の実行や異常なアクセスパターンを検出するために不可欠です。このセレクターは、本番環境および重要な関数の命名パターンで始まる Lambda 関数を対象とし、開発用命名パターンの環境を除外することで、ノイズを低減してビジネスクリティカルなアクティビティに集中できます。パ ターンベースの ARN 選択により、命名規則に従った新しい関数が自動的に対象となり、スケーラブルなセキュリティ監視を実現します。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::Lambda::Function"]
},
{
"Field": "eventName",
"Equals": ["Invoke"]
},
{
"Field": "resources.ARN",
"StartsWith": ["arn:aws:lambda:us-east-1:123456789012:function:prod-", "arn:aws:lambda:us-east-1:123456789012:function:critical-"]
}
]
}
]
DynamoDB テーブルオペレーション
書き込み操作と機密テーブルセレクター
DynamoDB は大量のイベントを生成するため、コスト管理とセキュリティへの集中のために選択的なイベント選択が不可欠です。これらのセレクターは、不正アクセスやデータ改ざんを示す可能性のあるデータ変更イベントをキャプチャしながら、ルーティンな読み取り操作を除外します。以下の例における組み合わせアプローチにより、特定のテーブルに対する特定の書き込み操作と、定義された機密テーブルに対するすべての操作を記録することができ、過剰なコストをかけることなく包括的なカバレッジを実現します。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::DynamoDB::Table"]
},
{
"Field": "eventName",
"Equals": ["PutItem", "UpdateItem", "DeleteItem", "BatchWriteItem"]
},
{
"Field": "resources.ARN",
"Equals": ["arn:aws:dynamodb:us-east-1:123456789012:table/UserData"]
}
]
},
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::DynamoDB::Table"]
},
{
"Field": "resources.ARN",
"StartsWith": ["arn:aws:dynamodb:us-east-1:123456789012:table/Financial"]
}
]
}
]
Amazon SQS キューのモニタリング
管理操作セレクター
SQS の管理操作は、メッセージフローを中断したりキューのアクセス許可を変更したりする可能性があるため、特定のセキュリティリスクをもたらす可能性があります。このセレクターの例は、権限昇格やサービス妨害の試みを示す可能性のあるキュー管理アクティビティに焦点を当てています。大量のメッセージ操作を除外することで、このアプローチはセキュリティ関連の管理変更への可視性を維持しながら、ログ記録コストを削減します。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::SQS::Queue"]
},
{
"Field": "eventName",
"Equals": ["CreateQueue", "DeleteQueue", "SetQueueAttributes", "AddPermission", "RemovePermission"]
}
]
}
]
Amazon SNS トピック操作
トピック管理とクリティカルトピックセレクター
SNS のモニタリングでは、重要なトピックに対する管理上の監視とメッセージフローの可視性のバランスを取る必要があります。これらのセレクターは、通知配信に影響を与える可能性のあるトピック管理オペレーションをキャプチャし、セキュリティ上重要なトピックのすべてのアクティビティを監視します。マルチセレクターアプローチにより、選択的なトピック選 択によって全体的なログ量を削減しながら、重要なコミュニケーションチャネルの包括的なモニタリングが可能になります。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::SNS::Topic"]
},
{
"Field": "eventName",
"Equals": ["CreateTopic", "DeleteTopic", "Subscribe", "Unsubscribe", "SetTopicAttributes"]
}
]
},
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::SNS::Topic"]
},
{
"Field": "resources.ARN",
"Equals": ["arn:aws:sns:us-east-1:123456789012:security-alerts"]
}
]
},
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::SNS::Topic"]
},
{
"Field": "resources.ARN",
"StartsWith": ["arn:aws:sns:us-east-1:123456789012:compliance-"]
}
]
}
]
ユーザー ID ベースのセレクター
特権ユーザーモニタリングセレクター
ユーザー ID の選択により、特定の IAM アイデンティティによって実行されたアクションのイベントを含めたり除外したりすることができます。次の例では、2 つのアプローチを示しています。自動化されたプロセスからのノイズを減らすために S3 オブジェクトのログ記録から特定のサービスロールを除外する方法と、高リスクなアクティビティに焦点を当てるために DynamoDB テーブル操作の特権ロールのみを記録する方法です。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::S3::Object"]
},
{
"Field": "userIdentity.arn",
"NotStartsWith": ["arn:aws:sts::123456789012:assumed-role/service-role/backup-automation-role", "arn:aws:sts::123456789012:assumed-role/service-role/monitoring-role"]
}
]
},
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::DynamoDB::Table"]
},
{
"Field": "userIdentity.arn",
"StartsWith": ["arn:aws:sts::123456789012:assumed-role/AdminRole/", "arn:aws:sts::123456789012:assumed-role/SecurityRole/"]
}
]
}
]
Organization Trail とイベントデータストア (EDS) セレクター
アカウントレベルの除外セレクター
組織トレイルまたは Event Data Store (EDS) 設定では、コストを削減し重要なアカウントに集中するために、S3 データイベントのログ記録から特定のアカウント全体を除外できます。このセレクターは、userIdentity.arn フィールドを使用して特定のアカウントの任意の ID と照合することで、そのアカウントからのすべての S3 データイベントを除外します。このアプローチは、本番アカウントのカバレッジを維持しながら、開発アカウントやテストアカウントを包括的なログ記録から除外する場合に特に有効です。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::S3::Object"]
},
{
"Field": "userIdentity.arn",
"NotStartsWith": ["arn:aws:sts::111122223333:", "arn:aws:iam::111122223333:"]
}
]
}
]
userIdentity ARN タイプは、上記の STS および IAM の例に示されているものを超えて拡張される場合があることにご注意ください。組織内で現在使用されているすべての userIdentity ARN タイプを確認することをお勧めします。
複数の S3 バケット除外セレクター
組織全体のログ管理において、バックアップバケット、一時ストレージ、自動処理バケットなど、大量かつ低価値なイベントを生成する複数の S3 バケットを除外する必要が生じる場合があります。このセレクターは、他のすべての S3 リソースのログを維持しながら、複数の特定バケットを除外する方法を示しています。このアプローチでは、複数の NotStartsWith 条件を使用して、異なるバケット ARN パターンを効率的に除外します。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::S3::Object"]
},
{
"Field": "resources.ARN",
"NotStartsWith": [
"arn:aws:s3:::backup-bucket-",
"arn:aws:s3:::temp-processing-",
"arn:aws:s3:::automated-logs-",
"arn:aws:s3:::dev-sandbox-"
]
}
]
}
]
サポートされている追加フィールドの例
書き込み操作セレクター
readOnly フィールドセレクターは、環 境への実際の変更を表すイベントに焦点を当てるために不可欠です。書き込み操作のみを選択することで、セキュリティやコンプライアンスに影響を与える可能性のあるすべてのアクションへの可視性を維持しながら、ログのボリュームを削減できます。このセレクターは、特定のリソースタイプやイベントソースと組み合わせると特に効果的です。
サービス固有のイベントソースセレクター
イベントソース選択により、リソースタイプ選択の複雑さを伴わずに、特定の AWS サービスを対象としたモニタリングが可能になります。このアプローチは、関与する特定のリソースに関わらず、特定のサービスに包括的なログ記録が必要なコンプライアンスシナリオに最適です。このセレクターにより、サービス間のノイズを大幅に削減しながら、指定されたサービスの完全なカバレッジを確保できます。
特定の API オペレーションのモニタリング
イベント名の選択は、CloudTrail ログに対して最も細かい制御を提供し、組織がすべてのサービスにわたって特定の API オペレーションを監視できるようにします。このアプローチは、特定の攻撃パターンの検出、重要なオペレーションの監視、または厳密なコンプライアンス要件の充足に役立ちます。このセレクターはログ量を大幅に削減しながら、高リスクなオペレーションへの的確な可視性を提供します。
リソースタイプの組み合わせ選択
リソースタイプの選択と操作タイプの選択を組み合わせることで、強力かつ的を絞った監視機能が実現します。次の例では、3 つの異なるアプローチを示しています。S3 オブジェクトへの書き込み操作の記録、特定の DynamoDB 書き込み操作のキャプチャ、および S3 バケットへの書き込み操作のログ記録です。この組み合わせにより、組織は特定のリソースタイプに対して特定の操作タイプを記録できるようになり、不要なログを最小限に抑えながら、精密なセキュリティカバレッジを提供します。
[
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::S3::Object"]
},
{
"Field": "readOnly",
"Equals": ["false"]
}
]
},
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::DynamoDB::Table"]
},
{
"Field": "eventName",
"Equals": ["PutItem", "UpdateItem", "DeleteItem"]
}
]
},
{
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": ["Data"]
},
{
"Field": "resources.type",
"Equals": ["AWS::S3::Bucket"]
},
{
"Field": "readOnly",
"Equals": ["false"]
}
]
}
]
コスト最適化戦略
イベントボリュームの分析と削減
効果的なコスト最適化は、現在のイベントボリュームを把握し、セキュリティやコンプライアンス要件を損なうことなく削減できる機会を特定することから始まります。CloudTrail ログを分析して大量のイベントを特定し、安全に除外できるイベントを判断してください。この分析により、高度なイベントセレクター戦略を決定するのに役立ちます。
戦略的な選択アプローチ
セキュリティおよびコンプライアンスイベントを優先しながら、定常的な運用アクティビティを段階的に除外する階層型の選択アプローチを実装してください。セキュリティ関連イベントに対して広範な包含基準から始め、既知の定常的な運用に対して特定の除外条件を追加します。たとえば、すべての書き込み操作を含めつつ、予測可能でリスクの低いイベントを生成する特定の自動化プロセスを除外します。StartsWith および EndsWith 演算子を使用 してパターンベースのセレクターを作成することで、予期しないアクティビティや潜在的に悪意のあるアクティビティのカバレッジを維持しながら、定常的なイベントのカテゴリ全体を効率的に除外できます。
リソースベースのコスト管理
リソースの重要度と機密性レベルに基づいて選択戦略を整理してください。本番リソース、機密データストア、セキュリティ上重要なサービスには包括的なログ記録を実装し、開発環境やテスト環境にはより積極的な選択基準を適用してください。リソース ARN パターンを使用して、命名規則に基づいた適切なログレベルを自動的に適用してください。このアプローチにより、最も重要なアセットのセキュリティモニタリングを損なうことなくコスト最適化を実現しつつ、重要度の低いリソースに対する不要なログ記録のオーバーヘッドを削減できます。
セキュリティとコンプライアンスに関する考慮事項
セキュリティの可視性の維持
高度なイベントセレクターを通じてコストを最適化しながらも、包括的なセキュリティの可視性を維持することが最も重要です。選択戦略が、セキュリティインシデントを示す可能性のあるすべてのイベントをキャプチャするようにしてください。イベントセレクターを定期的にレビューおよびテストすることで、環境の進化に合わせてセキュリティモニタリング機能の有効性を維持できます。
コンプライアンス要件の統合
さまざまなコンプライアンスフレームワークには、高度なイベントセレクターを設計する際に考慮しなければならない監査ログに関する固有の要件があります。コンプライアンス要件を特定の CloudTrail イベントにマッピングし、高度なイベントセレクターが必要なすべてのアクティビティをキャプチャしていることを確認してください。選択の決定を文書化し、ログ戦略が規制要件を満たしていることを示す証拠を維持してください。
インシデント対応の準備
インシ デントレスポンスの要件を念頭に置いて高度なイベントセレクターを設計し、フォレンジック分析と脅威ハンティング活動をサポートするのに十分な詳細を確実に取得してください。認証イベント、ネットワークアクセスパターン、リソース設定変更など、セキュリティインシデントに関するコンテキストを提供するイベントを含めてください。インシデントレスポンスのタイムライン要件を考慮し、ログ戦略が調査のための十分な履歴データを提供することを確認してください。既知のインシデントシナリオに対してイベントセレクターをテストし、効果的なレスポンスに必要な情報を取得できることを検証してください。
実装のベストプラクティス
段階的デプロイ戦略
高度なイベントセレクターを段階的なアプローチで実装することで、本番環境への完全なデプロイ前にテストと改善が可能になります。まず非本番環境でパイロット実装を開始し、選択ロジックを検証してイベント量とコストへの影響を測定します。選択戦略の有効性を監視しながら、段階的に実装を拡大していきます。このアプローチにより、本番環境のログ記録機能に影響が出る前に問題を特定して対処でき 、実際の使用パターンに基づいてセレクターを改善する機会も得られます。
モニタリングと検証
CloudTrail の高度なイベントセレクターに対して包括的なモニタリングを確立し、セキュリティおよびコンプライアンス要件を長期にわたって継続的に満たせるようにしてください。イベントセレクターが期待されるイベントをキャプチャしており、重要なアクティビティを意図せず除外していないことを検証する自動バリデーションチェックを実装してください。セレクターの有効性を定期的に見直すことで、コスト最適化とセキュリティの可視性のバランスを維持することができます。
高度な選択テクニック
パターンベースのリソース選択
StartsWith および EndsWith オペレーターを活用して、多数のリソースを効率的に管理できる高度なパターンベースのセレクターを作成します。たとえば、リソース ARN の命名規則を使用して、環境、機密性、またはビジネスユニットに基づいて適切なログレベルを自動的に適用します。パターンベースの選択は、一貫した命名標準を持つ組織に特に効果的であり、大規模な AWS 環境全体でイベントセレクターを管理する複雑さを大幅に軽減できます。このアプローチは、確立された命名パターンに従う新しいリソースに対して自動的なカバレッジも提供します。
複数条件ロジックの実装
高度なイベントセレクターは、高度な選択ルールを作成するために使用できる複雑な論理条件をサポートしています。単一の高度なイベントセレクター内で複数のフィールドセレクターを組み合わせて AND 条件を作成するか、複数の高度なイベントセレクターを使用して OR 条件を作成します。たとえば、機密リソースに対するすべての書き込み操作、または特権ユーザーによって実行された任意の操作をキャプチャするセレクターを作成することができます。条件を効果的に組み合わせる方法を理解することで、必要なイベントを正確にキャプチャしながら、それ以外のすべてを除外する精密な選択ルールを作成できます。