高度なイベントセレクター
高度なイベントセレクターについて
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-"
]
}
]
}
]