AWS CloudTrail を使用した Amazon S3 API コールのログ記録
Amazon S3 は、ユーザー、ロール、または AWS のサービス が実行したアクションの記録を提供するサービスである AWS CloudTrail と統合されています。CloudTrail は、Amazon S3 へのすべての API コールをイベントとしてキャプチャします。キャプチャされた呼び出しには、Amazon S3 コンソールからの呼び出しと、Amazon S3 API オペレーションへのコード呼び出しが含まれます。CloudTrail で収集された情報を使用して、Amazon S3 に対するリクエスト、リクエスト元の IP アドレス、リクエストの作成日時、その他の詳細を確認できます。
各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます:
-
ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか
-
リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。
-
リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
-
リクエストが、別の AWS のサービス によって送信されたかどうか。
アカウントを作成すると、AWS アカウント で CloudTrail がアクティブになり、自動的に CloudTrail の[イベント履歴] にアクセスできるようになります。CloudTrail の [イベント履歴] では、AWS リージョン で過去 90 日間に記録された 管理イベントの表示、検索、およびダウンロードが可能で、変更不可能な記録を確認できます。詳細については、「AWS CloudTrail ユーザーガイド」の「CloudTrail イベント履歴の使用」を参照してください。[イベント履歴] の閲覧には CloudTrail の料金はかかりません。
AWS アカウント で過去 90 日間のイベントを継続的に記録するには、証跡または CloudTrail Lake イベントデータストアを作成します。
- CloudTrail 証跡
-
証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。AWS Management Console を使用して作成した証跡はマルチリージョンです。AWS CLI を使用する際は、単一リージョンまたは複数リージョンの証跡を作成できます。アカウント内のすべて AWS リージョン でアクティビティを把握するため、マルチリージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョン に記録されたイベントのみを表示できます。証跡の詳細については、「AWS CloudTrail ユーザーガイド」の「AWS アカウント の証跡の作成」および「組織の証跡の作成」を参照してください。
証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金
」を参照してください。Amazon S3 の料金に関する詳細については、「Amazon S3 の料金 」を参照してください。 - CloudTrail Lake イベントデータストア
-
CloudTrail Lake を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを Apache ORC
形式に変換します。ORC は、データを高速に取得するために最適化された単票ストレージ形式です。イベントはイベントデータストアに集約されます。イベントデータストアは、高度なイベントセレクタを適用することによって選択する条件に基いた、イベントのイミュータブルなコレクションです。どのイベントが存続し、クエリに使用できるかは、イベントデータストアに適用するセレクタが制御します。CloudTrail Lake の詳細については、「AWS CloudTrail ユーザーガイド」の「Lake の使用AWS CloudTrail」を参照してください。 CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する料金オプションを選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金
」を参照してください。
必要な場合はログファイルを自身のバケットに保管できますが、ログファイルを自動的にアーカイブまたは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。デフォルトでは Amazon S3 のサーバー側の暗号化 (SSE) を使用して、ログファイルが暗号化されます。
CloudTrail ログを Amazon S3 サーバーアクセスログと CloudWatch Logs と併用する
AWS CloudTrail ログは、Amazon S3 のユーザー、ロール、または AWS のサービスによって実行されたアクションの記録を提供するのに対し、Amazon S3 サーバーアクセスログは、S3 バケットに対して行われたリクエストの詳細な記録を提供します。ログ別の機能とプロパティ、パフォーマンス、コストの詳細については、Amazon S3 のログ記録オプション を参照してください。
AWS CloudTrail ログは、Amazon S3 のサーバーアクセスログと一緒に使用できます。CloudTrail ログを使用すると、Amazon S3 バケットレベルおよびオブジェクトレベルのオペレーションの詳細な API トラッキングが提供されます。Amazon S3 のサーバーアクセスログでは、Amazon S3 内のオブジェクトレベルのデータオペレーションが可視化されます。サーバーアクセスログの詳細については、サーバーアクセスログによるリクエストのログ記録 を参照してください。
CloudTrail ログは、Amazon S3 の Amazon CloudWatch と一緒に使用することもできます。CloudTrail を CloudWatch Logs と統合すると、CloudTrail が取得した S3 バケットレベル API アクティビティが、指定した CloudWatch ロググループの CloudWatch ログストリームに送られます。特定の API アクティビティをモニタリングする CloudWatch アラームを作成し、その API アクティビティが発生した時に電子メールの通知を受け取ることができます。特定の API アクティビティをモニタリングするための CloudWatch アラームの詳細については、AWS CloudTrail ユーザーガイドを参照してください。Amazon S3 と CloudWatch の併用の詳細については、Amazon CloudWatch によるメトリクスのモニタリング を参照してください。
注記
S3 は、VPC エンドポイントポリシーで拒否されている場合、VPC エンドポイントリクエストのリクエスタまたはバケット所有者への CloudTrail ログの配信をサポートしません。
Amazon S3 SOAP API コールを使用した CloudTrail トラッキング
CloudTrail は、Amazon S3 SOAP API コールを追跡します。Amazon S3 SOAP のサポートは HTTP 経由で非推奨ですが、HTTPS 経由では引き続き利用可能です。Amazon S3 SOAP サポートの詳細については、「Amazon S3 API リファレンス」の「Appendix: SOAP API」を参照してください。
重要
新しい Amazon S3 機能は、SOAP ではサポートされません。REST API か AWS SDK を使用することをお勧めします。
次の表は、CloudTrail のログ記録によって追跡される Amazon S3 SOAP アクションを示しています。
SOAP API 名 | CloudTrail ログで使用される API イベント名 |
---|---|
ListBuckets |
|
CreateBucket |
|
DeleteBucket |
|
GetBucketAcl |
|
PutBucketAcl |
|
GetBucketLogging |
|
PutBucketLogging |
CloudTrail と Amazon S3 の詳細については、以下のトピックを参照してください。