Amazon S3 サーバーアクセスログが配信されないのはなぜですか?
最終更新日: 2019 年 11 月 19 日
Amazon Simple Storage Service (Amazon S3) サーバーアクセスのログ記録を有効にしました。ただし、ログは配信される予定のバケットに入力されません。この問題を解決するには、どうすればよいですか?
簡単な説明
以下を確認してください。
- ログ配信グループ (配信アカウント) は、ターゲットバケットにアクセスできます。
- ターゲットバケットのバケットポリシーは、ログへのアクセスを拒否してはいけません。
- ターゲットバケットで Amazon S3 オブジェクトロックを有効にすることはできません。
- ターゲットバケットでデフォルトの暗号化が有効になっている場合、暗号化キーとして AES256 (SSE-S3) を選択する必要があります。
- 最近のログ記録設定変更が有効になるまで、しばらく待ってください。
解決方法
ログ配信グループはターゲットバケットにアクセスできる
サーバーアクセスログは、ログ配信グループと呼ばれる配信アカウントによって、ターゲットバケット (ログの送信先バケット) に配信されます。サーバーアクセスログを受信するには、ログ配信グループにターゲットバケットへの書き込みアクセス権が必要です。ターゲットバケットのアクセスコントロールリスト (ACL) を調べて、ログ配信グループに書き込みアクセス権があるかどうかを確認します。
Amazon S3 コンソールを使用してターゲットバケットの ACL を確認および変更するには、以下の手順に従います。
- Amazon S3 コンソールを開きます。
- バケットのリストから、サーバーアクセスログの送信先となるターゲットバケットを選択します。
- [Permissions] タブをクリックします。
- [Access Control List] を選択します。
- [S3 log delivery group] で、グループが [Write objects] にアクセスできるかどうかを確認します。グループに [Write objects] へのアクセス権がない場合は、次のステップに進みます。
- [Log Delivery] を選択します。
- [LogDelivery] ダイアログボックスの [Access to the objects] で、[Write objects] を選択します。
- [Save] をクリックします。
ターゲットバケットのバケットポリシーは、ログへのアクセスを拒否してはいけません。
ターゲットバケットのバケットポリシーを確認します。バケットポリシーで "Effect": "Deny" を含むステートメントを検索します。次に、拒否ステートメントによってアクセスログがバケットに書き込まれないようになっていないことを確認します。
ベストプラクティスは、サーバーアクセスログには別のバケットを使用することです。デフォルトでは、S3 バケットはプライベートであるため、バケットへの不正アクセスを防止するためにバケットポリシーで拒否ステートメントを使用する必要はありません。AWS Identity and Access Management (IAM) ユーザーまたはロールがバケットと同じ AWS アカウントにあり、IAM ID が IAM ポリシーでバケットへのアクセス許可を持っている場合、ユーザーまたはロールはバケットにアクセスできます。
ターゲットバケットで Amazon S3 オブジェクトロックを有効にしてはいけません
ターゲットバケットで オブジェクトロックが有効になっているかどうかを確認します。オブジェクトロックにより、サーバーアクセスログの配信が防止されるため、ログの送信先となるバケットのオブジェクトロックを無効にする必要があります。
ターゲットバケットでデフォルトの暗号化が有効になっている場合、AES256 (SSE-S3) を選択する必要があります。
ターゲットバケットで デフォルトの暗号化 を使用する場合は、暗号化キーとして AES-256 (SSE-S3) が選択されていることを確認します。AWS-KMS (SSE-KMS) を使用した暗号化はサポートされていません。Amazon S3 コンソールを使用してデフォルトの暗号化を設定する手順については、「Amazon S3 Bucket のデフォルトの暗号化を有効にするにはどうしたらよいですか?」を参照してください。
最近のログ記録設定変更が有効になるまでに少し時間がかかります
サーバーアクセスのログ記録を初めて有効にしたり、ログのターゲットバケットを変更したりする場合、完全に実装されるまでに時間がかかることがあります。ログ記録を有効にしてから 1 時間以内に、一部のリクエストがログ記録されないことがあります。ターゲットバケットを変更してから 1 時間以内に、一部のログが以前のターゲットバケットに配信される場合があります。ログ記録の設定を変更したら、変更後 1 時間ほど待ってから、ログを確認します。詳細については、 Best Effort Server Log Delivery を参照してください。