S3 存储桶:遇到不受支持的属性 AccessControl

问题描述

我正在尝试使用访问日志创建 S3 存储桶,这就是我在 yaml 中的云形成模板的样子

AccesslogBucket:
    DeletionPolicy: Retain
    Properties:
      BucketEncryption:
        AccessControl: LogDeliveryWrite
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256
      BucketName: accesslog-dub-bucket
      VersioningConfiguration:
        Status: Enabled
    Type: AWS::S3::Bucket
  MyusecaseS3bucket:
    DeletionPolicy: Retain
    DependsOn:
      - AccesslogBucket
    Properties:
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256
      BucketName: my-usecase-s3-bucket
      LoggingConfiguration:
        DestinationBucketName: accesslog-dub-bucket
        LogFilePrefix: log-
      VersioningConfiguration:
        Status: Enabled
    Type: AWS::S3::Bucket

但是 cloudformation 模板给了我异常 Encountered unsupported property AccessControl ,我看到我在正确的部分(即在 Accesslogbucket 的 Properties 部分)中声明了“AccessControl”,它是一个有效的 property ,所以我不确定我哪里出错了。有人可以指出我这里的问题以及如何纠正它。

解决方法

您将 AccessControl: LogDeliveryWrite 置于 BucketEncryption 之下,这是不正确的。它应该在 Properties 下。基本上仔细检查你的缩进:

AccesslogBucket:
    DeletionPolicy: Retain
    Properties:
      AccessControl: LogDeliveryWrite    
      BucketEncryption:       
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256