복제에 대한 권한 설정 - Amazon Simple Storage Service

복제에 대한 권한 설정

복제를 설정할 때 다음과 같이 필요한 권한을 획득해야 합니다.

  • IAM 역할 생성 — Amazon S3는 사용자를 대신하여 객체를 복제할 수 있는 권한이 필요합니다. IAM 역할을 생성하여 이러한 권한을 부여하고 복제 구성에서 이 역할을 지정합니다.

  • 원본 버킷과 대상 버킷을 동일한 계정에서 소유하지 않는 경우 대상 버킷 소유자는 원본 버킷 소유자에게 복제본을 저장할 권한을 부여해야 합니다.

IAM 역할 생성

기본적으로 Amazon S3 리소스인 버킷, 객체 및 관련 하위 리소스는 모두 비공개이며 리소스 소유자만 리소스에 액세스할 수 있습니다. 원본 버킷에서 객체를 읽고 대상 버킷에 복제하려면 Amazon S3는 이러한 작업을 수행할 권한이 필요합니다. IAM 역할을 생성하고 복제 구성에서 이 역할을 지정하여 이러한 권한을 부여합니다.

이 단원에서는 신뢰 정책과 필요한 최소한의 권한 정책을 설명합니다. 연습 예제가 IAM 역할을 생성하는 단계별 지침을 제공합니다. 자세한 내용은 복제 실습 과정 단원을 참조하십시오.

  • 다음은 역할을 맡을 수 있는 서비스 보안 주체로서 Amazon S3를 식별하는 신뢰 정책을 보여줍니다.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

    IAM 역할에 대한 자세한 내용은 IAM 사용 설명서IAM 역할 단원을 참조하십시오.

  • 다음은 역할에 사용자 대신 복제 작업을 수행할 권한을 부여하는 액세스 정책을 보여줍니다. Amazon S3가 이 역할을 맡으면 이 정책에 지정된 권한을 보유하게 됩니다.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::SourceBucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::SourceBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource":"arn:aws:s3:::DestinationBucket/*" } ] }

    액세스 정책은 다음 작업을 수행할 권한을 부여합니다.

    • s3:GetReplicationConfigurations3:ListBucket원본 버킷에 대한 이러한 작업 권한을 사용하면 Amazon S3는 복제 구성을 검색하고 버킷 콘텐츠를 나열할 수 있습니다(현재의 권한 모델은 삭제 마커에 액세스하기 위해 s3:ListBucket 권한이 필요함).

    • s3:GetObjectVersions3:GetObjectVersionAcl — 모든 객체에 대해 부여되는 이러한 작업 권한을 사용하면 Amazon S3는 특정 객체 버전 및 객체와 연결된 ACL(액세스 제어 목록)을 가져올 수 있습니다.

    • s3:ReplicateObjects3:ReplicateDelete대상 버킷의 객체에 대한 이러한 작업 권한을 사용하면 Amazon S3는 대상 버킷에 객체 또는 삭제 마커를 복제할 수 있습니다. 삭제 마커에 대한 자세한 내용은 삭제 작업이 복제에 미치는 영향을 참조하십시오.

      참고

      대상 버킷에 대한 s3:ReplicateObject 작업 권한은 객체 태그 복제도 허용합니다. 따라서 s3:ReplicateTags 작업에 대한 권한을 명시적으로 부여할 필요가 없습니다.

    • s3:GetObjectVersionTagging원본 버킷의 객체에 대해 이 작업 권한을 사용하면 Amazon S3는 복제 대상 객체 태그를 읽을 수 있습니다(객체 태그 지정 단원 참조). 이러한 권한이 없을 경우 Amazon S3는 객체를 복제하지만 객체 태그(있는 경우)는 복제하지 않습니다.

    Amazon S3 작업 목록에 대해서는 Amazon S3 작업을 참조하십시오.

    중요

    IAM 역할을 소유한 AWS 계정은 해당 IAM 역할에 부여된 작업을 수행할 권한이 있어야 합니다.

    예를 들어 원본 버킷에 다른 AWS 계정이 소유한 객체가 포함되어 있다고 가정하겠습니다. 객체 소유자는 객체 ACL을 통해 IAM 역할을 소유한 AWS 계정에 필요한 권한을 명시적으로 부여해야 합니다. 그렇지 않으면 Amazon S3는 객체에 액세스할 수 없으므로 객체의 복제가 실패합니다. ACL 권한에 대한 자세한 내용은 ACL(액세스 통제 목록) 개요 단원을 참조하십시오.

    여기에서 설명하는 권한은 최소 복제 구성과 관련됩니다. 선택적 복제 구성을 추가하려면 Amazon S3에 추가 권한을 부여해야 합니다. 자세한 내용은 추가 복제 구성 단원을 참조하십시오.

원본 버킷과 대상 버킷을 서로 다른 AWS 계정에서 소유할 경우 권한 부여

원본 버킷과 대상 버킷을 동일한 계정에서 소유하지 않는 경우, 다음과 같이 대상 버킷 소유자가 원본 버킷 소유자에게 복제 작업 권한을 부여하는 버킷 정책도 추가해야 합니다.

{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-AcctID:root" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject" ], "Resource":"arn:aws:s3:::destinationbucket/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-AcctID:root" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource":"arn:aws:s3:::destinationbucket" } ] }

문제 해결 예는 예제 2: 원본 버킷과 대상 버킷을 서로 다른 AWS 계정에서 소유한 경우 복제 구성을(를) 참조하십시오.

원본 버킷에 있는 객체에 태그가 지정된 경우, 다음에 주의하십시오.

  • 원본 버킷 소유자가 객체 태그를 복사할 수 있도록 s3:GetObjectVersionTaggings3:ReplicateTags 작업 권한을 (IAM 역할을 통해) Amazon S3에 부여하는 경우, Amazon S3는 해당 객체와 함께 태그를 복제합니다. IAM 역할에 대한 상세 정보는 IAM 역할 생성 단원을 참조하십시오.

  • 대상 버킷 소유자가 태그 복제를 원하지 않는 경우, 소유자는 다음의 명령문을 대상 버킷 정책에 추가해 s3:ReplicateTags 작업에 대한 권한을 명시적으로 거부할 수 있습니다.

    ... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-AcctID:root" }, "Action":"s3:ReplicateTags", "Resource":"arn:aws:s3:::DestinationBucket/*" } ] ...

복제본 소유권 변경

서로 다른 AWS 계정이 원본 버킷과 대상 버킷을 소유한 경우, 복제본 소유권을 대상 버킷을 소유한 AWS 계정으로 변경하도록 Amazon S3에 지시할 수 있습니다. 이를 사용자 재정의 옵션이라고 합니다. 자세한 내용은 복제본 소유자 변경 단원을 참조하십시오.