LoginSignup
3
0

CDKのデプロイ時に発生した「Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting」に対処する

Posted at

CDKを使ってS3をデプロイしようとした際に遭遇したエラーと、とりあえず実施した対応について紹介します。
※別環境で同様の設定で作成してもエラーが再現しなかったため具体的な発生要件は分かりませんでした・・・
 作成した構成を眺めている感じは、CloudFront等のLogを格納するように作成しているBucketでエラーが出ているため、そのあたりにエラーを起こす何かがありそう・・・

各種バージョン

aws-cdk-lib==2.60.0
Python 3.7.16

開発環境はCloud9を利用しています。

エラー内容とコード

エラー内容

2023/5/23にS3をデプロイしようとしたところ以下のエラーが発生しました。
2023/3頃にデプロイした際には同様の構成でもエラーが発生しなかったため、2023/4にあったS3のデフォルト設定の変更が関係しているものと思っています。

Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting (Service: Amazon S3; Status Code: 400; Error Code: InvalidBucketAclWithObjectOwnership; Request ID: KW3CT7MV5
GGDAECY; S3 Extended Request ID: bwGXYmFJlgJKDADmInLsDbMOzQsKQ6JM184mNwpQQolZOuaG1eXtTeWWltIZm5HgMgFwnzWMEkM=; Proxy: null)

CDKコード

以下は、S3へのアクセスLogを格納するBucketを作成するコードとなっています。

server_access_log_bucket = s3.Bucket(
    self,
    'ServerAccessLogBucket',
    block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
    bucket_name=bucket_name,
    encryption=s3.BucketEncryption.S3_MANAGED,
    lifecycle_rules=[s3.LifecycleRule(expiration=Duration.days(60))],
    removal_policy=RemovalPolicy.DESTROY,
)

解決策

同じようなエラーについてのIssueがあったため、そちらを参考にしました。
GithubのIssueはこちら

修正後のコードは以下です。

server_access_log_bucket = s3.Bucket(
    self,
    'ServerAccessLogBucket',
    block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
    bucket_name=bucket_name,
    encryption=s3.BucketEncryption.S3_MANAGED,
    lifecycle_rules=[s3.LifecycleRule(expiration=Duration.days(60))],
    removal_policy=RemovalPolicy.DESTROY,
    # 下を追加
    object_ownership=s3.ObjectOwnership.OBJECT_WRITER,
)

ここでは、Object Ownershipの設定を追加しています。
これによって、エラーは解消できました。

まとめ

今回は、CDKで発生したエラーについての対処法を紹介しました。
別環境で再現できていないことも有り、具体的なエラーの内容については触れることができませんでしたが、同様のエラーに悩まれる方のお役に立てれば幸いです。

3
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
3
0