目次
1.S3アクセスログとは
S3バケットやファイルに対して、いつ・どこから・どのようなアクセスがあったかを記録するログです。一般にS3サーバーアクセスログを指します。
例えば、S3に保存したreport.csvをダウンロードすると、そのリクエストの日時、アクセス元、操作内容、処理結果などが記録されます。
利用者・アプリ → S3にアクセス → アクセス内容をログに記録
2.記録される主な情報
| 情報 | 何がわかるか |
|---|---|
| アクセス日時 | いつアクセスしたか |
| アクセス元IPアドレス | どこからアクセスしたか |
| リクエスト元 | アクセスした利用者などの識別情報(匿名アクセスなどでは識別できない場合があります) |
| 操作内容 | ファイルの取得、アップロード、削除など |
| 対象ファイル | アクセス対象のオブジェクトキー。例:report.csv |
| 処理結果 | HTTPステータスやエラーコード。例:成功、アクセス拒否 |
| 転送量・処理時間 | 何バイト送信し、処理にどのくらい時間がかかったか |
3.どのようなときに使うか
アクセス状況の確認
どのファイルにアクセスがあるかを調べる。
エラー調査
アクセス拒否などの失敗したリクエストを調べる。
通信状況の分析
転送量や処理時間を確認する。
ログはリクエストの記録です。記録を有効にすること自体が、不正アクセスを遮断する設定になるわけではありません。
4.設定と保存先・料金
初期状態は無効なので、記録するには設定が必要です。
- S3コンソールで、記録対象のバケットを開く。
- 「プロパティ」を開く。
- 「サーバーアクセスのログ記録」で「編集」を選ぶ。
- ログ記録を有効にして、保存先バケットと必要に応じてプレフィックスを指定する。
S3バケットにログを保存する場合、保存先には同じAWSアカウント・同じリージョンの別バケットを使うことが推奨されます。ログ保存先バケットでは、サーバーアクセスログを有効にしないようにします。
ログ記録自体に追加料金はかかりません。ただし、保存されたログには通常のS3保存料金などがかかります。
5.CloudTrailとの違い
| ログ | 主な観点 |
|---|---|
| S3サーバーアクセスログ | S3へのアクセスの詳細。HTTPの処理結果、転送量、処理時間など。 |
| CloudTrail | ユーザーやロールが、どのAWS操作を行ったか。S3ファイルの取得・削除などはデータイベントで記録。 |
6.アプリログとの違い
S3アクセスログは「S3へのアクセス」、アプリログは「アプリ内部の処理」を記録するものです。
| 比較項目 | S3アクセスログ | アプリログ |
|---|---|---|
| 記録するもの | S3に対するリクエスト | アプリ内で実行された処理やエラー |
| 記録する仕組み | S3のログ機能を有効にする | アプリやフレームワークが出力する |
| 主な内容 | アクセス日時、アクセス元IP、対象ファイル、操作、HTTPステータスなど | 処理開始・終了、処理件数、業務上のエラー、例外など |
| 調べたいこと | S3へのアクセスが成功したか | アプリの処理が正常に進んだか |
7.ログを見るときの注意点
配信に時間がかかることがあり、すべてのアクセスの記録が保証されるわけではありません。
S3サーバーアクセスログはベストエフォート方式で配信されます。
ログがないことだけでアクセスがなかったとは断定できません。
リアルタイムの監視用というより、アクセスの調査・分析に使うログです。
関連の記事
AWS CloudTrailとは(管理イベント/データイベント)
AWS CloudTrail のデータをAthenaで確認する
