S3のアクセスログ設定方法
S3にアクセスログを設定する
概要
- Amazon S3にサーバーアクセスのログ記録を設定する方法を紹介します。アクセスログを設定することで、アプリケーションの履歴やセキュリティ観点でのアクセス記録を簡単に取得することが可能です。
- アクセスログの設定を有効にしても追加料金はかかりません。ただし、システムが配信するいずれのログファイルの格納に対しても通常の料金がかかります(ログはいつでも削除できます)。 ログファイルの配信に伴うデータ転送料金はありませんが、配信済みのログファイルへのアクセスには、他のすべてのデータ転送と同じ料金がかかります。
- アクセスログはデフォルトでは無効になっています。
- ソースバケットとターゲットバケットの両方を同じ AWS アカウントが所有すること、さらに両方のバケットが同じリージョンにあることが必要です。(出典:Amazon Simple Storage Service開発者ガイド)
- 当初別のAWSアカウントにアクセスログを集約するつもりでしたので、上記は想定外でした…
ソースバケットの設定
- S3バケットのプロパティを開きます。
- サーバーアクセスのログ記録を有効にします(デフォルトは無効)。
- プレフィックスを指定します(任意)。ソースバケットが複数存在する場合は、判別できるようにプレフィックスを付けることをお勧めします。
- 後でS3 のライフサイクル設定ルールを使用してオブジェクトを削除するときにもプレフィックスが役立ちます。
ターゲットバケットの設定
- 特にターゲットバケットでは設定不要です。
- ソースバケットで、サーバーアクセスのログ記録が有効に設定されると、ターゲットバケットのアクセス権限において、自動的にS3 ログ配信グループでオブジェクトの書き込み権限が付与されます。
- アクセスログには、レコードごとに 1 つのアクセスリクエストの詳細として、リクエスタ、バケット名、リクエスト時刻、リクエストアクション、レスポンスのステータス、エラーコード (存在する場合) などの情報が取り込まれます。