Amazon Simple Storage Service
개발자 안내서 (API 버전 2006-03-01)

CRR 추가 구성: 복제본 소유자 변경

교차 리전 복제(CRR)에서는 기본적으로 원본 객체 소유자가 복제본도 소유합니다. 원본 버킷과 대상 버킷을 서로 다른 AWS 계정이 소유한 경우 복제본 소유권을 대상 버킷을 소유한 AWS 계정으로 변경하는 선택적 구성 설정을 추가할 수 있습니다. 이 설정을 통해 예를 들어 객체 복제본에 대한 액세스를 제한할 수도 있습니다. 이를 복제 구성의 소유자 재정의 옵션이라고도 합니다. 이 단원에서는 관련된 추가 구성 설정에 대해서만 설명합니다. 복제 구성 설정에 대한 자세한 내용은 리전 간 복제 단원을 참조하십시오.

소유자 재정의를 구성하려면 다음을 수행합니다.

  • Amazon S3에 복제본 소유권을 변경하도록 지시하는 소유자 재정의 옵션을 복제 구성에 추가합니다.

  • Amazon S3에 복제본 소유권을 변경할 권한을 부여합니다.

  • 대상 버킷 정책에 복제본 소유권 변경을 허용할 권한을 추가합니다. 그러면 대상 버킷 소유자가 객체 복제본의 소유권을 수락할 수 있습니다.

다음 단원에서는 이러한 작업을 수행하는 방법을 설명합니다. 단계별 지침이 포함된 예제는 예제 3: 원본 버킷과 대상 버킷을 서로 다른 AWS 계정에서 소유한 경우 복제본 소유자 변경 단원을 참조하십시오.

복제 구성에 소유자 재정의 옵션 추가

주의

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

소유자 재정의 옵션을 지정하려면 다음을 Destination 요소에 추가합니다.

  • Amazon S3에게 복제본 소유자 변경을 지시하는 AccessControlTranslation 요소

  • 대상 버킷 소유자의 AWS 계정을 지정하는 Account 요소

<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> ... <Destination> ... <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> <Account>destination-bucket-owner-account-id</Account> </Destination> </Rule> </ReplicationConfiguration>

다음 복제 구성 예제는 Amazon S3에게 키 접두사가 Tax인 객체를 대상 버킷으로 복제하고 복제본 소유권을 변경하도록 지시합니다.

<?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> <ID>Rule-1</ID> <Priority>1</Priority> <Status>Enabled</Status> <Status>Enabled</Status> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <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 역할과 연결된 권한 정책에 s3:ObjectOwnerOverrideToBucketOwner 작업에 대한 권한을 추가하여 Amazon S3에 복제본 소유권을 변경할 권한을 부여합니다. 이 IAM 역할은 복제 구성에서 지정된 것이며, Amazon S3가 이 역할을 맡아 사용자 대신 객체를 복제할 수 있습니다.

... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::destination-bucket/*" } ...

대상 버킷 정책에 복제본 소유권 변경을 허용할 권한을 추가

대상 버킷 소유자가 원본 버킷 소유자에게 복제본 소유권을 변경할 수 있는 권한을 부여해야 합니다. 대상 버킷 소유자는 원본 버킷 소유자에게 s3:ObjectOwnerOverrideToBucketOwner 작업에 대한 권한을 부여합니다. 그러면 원본 버킷 소유자가 객체 복제본의 소유권을 수락할 수 있습니다. 다음 버킷 정책 문 예제에서는 이를 수행하는 방법을 보여줍니다.

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

추가 고려 사항

소유권 재정의 옵션을 구성할 때는 다음 사항을 고려해야 합니다.

  • 기본적으로 원본 객체 소유자가 복제본도 소유합니다. Amazon S3는 객체 버전 및 이와 연결된 ALC을 복제합니다.

     

    소유자 재정의를 추가할 경우, Amazon S3는 객체 버전만 복제하고 ACL은 복제하지 않습니다. 또한 Amazon S3는 원본 객체 ACL에 대한 후속 변경을 복제하지 않습니다. Amazon S3는 복제본에서 대상 버킷 소유자에게 모든 권한을 부여하는 ACL을 설정합니다.

     

  • 복제 구성을 업데이트하여 소유자 재정의를 활성화 또는 비활성화하면 다음과 같은 효과가 발생합니다.

     

    • 복제 구성에 소유자 재정의 옵션을 추가할 경우

       

      Amazon S3가 객체 버전을 복제할 때 원본 객체에 연결된 ACL을 무시합니다. 대신 복제본에서 대상 버킷 소유자에게 모든 권한을 부여하는 ACL을 설정합니다. 원본 객체 ACL에 대한 후속 변경을 복제하지 않습니다. 하지만 이 ACL 변경은 소유자 재정의 옵션을 설정하기 이전에 복제된 객체 버전에 적용되지 않습니다. 소유자 재정의를 설정하기 이전에 복제된 원본 객체에 대한 ACL 업데이트의 경우 객체와 복제본의 소유자가 동일하므로 계속해서 복제됩니다.

       

    • 복제 구성에서 소유자 재정의 옵션을 제거할 경우

       

      Amazon S3는 원본 버킷에 나타나는 새 객체 및 연결된 ACL을 대상 버킷으로 복제합니다. 소유자 재정의를 제거하기 전에 복제된 객체의 경우 Amazon S3가 ACL을 복제하지 않습니다. Amazon S3이 수행한 객체 소유권 변경이 유효하기 때문입니다. 즉, 소유자 재정의가 설정되었을 때 복제된 객체 버전에 적용된 ACL은 계속해서 복제되지 않습니다.