메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

교차 리전 복제 추가 구성: 복제본 소유자 변경

원본 버킷 또는 원본 객체의 소유자에 상관없이 대상 버킷을 소유한 AWS 계정으로 복제본 소유권을 변경하도록 Amazon S3에 지시할 수 있습니다. 이 작업을 수행하여 객체 복제본에 대한 액세스를 제한할 수도 있습니다. 이를 복제 구성의 소유자 재정의 옵션이라고도 합니다.

주의

원본 버킷과 대상 버킷을 서로 다른 AWS 계정에서 소유한 경우에만 소유자 재정의 옵션을 추가합니다.

교차 계정 시나리오에서 복제 구성을 설정하는 방법에 대한 자세한 내용은 다른 AWS 계정에서 소유한 버킷에 대한 교차 리전 복제 설정 단원을 참조하십시오. 이 단원에서는 대상 버킷을 소유한 AWS 계정으로 복제본 소유권을 변경하도록 Amazon S3에 지시하는 방법에 대한 추가 정보만 제공합니다.

  • 다음 예제와 같이 <Account><AccessControlTranslation> 요소를 <Destination> 요소의 하위 요소로 추가합니다.

    <?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Role>arn:aws:iam::account-id:role/role-name</Role> <Rule> <Status>Enabled</Status> <Prefix></Prefix> <Destination> <Bucket>arn:aws:s3:::destination-bucket</Bucket> <Account>destination-bucket-owner-account-id</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> </Rule> </ReplicationConfiguration>
  • Amazon S3에 복제본 소유권 변경을 허용할 수 있도록 IAM 역할에 더 많은 권한을 추가합니다.

    다음 정책 설명에 나와 있듯이 IAM 역할에 대상 버킷의 모든 복제본에 대한 s3:ObjectOwnerOverrideToBucketOwner 작업 권한을 허용합니다.

    ... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::destination-bucket/*" } ...
  • 원본 버킷을 소유한 AWS 계정에 복제본 소유권을 변경할 권한을 허용(실제로 객체 복제본에 대한 소유권 수락)하려면 대상 버킷의 버킷 정책에서 s3:ObjectOwnerOverrideToBucketOwner 작업 권한을 추가합니다. 버킷 정책에 다음 정책 설명을 추가할 수 있습니다.

    ... { "Sid":"1", "Effect":"Allow", "Principal":{"AWS":"source-bucket-account-id"}, "Action":["s3:ObjectOwnerOverrideToBucketOwner"], "Resource":"arn:aws:s3:::destination-bucket/*" } ...

주의

두 버킷을 서로 다른 AWS 계정에서 소유한 경우에만 복제 구성에 이 소유자 재정의 옵션을 추가합니다. Amazon S3에서는 버킷을 소유한 계정이 동일한지 여부를 확인하지 않습니다. 두 버킷을 동일한 AWS 계정에서 소유한 경우에도 이 옵션을 추가하면 소유자 재정의가 적용됩니다. 즉, Amazon S3에서는 대상 버킷 소유자에게 모든 권한을 부여하고, 후속 업데이트를 원본 객체 ACL(액세스 통제 목록)에 복제하지 않습니다. 복제본 소유자는 PUT ACL 요청을 사용하여 복제본과 연결된 ACL을 직접 변경할 수 있지만, 복제를 통해서는 변경할 수 없습니다.

관련 예제는 연습 3: 복제본 소유자를 대상 버킷 소유자로 변경 단원을 참조하십시오.

원본 버킷과 대상 버킷을 서로 다른 AWS 계정에서 소유한 교차 계정 시나리오에서는 다음이 적용됩니다.

  • 선택적 소유자 재정의 옵션을 사용하여 복제 구성 생성 - 기본적으로 원본 객체 소유자가 복제본도 소유합니다. 따라서 Amazon S3에서는 객체 버전과 연결된 ACL도 객체 버전과 함께 복제합니다.

     

    대상 버킷을 소유한 AWS 계정으로 복제본 소유자를 변경하도록 Amazon S3에 지시하는 선택적 소유자 재정의 구성을 추가할 수 있습니다. 이 경우 소유자가 동일하지 않으므로 Amazon S3에서는 객체 버전만 복제하고 ACL은 복제하지 않습니다(또한 Amazon S3는 후속 변경을 원본 객체 ACL에 복제하지 않음). Amazon S3에서는 복제본에서 대상 버킷 소유자에게 모든 권한을 부여하는 ACL을 설정합니다.

     

  • 복제 구성 업데이트(소유자 재정의 옵션 활성화/비활성화) – 복제 구성을 버킷에 추가했다고 가정합니다. Amazon S3에서는 객체 버전을 대상 버킷에 복제합니다. 또한 Amazon S3에서는 객체 ACL을 복사하여 객체 복제본에 연결합니다.

     

    • 이제 복제 구성을 업데이트하고 소유자 재정의 옵션을 추가한다고 가정하겠습니다. Amazon S3에서는 객체 버전을 복제할 때 원본 객체에 연결된 ACL을 무시합니다. 대신 복제본에서 ACL을 설정하여 대상 버킷 소유자에게 모든 권한을 부여합니다. 원본 객체 ACL에 대한 모든 후속 변경은 복제되지 않습니다.

      이 변경은 소유자 재정의 옵션을 설정하기 이전에 복제된 객체 버전에 적용되지 않습니다. 즉, 소유자 재정의를 설정하기 이전에 복제된 원본 객체에 대한 ACL 업데이트의 경우 객체와 복제본의 소유자가 동일하므로 계속해서 복제됩니다.

       

    • 이제 나중에 소유자 재정의 구성을 비활성화한다고 가정하겠습니다. Amazon S3에서는 새 객체 버전과 연결된 객체 ACL을 계속해서 대상에 복제합니다. 소유자 재정의를 비활성화할 경우 복제 구성에서 소유자 재정의를 설정할 때 복제된 객체에는 이 설정이 적용되지 않습니다(Amazon S3에서 수행한 객체 소유권 변경이 그대로 적용됨). 즉, 소유자 재정의를 설정할 때 복제된 객체 버전에 적용된 ACL은 계속해서 복제되지 않습니다.