CloudFormation에서 “ObjectOwnership의 BucketOwnerEnforced 설정으로 버킷에 ACL을 설정할 수 없습니다”라는 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

AWS CloudFormation 스택을 통해 Amazon Simple Storage Service(S3) 버킷을 배포하려고 하면 오류가 발생합니다.

간략한 설명

새로 생성된 버킷의 경우, Amazon S3는 ObjectOwnership을 켜고 기본적으로 BucketOwnerEnforced로 설정합니다. 이 설정을 사용하면 액세스 제어 목록(ACL)이 꺼지고, 버킷 소유자가 자동으로 버킷의 모든 개체를 소유하고 모든 권한을 갖게 됩니다. 따라서 이 설정으로 ACL을 호출하려고 하는 배포에는 다음과 같은 오류가 발생합니다.

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

예를 들어, 다음 배포 템플릿에 이 오류가 발생합니다.

AWSTemplateFormatVersion: "2010-09-09"

Resources:
  PortalBucket:
    Type: AWS::S3::Bucket
    Properties:
      AccessControl: LogDeliveryWrite
      VersioningConfiguration:
        Status: Enabled
      WebsiteConfiguration:
        IndexDocument: 'index.html'
        ErrorDocument: 'error.html'
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256

이 문제를 해결하려면 버킷의 ObjectOwnership 값을 변경하여 ACL을 허용하세요.

중요: Amazon S3에 ACL을 사용하는 것을 권장하지 않습니다. ACL을 반드시 사용해야 할 경우에는 다음 문제 해결 단계를 참고하여 ACL을 허용하세요.

해결 방법

  1. ObjectOwnership의 값을 ObjectWriter 또는 BucketOwnerPreferred로 설정합니다.

  2. S3 버킷을 배포하려면 다음 템플릿을 사용하세요.

AWSTemplateFormatVersion: "2010-09-09"

Resources:
  PortalBucket:
    Type: AWS::S3::Bucket
    Properties:
      AccessControl: LogDeliveryWrite
      VersioningConfiguration:
        Status: Enabled
      WebsiteConfiguration:
        IndexDocument: 'index.html'
        ErrorDocument: 'error.html'
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256
      OwnershipControls:
        Rules:
          - ObjectOwnership: ObjectWriter

이를 통해 버킷에서 ACL을 활성화할 수 있습니다.

ACL을 사용하는 Amazon S3의 기본 동작에 관한 자세한 내용은 미리 알림: 2023년 4월에 Amazon S3 보안 변경 예정을 참고하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전