#サマリ
S3バケットに対するアクションログの保存方法としてS3サーバーアクセスログ と CloudTrailログ の2種類があります。
基本的にCloudTrailの方が多機能ですが、一部のユースケースではS3サーバーアクセスログを使います。
それぞれの特徴を大まかに整理します。
#「S3バケットに対するアクション」とは?
ユーザー、ロール、またはその他AWSサービスによって実行されたAPIコールのこと。
いずれかの手段で記録可能。
##先におさえておくポイント
・「CloudTrailログ」の手段は単純にCloudTrailのログをS3に配信するというイメージなので「S3バケットの基本機能」が使える。なので多機能に見える。
・「S3サーバーアクセスログ」はS3の持つ1機能に過ぎないので、できることは限られている。
・実際にコンソールから確認してみるとわかりやすい。
#2種類のロギング手段
各手段の主要な特徴をメモします。
「→」で筆者コメント入れました。
網羅的な情報はマニュアルを参照ください。
##CloudTrailログ
・CloudWatch LogsやCloudWatch Eventsに転送可能
・ログを異なる複数の宛先に配信する
・異なるAWSアカウントが所有するバケットに配信可能
→これは便利かな。ログ集約用アカウントに配信するとか。
・ログファイルの暗号化
・ログを検索できるUI
→これはCloudTrailダッシュボードのことかな
・配信はデータイベントは5分ごと、管理イベントは15分ごと
・ログの形式はJSON
→JSONの方が色々ハンドリングはしやすい?
##S3サーバーアクセスログ
・ログレコードのフィールド(Object Size, Total Time, Turn-Around Time, HTTP Referer)
→「Object Size」とか見れるのは便利そう?
・認証の失敗をロギング
・ライフサイクル設定(移行、失効、リストア)
→
・ログは数時間以内の配信
・スペースで区切られ、改行で分割されたレコードを持つログファイル
##共通事項
・S3 APIを使用可能(オブジェクト操作、バケット操作)
##コンソールで確認してみる
###S3サーバーアクセスログ
設定できるのは有効・無効のみ。
###CloudTrailログ
以下はCloudTrailの設定画面。
KMSによる暗号化やログファイルの検証設定を行えることがわかる。
これらに加えて、配信先のS3バケットでライフサイクルルール等を設定することももちろん可能。
#参考
Amazon S3 でのログ記録
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/logging-with-S3.html
AWS CloudTrail を使用した Amazon S3 API コールのログ記録
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/cloudtrail-logging.html