CSV 매니페스트를 사용하여 AWS 계정 간에 객체 복사 - Amazon Simple Storage Service

CSV 매니페스트를 사용하여 AWS 계정 간에 객체 복사

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

소스 계정에 저장된 CSV 매니페스트를 사용하여 S3 배치 작업에서 AWS 계정 간에 객체를 복사할 수 있습니다. S3 인벤토리 보고서를 매니페스트로 사용하려면 인벤토리 보고서를 사용하여 AWS 계정 간에 객체 복사 섹션을 참조하세요.

매니페스트 파일의 CSV 형식 예는 매니페스트 파일 생성 섹션을 참조하세요.

다음 절차에서는 S3 배치 작업을 사용하여 소스 계정의 객체를 소스 계정에 저장된 CSV 매니페스트 파일이 있는 대상 계정으로 복사할 때 권한을 설정하는 방법을 보여줍니다.

CSV 매니페스트를 사용하여 AWS 계정 간에 객체를 복사하려면
  1. S3 Batch Operations 신뢰 정책을 기반으로 하는 대상 계정에서 AWS Identity and Access Management(IAM) 역할을 만듭니다. 이 절차에서 대상 계정은 객체가 복사되는 계정입니다.

    신뢰 정책에 대한 자세한 내용은 신뢰 정책 섹션을 참조하세요.

    역할 만들기에 대한 자세한 내용은 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, 태그 및 버전에 대한 권한을 부여합니다.

  2. 소스 계정에서 매니페스트가 포함된 버킷에 대한 버킷 정책을 생성하여 이전 단계에서 생성한 역할에 소스 매니페스트 버킷의 GET 객체 및 버전에 대한 권한을 부여합니다.

    이 단계에서는 S3 배치 작업이 신뢰할 수 있는 역할을 사용하여 매니페스트를 읽을 수 있습니다. 매니페스트가 포함된 버킷에 버킷 정책을 적용합니다.

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperationsSourceManfiestRead", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::DestinationAccountNumber:user/ConsoleUserCreatingJob", "arn:aws:iam::DestinationAccountNumber:role/BatchOperationsDestinationRoleCOPY" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" } ] }

    또한 이 정책은 대상 계정에서 작업을 생성하는 콘솔 사용자가 동일한 버킷 정책을 통해 원본 매니페스트 버킷의 동일한 권한을 사용할 수 있는 권한을 부여합니다.

  3. 소스 계정에서, 생성한 역할에 소스 객체 버킷의 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/*" } ] }
  4. 대상 계정에서 S3 배치 작업을 생성합니다. 대상 계정에서 생성한 역할에 대한 Amazon 리소스 이름(ARN)이 필요합니다. 작업 생성에 대한 자세한 내용은 S3 배치 작업 건 생성 단원을 참조하세요.