5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】S3ログ記録を有効化した場合のAccessDeniedエラーについて

Last updated at Posted at 2025-08-26

概要

ALB のアクセスログや VPC フローログを S3 に送信するように設定した場合、CloudTrail や S3 アクセスログに AccessDenied エラーが定期的に記録されることがあります。
本記事では、AWSサービスからのS3ログ記録を有効化した際に発生する、AccessDenied エラーの原因と対処方法について紹介します。

背景

ALB のアクセスログや VPC フローログを S3 に送信するように設定し、格納先 S3 バケットのメトリクスを確認したところ、4xx Errorsが定期的に出力されていることに気がついた、というお問い合わせがありました。
S3 のアクセスログを確認したところ、AccessDenied エラーが記録されているといった状況でした。

s3アクセスログ(一部抜粋)
[02/Jul/2025:09:34:11 +0000] - svc:delivery.logs.amazonaws.com VF88558PERXV4B3G REST.HEAD.BUCKET - "HEAD / HTTP/1.1" 403 AccessDenied 275 - 17 - "-" "-" - 

原因

ログ格納先 S3 のバケットポリシーで、S3 バケットにログを書き込む内部的なサービスプリンシパル(delivery.logs.amazonaws.com)のアクセス権限(s3:ListBucket)が不足していることが原因です。ALB のアクセスログやVPC フローログなど、サービスのログを S3 に配信する場合、delivery.logs.amazonaws.com よりログ配信が行われます。
バケットポリシーがなく、ログ記録を設定するユーザーがバケットの S3:GetBucketPolicyおよび S3:PutBucketPolicy 許可を持っている場合、S3 へのログの送信を開始するとポリシーが自動的に作成されます。
残念ながら、この自動で作成されるポリシーについても、delivery.logs.amazonaws.com の s3:ListBucket を明示的に許可する設定にはなっていません。
そのため、デフォルトの設定で構築を進めると AccessDenied エラーが発生します。

対処方法

バケットポリシーの AWSLogDeliveryAclCheck ブロックで Action に s3:ListBucket の許可を追加することで対処することができます。

変更前のバケットポリシーは以下のようになっているかと思います。
「AWSLogDeliveryAclCheck」というキーワードで探します。

変更前(一部抜粋)
"Sid": "AWSLogDeliveryAclCheck",
"Effect": "Allow",
"Principal": {
    "Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:GetBucketAcl",

Actions3:ListBucket を追加します。
Action が複数になるため、配列[]で記載することに注意してください。

変更後(一部抜粋)
"Sid": "AWSLogDeliveryAclCheck1",
"Effect": "Allow",
"Principal": {
    "Service": "delivery.logs.amazonaws.com"
},
"Action": [
    "s3:GetBucketAcl",
    "s3:ListBucket"
],

バケットポリシーの変更を保存した後、格納先S3バケットのメトリクスを確認します。
変更前(10:15以前)は 4xx Errors が定期的に1~3程度カウントされていましたが、変更後(10:15以降)はカウントが0になっています。

0633_008.png

最後に

ユーザガイドの説明では、 CloudTrail ログに AccessDenied エラーが記録される場合の対処として記載されているため、別の話かと思ってしまいますが S3 アクセスログの場合でもあてはまる内容でした。
s3:ListBucket の許可が必要だとしても、自動で作成されるポリシーなら最初から許可しておいていただきたいですね...。

参考資料

AWS サービスからのログ記録を有効にする

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?