みなさん、こんにちは。サニービュー事業部の小寺です。
ルートアカウントあてに「[お知らせ] Amazon S3 の AWS CloudTrail データイベントの拡張 | [Announcement] Amazon S3 expansion of AWS CloudTrail data events」という通知を受け取られた方もいらっしゃるかと思います。

何が変わるのか?簡単にお伝えしたいと思います。

今までの AWS CloudTrailデータイベントの取得は

ほとんどの Amazon S3 APIアクションでは、AWS CloudTrail はオブジェクトレベルのデータイベントをリクエスタとバケット所有者の両方に配信します。
4 つのオブジェクトレベル API (GetObject、GetObjectAcl、PutObjectAcl および HeadObject) については、オブジェクトのアクセスコントロールリスト (ACL) を使用して読み取りアクセスが明示的に付与されていない場合、
バケット所有者は CloudTrail イベントを受け取ることができませんでした。

AWS CloudTrailデータイベントとは

AWS CloudTrailは、誰が、いつ、何に対して、何をしたかという利用状況の管理及び証跡が確認できるマネージドサービスです。AWS CloudTrailには管理イベントとデータイベントの2種類が存在します。

AWS CloudTrailはデフォルトで管理イベントを90日間、無料で記録しています。管理イベントは、AWS アカウントのリソースで実行された管理オペレーションに関する情報が表示されます。

しかし、データイベントはデフォルトの状態では「OFF」になっており、ログに記録されません。ログに記録するためには、設定が必要で、記録したイベント数に応じた利用料金が発生します。

S3オブジェクトレベルの API アクティビティやLambda 関数の実行アクティビティ、DynamoDBテーブルの読み取り、書き込みについて、記録したい場合はデータイベントの記録が必要です。また、証跡として、アクティビティを収集する、サポート対象のリソースまたはリソースタイプを明示的に追加する必要があります。

そもそもAWS CloudTrailで取得できるS3のアクションは

◆AWSアカウントレベルのアクション
AWSアカウントレベルでは、以下のアクションが追跡可能です。
・DeleteAccountPublicAccessBlock
・GetAccountPublicAccessBlock
・PutAccountPublicAccessBlock

◆Amazon S3 バケットレベルのアクション
Amazon S3バケットレベルのAPIアクションでは、以下のアクションが追跡可能です。
・CreateBucket
・DeleteBucket
・DeleteBucketCors
・DeleteBucketEncryption
・DeleteBucketLifecycle
・DeleteBucketPolicy
・DeleteBucketReplication
・DeleteBucketTagging
・DeleteBucketPublicAccessBlock
・GetBucketAcl
・GetBucketCors
・GetBucketEncryption
・GetBucketLifecycle
・GetBucketLocation
・GetBucketLogging
・GetBucketNotification
・GetObjectLockConfiguration
・GetBucketPolicy
・GetBucketReplication
・GetBucketRequestPayment
・GetBucketTagging
・GetBucketVersioning
・GetBucketWebsite
・GetBucketPublicAccessBlock
・ListBuckets
・PutBucketAcl
・PutBucketCors
・PutBucketEncryption
・PutBucketLifecycle
・PutBucketLogging
・PutBucketNotification
・PutBucketPolicy
・PutBucketReplication
・PutBucketRequestPayment
・PutBucketTagging
・PutBucketVersioning
・PutBucketWebsite
・PutBucketPublicAccessBlock

オブジェクトレベルの Amazon S3 アクションの CloudTrail ログを取得することもできます。取得するには、S3 バケットまたはアカウント内のすべてのバケットのデータイベントを有効にします。

いつから何が変わるの?

メールの通知内容によると、2022年11月9日に、S3バケットのオブジェクトレベルのアクセス許可や ACLの設定とは関係なく、すべてのオブジェクトレベル APIアクションのデータイベントをバケット所有者に配信がされるようになります。

予定では、有効化後一週間ほどの期間に、すべてのリクエストに対して本アップデートが有効になるとのことです。
徐々に有効になっていくとのことなので、11月16日までを目安にGetObject、GetObjectAcl、PutObjectAcl および HeadObjectのログが出力されていくという解釈でいます。