기존 버킷에 대한 객체 소유권 설정 - Amazon Simple Storage Service

기존 버킷에 대한 객체 소유권 설정

기존 S3 버킷에 대한 S3 객체 소유권을 구성할 수 있습니다. 버킷을 생성할 때 객체 소유권을 적용하려면 버킷을 생성할 때 객체 소유권 설정 섹션을 참조하십시오.

S3 객체 소유권은 액세스 제어 목록(ACL)을 사용 중지하고 버킷에 있는 모든 객체의 소유권을 가져오는 데 사용할 수 있는 Amazon S3 버킷 수준 설정으로, Amazon S3에 저장된 데이터에 대한 액세스 관리를 간소화합니다. 기본적으로 S3 객체 소유권은 버킷 소유자 적용 설정으로 설정되며 신규 버킷에 대해 ACL이 비활성화되어 있습니다. ACL이 비활성화되면 버킷 소유자는 버킷의 모든 객체를 소유하고 액세스 관리 정책을 사용하여 데이터에 대한 액세스를 독점적으로 관리합니다. 각 객체에 대해 액세스를 개별적으로 제어해야 하는 드문 상황을 제외하고는 ACL을 비활성화한 채로 두는 것이 좋습니다.

객체 소유권에는 버킷에 업로드된 객체의 소유권을 제어하고 ACL을 사용 중지하거나 사용하는 다음과 같은 세 가지 설정이 있습니다.

ACL 사용 중지됨
  • 버킷 소유자 적용(기본값) – ACL이 비활성화되고 버킷 소유자는 버킷의 모든 객체를 자동으로 소유하고 완전히 제어합니다. ACL은 더 이상 S3 버킷의 데이터에 대한 권한에 영향을 주지 않습니다. 버킷은 정책을 사용하여 액세스 제어를 정의합니다.

ACL 사용됨
  • 버킷 소유자 기본(Bucket owner preferred) – 버킷 소유자가 bucket-owner-full-control 미리 제공 ACL을 사용하여 다른 계정이 버킷에 작성하는 새 객체를 소유하고 완전히 제어합니다.

  • 객체 작성자(Object writer) – 객체를 업로드하는 AWS 계정은 객체를 소유하고 완전히 제어하며 ACL을 통해 다른 사용자에게 이에 대한 액세스 권한을 부여할 수 있습니다.

사전 조건: 버킷 소유자 적용 설정을 적용하여 ACL을 비활성화하기 전에 버킷 ACL 권한을 버킷 정책으로 마이그레이션하고 버킷 ACL을 기본 프라이빗 ACL로 재설정해야 합니다. 또한 객체 ACL 권한을 버킷 정책으로 마이그레이션하고 버킷 소유자 전체 제어 ACL 이외의 ACL이 필요한 버킷 정책을 편집하는 것이 좋습니다. 자세한 내용은 ACL 사용 중지를 위한 사전 조건 섹션을 참조하세요.

권한: 이 작업을 사용하려면 s3:PutBucketOwnershipControls 권한이 있어야 합니다. Amazon S3 권한에 대한 자세한 내용은 Amazon S3에 사용되는 작업, 리소스 및 조건 키 섹션을 참조하십시오.

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷(Buckets) 목록에서 S3 객체 소유권 설정을 적용할 버킷의 이름을 선택합니다.

  3. 권한(Permissions) 탭을 선택합니다.

  4. 객체 소유권(Object Ownership)에서 편집(Edit)을 선택합니다.

  5. 객체 소유권(Object Ownership)에서 ACL을 사용 중지 또는 사용 설정하고 버킷에 업로드된 객체의 소유권을 제어하려면 다음 설정 중 하나를 선택합니다.

    ACL 사용 중지됨
    • 버킷 소유자 시행(Bucket owner enforced) – ACL이 사용 중지되고 버킷 소유자는 버킷의 모든 객체를 자동으로 소유하고 완전히 제어합니다. ACL은 더 이상 S3 버킷의 데이터에 대한 권한에 영향을 주지 않습니다. 버킷은 정책을 사용하여 액세스 제어를 정의합니다.

      IAM 또는 AWS Organizations 정책을 사용하여 사용 중지된 ACL로 모든 새 버킷을 생성하도록 요구하려면 모든 새 버킷에 대해 ACL 사용 중지(버킷 소유자 시행) 섹션을 참조하십시오.

    ACL 사용됨
    • 버킷 소유자 기본(Bucket owner preferred) – 버킷 소유자가 bucket-owner-full-control 미리 제공 ACL을 사용하여 다른 계정이 버킷에 작성하는 새 객체를 소유하고 완전히 제어합니다.

      버킷 소유자 기본 설정을 적용하는 경우 모든 Amazon S3 업로드에 bucket-owner-full-control 미리 제공 ACL을 포함하도록 요구하려면 이 ACL을 사용하는 객체 업로드만 허용하는 버킷 정책을 추가할 수 있습니다.

    • 객체 작성자(Object writer) – 객체를 업로드하는 AWS 계정은 객체를 소유하고 완전히 제어하며 ACL을 통해 다른 사용자에게 이에 대한 액세스 권한을 부여할 수 있습니다.

  6. Save를 선택합니다.

기존 버킷에 대한 객체 소유권 설정을 적용하려면 --ownership-controls 파라미터와 함께 put-bucket-ownership-controls 명령을 사용합니다. 유효한 소유권 값은BucketOwnerEnforced, BucketOwnerPreferred, 또는 ObjectWriter입니다.

이 예에서는 AWS CLI를 사용하여 기존 버킷에 대해 버킷 소유자 적용 설정을 적용합니다.

aws s3api put-bucket-ownership-controls --bucket DOC-EXAMPLE-BUCKET --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"

put-bucket-ownership-controls에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서의 put-bucket-ownership-controls 섹션을 참조하십시오.

이 예에서는 AWS SDK for Java를 사용하여 기존 버킷에 대해 BucketOwnerEnforced 설정을 적용합니다.

// Build the ObjectOwnership for BucketOwnerEnforced OwnershipControlsRule rule = OwnershipControlsRule.builder() .objectOwnership(ObjectOwnership.BucketOwnerEnforced) .build(); OwnershipControls ownershipControls = OwnershipControls.builder() .rules(rule) .build() // Build the PutBucketOwnershipControlsRequest PutBucketOwnershipControlsRequest putBucketOwnershipControlsRequest = PutBucketOwnershipControlsRequest.builder() .bucket(BUCKET_NAME) .ownershipControls(ownershipControls) .build(); // Send the request to Amazon S3 s3client.putBucketOwnershipControls(putBucketOwnershipControlsRequest);

AWS CloudFormation을 사용하여 기존 버킷에 대한 객체 소유권 설정을 적용하려면 AWS CloudFormation 사용 설명서AWS::S3::Bucket OwnershipControls 섹션을 참조하십시오.

REST API를 사용하여 기존 S3 버킷에 객체 소유권 설정을 적용하려면 PutBucketOwnershipControls를 사용하십시오. 자세한 내용은 Amazon Simple Storage Service API 참조PutBucketOwnershipControls를 참조하십시오.

다음 단계: 객체 소유권에 대해 버킷 소유자 적용 또는 버킷 소유자 기본 설정을 적용한 후 다음 단계를 추가로 수행할 수 있습니다.