S3 APIコールの違いを完全マスター
AWS CloudTrail 完全ガイド
PutBucketPolicy, DeleteBucketPolicy など
→ デフォルトで記録される(無料枠あり)
PutObjectAcl, GetObject, PutObject など
→ 明示的に有効化が必要(追加料金)
• s3:PutBucketPolicy →
管理イベント
• s3:DeleteBucketPolicy →
管理イベント
• s3:PutObjectAcl →
データイベント
「コントロールプレーン」= お店全体の管理
「データプレーン」= 個々のお客様対応
💡
ポイント
:お店全体のルール変更(管理イベント)は回数が少なく重要なので
デフォルトで記録
。
一方、各テーブルでの活動(データイベント)は膨大な量になるため
オプションで有効化
が必要!
Management Events
コントロールプレーン操作バケットの作成・削除、ポリシー変更、ライフサイクル設定など 「バケット全体」 に影響する操作
比較的 低頻度 (設定変更は頻繁に行わない)
CloudTrailコンソールの イベント履歴 で直接確認可能
90日間
自動保存(無料)
それ以上はTrail設定でS3に保存
Data Events
データプレーン操作オブジェクトのアップロード・ダウンロード・削除・権限変更など 「個々のファイル」 に対する操作
非常に高頻度 (毎秒何千回ものアクセスも)
イベント履歴では見られない
Athena
や
CloudWatch Logs
でクエリが必要
追加料金が発生
100,000イベントあたり$0.10~
バケット全体に適用される アクセスポリシー を設定・更新する
お店の
入店ルール
を決める
「会員限定」「予約必須」など
バケットに設定されている アクセスポリシーを削除 する
お店の
入店制限を解除
する
「誰でもウェルカム!」に変更
特定の オブジェクト(ファイル)のACL (アクセス制御リスト)を変更する
特定の
席の予約権限
を変更
「この席はVIP専用に」
API名に
「Bucket」
が含まれる
バケット全体の設定に影響
例: PutBucket○○, DeleteBucket○○
API名に
「Object」
が含まれる
個別ファイルに対する操作
例: PutObject○○, GetObject, DeleteObject
PutBucketAcl
→ 管理イベント
PutObjectAcl
→ データイベント
同じ「Acl」でも対象が違う!
AWSコンソールで
CloudTrailを開く
Trailを新規作成
または既存を編集
S3 → 全バケットまたは
特定バケットを選択
Read/Write/両方から
記録対象を選択
データイベントは高頻度のため、全バケットで有効化すると
予想外の高額請求
になることも。
まずは
重要なバケットのみ
で有効化し、コストを監視することをお勧めします。
| 項目 | 🔵 管理イベント | 🟣 データイベント |
|---|---|---|
| 別名 | コントロールプレーン | データプレーン |
| 対象 | バケット全体の設定 | 個別オブジェクト |
| デフォルト有効 | ✅ 有効 | ❌ 無効 |
| イベント履歴で確認 | ✅ 可能 | ❌ 不可 |
| 無料保存期間 | 90日間 | なし(Trail必須) |
| 追加料金 | 基本無料 | $0.10/100,000イベント~ |
| S3 APIの例 |
PutBucketPolicy
DeleteBucketPolicy PutBucketAcl |
PutObject
GetObject PutObjectAcl |
「誰がバケットポリシーを変更したか」を追跡したい
🔵 管理イベントで十分「誰がどのファイルにアクセスしたか」を追跡したい
🟣 データイベント必須バケット設定の変更履歴を保持する必要がある
🔵 管理イベントで十分どのファイルが頻繁にアクセスされているか分析
🟣 データイベント必須「誰がファイルを削除したか」を特定したい
🟣 データイベント必須バケットが意図せず公開されていないか監視
🔵 管理イベント + EventBridge
"managementEvent": true
というフィールドがあります。
true
なら管理イベント、
false
ならデータイベントです。
Created by SSuzuki1063
AWS SAP Learning Resources