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

라이브 복제에 대한 권한 설정

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

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

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

IAM 역할 생성

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

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

신뢰 정책은 IAM 역할을 맡을 수 있는 보안 주체 ID를 식별합니다. 권한 정책은 IAM 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 지정합니다.

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

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  • 다음 예제는 Amazon S3 및 S3 Batch Operations를 역할을 맡을 수 있는 서비스 보안 주체로 식별하는 신뢰 정책을 보여줍니다. 배치 복제 작업을 생성하는 경우 이 접근 방식을 사용하세요. 자세한 내용은 새 복제 규칙 또는 대상에 대한 배치 복제 작업 만들기 단원을 참조하십시오.

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

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

  • 다음 예제는 사용자를 대신하여 복제 태스크를 수행할 수 있는 IAM 역할 권한을 부여하는 권한 정책을 보여줍니다. Amazon S3가 이 역할을 맡으면 이 정책에 지정된 권한을 보유하게 됩니다. 이 정책에서는 amzn-s3-demo-source-bucket이 소스 버킷이고, amzn-s3-demo-destination-bucket가 대상 버킷입니다.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] }

    권한 정책은 다음 작업에 대한 권한을 부여합니다.

    • s3:GetReplicationConfigurations3:ListBucket - amzn-s3-demo-source-bucket 버킷에 대한 이러한 작업 권한을 통해 Amazon S3는 복제 구성을 검색하고 버킷 내용을 나열할 수 있습니다. (현재 권한 모델에는 삭제 마커에 액세스할 수 있는 s3:ListBucket 권한이 필요합니다.)

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

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

      참고

      amzn-s3-demo-destination-bucket 버킷에서의 s3:ReplicateObject 작업에 대한 권한은 객체 태그 및 ACL과 같은 메타데이터의 복제도 허용합니다. 따라서 s3:ReplicateTags 작업에 대한 권한을 명시적으로 부여할 필요가 없습니다.

    • s3:GetObjectVersionTagging - amzn-s3-demo-source-bucket 버킷의 객체에 대해 이 작업 권한을 사용하면 Amazon S3는 복제 대상 객체 태그를 읽을 수 있습니다. 객체 태그에 대한 자세한 내용은 태그를 사용하여 스토리지 분류 섹션을 참조하십시오. s3:GetObjectVersionTagging 권한이 없을 경우 Amazon S3는 객체를 복제하지만, 객체 태그는 복제하지 않습니다.

    Amazon S3 작업의 목록은 서비스 승인 참조의 Amazon S3에 사용되는 작업, 리소스 및 조건 키를 참조하세요.

    S3 리소스 유형별 S3 API 작업 권한에 대한 자세한 내용은 Amazon S3 API 작업에 필요한 권한 섹션을 참조하세요.

    중요

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

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

    여기에서 설명하는 권한은 최소 복제 구성과 관련됩니다. 선택적 복제 구성을 추가하려면 Amazon S3에 추가 권한을 부여해야 합니다. 예를 들어, 암호화된 객체를 복제하려면 필요한 AWS Key Management Service(AWS KMS) 키 권한도 부여해야 합니다. 자세한 내용은 암호화(SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)된 객체 복제 단원을 참조하십시오.

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

소스 버킷과 대상 버킷을 동일한 계정에서 소유하지 않는 경우, 다음 예제와 같이 대상 버킷 소유자가 소스 버킷 소유자에게 복제 작업을 수행할 권한을 부여하는 버킷 정책도 추가해야 합니다. 이 예제 정책에서는 amzn-s3-demo-destination-bucket가 대상 버킷입니다.

Amazon S3 콘솔을 사용하여 이 버킷 정책을 자동으로 생성할 수도 있습니다. 자세한 내용은 소스 버킷에서 복제된 객체 수신 활성화를 참조하세요.

참고

역할의 ARN 형식이 다르게 보일 수 있습니다. 콘솔을 사용하여 역할을 생성한 경우 ARN 형식은 arn:aws:iam::account-ID:role/service-role/role-name입니다. AWS CLI를 사용하여 역할을 생성한 경우 ARN 형식은 arn:aws:iam::account-ID:role/role-name입니다. 자세한 내용은 IAM 사용 설명서에서 IAM 역할을 참조하세요.

{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket" } ] }

예시는 서로 다른 계정의 버킷에 대한 복제 구성을 확인하세요.

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

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

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

    ... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-id:role/service-role/source-account-IAM-role" }, "Action":"s3:ReplicateTags", "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] ...
참고

암호화된 객체를 복제하려면 필요한 AWS Key Management Service(AWS KMS) 키 권한도 부여해야 합니다. 자세한 내용은 암호화(SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)된 객체 복제 단원을 참조하십시오.

소스 버킷에서 복제된 객체 수신 활성화

이전 정책을 대상 버킷에 수동으로 추가하는 대신, Amazon S3 콘솔을 통해 소스 버킷에서 복제된 객체 수신을 활성화하는 데 필요한 정책을 신속하게 생성할 수 있습니다.

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

  2. 왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.

  3. 버킷(Buckets) 목록에서 대상 버킷으로 사용할 버킷을 선택합니다.

  4. 관리(Management) 탭을 선택한 다음 아래로 스크롤하여 복제 규칙(Replication rules)으로 이동합니다.

  5. 작업(Actions)으로 복제된 객체 수신(Receive replicated objects)을 선택합니다.

    프롬프트에 따라 소스 버킷 계정의 AWS 계정 ID를 입력하고 정책 생성을 선택합니다. 콘솔은 Amazon S3 버킷 정책과 KMS 키 정책을 생성합니다.

  6. 이 정책을 기존 버킷 정책에 추가하려면 설정 적용(Apply settings)을 선택하거나 복사(Copy)를 선택하여 변경 사항을 수동으로 복사합니다.

  7. (선택 사항) AWS Key Management Service 콘솔에서 원하는 KMS 키 정책에 AWS KMS 정책을 복사합니다.

복제본 소유권 변경

서로 다른 AWS 계정이 소스 버킷과 대상 버킷을 소유한 경우, Amazon S3에 복제본 소유권을 대상 버킷을 소유한 AWS 계정으로 변경하도록 지시할 수 있습니다. 소유자 재정의에 대한 자세한 내용은 복제본 소유자 변경 섹션을 참조하세요.

S3 배치 작업에 대한 권한 부여

S3 배치 복제은 다음 객체를 복제하는 방법을 제공합니다.

  • 복제 구성이 적용되기 전에 존재했던 객체

  • 이전에 복제된 객체

  • 복제에 실패한 객체

새 복제 구성에서 첫 번째 규칙을 만들거나 Amazon S3 콘솔을 통해 기존 구성에 새 대상을 추가할 때 일회성 배치 복제 작업을 만들 수 있습니다. Batch Operations 작업을 만들어 기존 복제 구성에 대한 배치 복제를 시작할 수도 있습니다.

배치 복제 IAM 역할 및 정책 예제는 S3 배치 복제를 위한 IAM 역할 구성 섹션을 참조하세요.