인벤토리 보고서를 사용하여 AWS 계정 간에 객체 복사 - Amazon Simple Storage Service

인벤토리 보고서를 사용하여 AWS 계정 간에 객체 복사

Amazon S3 Batch Operations를 사용하여 Amazon S3 객체에 대해 대규모 배치 작업을 수행할 수 있습니다. S3 Batch Operations를 사용하여 복사(CopyObject) 작업을 만들어 동일한 계정 내에서 또는 다른 대상 계정으로 객체를 복사할 수 있습니다.

Amazon S3 Inventory를 사용하여 인벤토리 보고서를 만들고 이 보고서를 사용하여 S3 Batch Operations로 복사할 객체 목록(매니페스트)을 만들 수 있습니다. 소스 또는 대상 계정에서 CSV 매니페스트를 사용하는 방법에 대한 자세한 내용은 CSV 매니페스트를 사용하여 AWS 계정 간에 객체 복사 섹션을 참조하세요.

Amazon S3 인벤토리는 버킷에 객체의 인벤토리를 생성합니다. 결과 목록은 출력 파일에 게시됩니다. 인벤토리에 추가된 버킷을 원본 버킷이라고 하고 인벤토리 보고서 파일이 저장되는 버킷을 대상 버킷이라고 합니다.

Amazon S3 인벤토리 보고서를 다른 AWS 계정에 전송하도록 인벤토리 보고서를 구성할 수 있습니다. 그러면 대상 계정에서 작업이 생성될 때 S3 Batch Operations에서 인벤토리 보고서를 읽을 수 있습니다.

Amazon S3 인벤토리 소스 및 대상 버킷에 대한 자세한 내용은 원본 및 대상 버킷 섹션을 참조하세요.

인벤토리를 설정하는 가장 쉬운 방법은 Amazon S3 콘솔을 사용하는 것이지만, Amazon S3 REST API, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용할 수도 있습니다.

다음 콘솔 절차에는 S3 배치 작업에 대한 권한을 설정하기 위한 상위 단계가 포함되어 있습니다. 이 절차에서는 원본 계정에서 대상 계정으로 객체를 복사하고, 대상 계정에 인벤토리 보고서를 저장합니다.

다른 계정이 소유한 원본 버킷과 대상 버킷에 Amazon S3 인벤토리를 설정하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

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

  3. 인벤토리 보고서를 저장할 대상 매니페스트 버킷을 결정하거나 만듭니다. 이 절차에서 대상 계정은 대상 매니페스트 버킷과 객체가 복사되는 버킷을 모두 소유한 계정입니다.

  4. 소스 버킷에 대한 인벤토리 보고서를 구성합니다. 콘솔을 사용하여 인벤토리 목록을 구성하는 방법 또는 인벤토리 목록 파일을 암호화하는 방법에 대한 자세한 내용은 Amazon S3 인벤토리 구성 페이지를 참조하세요.

    인벤토리 보고서를 구성할 때 목록을 저장할 대상 버킷을 지정합니다. 원본 버킷에 대한 인벤토리 보고서가 대상 버킷에 게시됩니다. 이 절차에서 원본 계정은 원본 버킷을 소유한 계정입니다.

    출력 형식으로 CSV를 선택하세요.

    대상 버킷에 대한 정보를 입력할 때 다른 계정의 버킷을 선택하세요. 그런 다음 대상 매니페스트 버킷의 이름을 입력합니다. 선택적으로 대상 계정의 계정 ID를 입력할 수 있습니다.

    인벤토리 구성을 저장하면 콘솔에 다음과 유사한 메시지가 표시됩니다.

    Amazon S3은 대상 버킷에 버킷 정책을 생성할 수 없습니다. Amazon S3이 대상 버킷에 데이터를 저장할 수 있도록 다음 버킷 정책을 추가하려면 대상 버킷 소유자에게 요청하세요.

    그러면 콘솔에 대상 버킷에 사용할 수 있는 버킷 정책이 표시됩니다.

  5. 콘솔에 표시되는 대상 버킷 정책을 복사하세요.

  6. 대상 계정에서 인벤토리 보고서가 저장된 대상 매니페스트 버킷에 복사한 버킷 정책을 추가합니다.

  7. S3 배치 작업 신뢰 정책을 기반으로 하는 대상 계정에 역할을 생성합니다. 신뢰 정책에 대한 자세한 내용은 신뢰 정책 섹션을 참조하세요.

    역할 만들기에 대한 자세한 내용은 IAM 사용 설명서의 역할을 만들어 AWS 서비스에 권한 위임을 참조하세요.

    역할의 이름을 입력하세요(다음 예제 역할은 이름 BatchOperationsDestinationRoleCOPY 사용). S3 서비스를 선택한 다음, 신뢰 정책을 역할에 적용하는 S3 Batch Operations 사용 사례를 선택합니다.

    그리고 정책 생성을 선택하여 다음 정책을 역할에 연결하세요. 이 정책을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperationsDestinationObjectCOPY", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectVersionAcl", "s3:PutObjectAcl", "s3:PutObjectVersionTagging", "s3:PutObjectTagging", "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*", "arn:aws:s3:::amzn-s3-demo-source-bucket/*", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] } ] }

    이 역할은 정책을 사용하여 대상 버킷의 매니페스트를 읽을 수 있는 batchoperations.s3.amazonaws.com 권한을 부여합니다. 소스 객체 버킷의 GET 객체, 액세스 제어 목록(ACL), 태그 및 버전에 대한 권한도 부여합니다. 또한, 대상 객체 버킷의 PUT 객체, ACL, 태그 및 버전에 대한 권한을 부여합니다.

  8. 소스 계정에서, 이전 단계에서 만든 역할에 소스 버킷의 GET 객체, ACL, 태그 및 버전에 대한 권한을 부여하는 소스 버킷에 대한 버킷 정책을 만듭니다. 이 단계에서는 신뢰할 수 있는 역할을 통해 S3 배치 작업이 원본 버킷에서 객체를 가져올 수 있습니다.

    다음은 원본 계정에 대한 버킷 정책의 예입니다. 이 정책을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperationsSourceObjectCOPY", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DestinationAccountNumber:role/BatchOperationsDestinationRoleCOPY" }, "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*" } ] }
  9. 인벤토리 보고서를 사용할 수 있게 되면 대상 계정에 S3 Batch Operations 복사(CopyObject) 작업을 생성하고 대상 매니페스트 버킷에서 인벤토리 보고서를 선택합니다. 대상 계정에서 만든 IAM 역할에 대한 ARN이 필요합니다.

    작업 생성에 대한 일반적인 정보는 S3 배치 작업 건 생성 섹션을 참조하세요.

    콘솔을 사용하여 작업을 만드는 방법에 대한 자세한 내용은 S3 배치 작업 건 생성 섹션을 참조하세요.