You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CloudFormation创建私有S3桶报错InvalidBucketAclWithObjectOwnership

问题分析与解决方案

问题根源

AWS在2023年4月调整了S3桶的默认行为:新创建的桶默认启用BucketOwnerEnforced对象所有权模式。这个模式下,桶拥有者自动拥有所有写入的对象,同时禁止使用任何ACL配置(包括桶级ACL)。你的模板中指定了AccessControl: LogDeliveryWrite,这会尝试设置桶级ACL,和默认的BucketOwnerEnforced模式冲突,导致报错。

解决方案

需要做以下修改:

  • 删除AccessControl: LogDeliveryWrite配置,因为BucketOwnerEnforced模式不支持ACL。
  • 添加桶策略,授予ALB日志交付服务写入桶的权限(替代原来的ACL方式)。
  • (可选)显式指定ObjectOwnership: BucketOwnerEnforced,让配置更清晰(当前已是默认值)。

修改后的完整模板

AWSTemplateFormatVersion: '2010-09-09'
Description: S3 bucket to store ALB logs

Resources:
  ALBLogsBucket:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain
    UpdateReplacePolicy: Retain
    Properties:
      BucketName: !Sub "pierre-alb-logs-${AWS::AccountId}"
      ObjectOwnership: BucketOwnerEnforced # 可选,显式指定默认值
      LifecycleConfiguration:
        Rules:
          - Id: ExpireLogs
            ExpirationInDays: 365
            Status: Enabled
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true

  ALBLogsBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref ALBLogsBucket
      PolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: logging.s3.amazonaws.com
            Action:
              - s3:PutObject
            Resource: !Sub "${ALBLogsBucket.Arn}/*"
            Condition:
              StringEquals:
                s3:x-amz-acl: bucket-owner-full-control

修改说明

  1. 移除AccessControl字段:避免与BucketOwnerEnforced模式冲突,这是解决报错的核心。
  2. 添加BucketPolicy资源:通过桶策略授予ALB日志服务PutObject权限,同时通过s3:x-amz-acl: bucket-owner-full-control条件确保桶拥有者能完全控制写入的日志对象,符合BucketOwnerEnforced的要求。
  3. 保留原有安全配置:公共访问块和生命周期配置保持不变,确保桶的私有性和日志自动过期的策略。

内容的提问来源于stack exchange,提问作者Pierre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:47:27