使用存储在源账户中的 CSV 清单跨 Amazon Web Services 账户 复制对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用存储在源账户中的 CSV 清单跨 Amazon Web Services 账户 复制对象

您可以使用存储在不同 Amazon Web Services 账户 中的 CSV 文件作为 S3 分批操作任务的清单。有关使用 S3 库存报告的信息,请参阅使用发送到目标账户的清单报告来跨 Amazon Web Services 账户 复制对象

以下过程显示如何在使用 S3 分批操作任务通过存储在源账户中的 CSV 清单文件将对象从源账户复制到目标账户时设置权限。

设置存储在不同 Amazon Web Services 账户 中的 CSV 清单

  1. 在目标账户中创建一个基于 S3 分批操作信任策略的角色。在此过程中,目标账户是对象要复制到的账户。

    有关信任策略的更多信息,请参阅信任策略

    有关创建角色的更多信息,请参阅《IAM 用户指南》中的创建向 Amazon 服务委派权限的角色

    如果您使用控制台创建角色,请输入角色的名称(示例角色使用名称 BatchOperationsDestinationRoleCOPY)。选择 S3 服务,然后选择 S3 bucket Batch Operations (S3 存储桶批量操作) 使用案例,这会将信任策略应用于该角色。

    然后选择 Create policy (创建策略) 以将以下策略附加到该角色。

    { "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:::ObjectDestinationBucket/*", "arn:aws:s3:::ObjectSourceBucket/*", "arn:aws:s3:::ObjectSourceManifestBucket/*" ] } ] }

    使用策略,该角色将授予 batchoperations.s3.amazonaws.com 权限以读取源清单存储桶中的清单。它授予对源对象存储桶中的 GET 对象、ACL、标签和版本的权限。还授予对目标对象存储桶中的 PUT 对象、ACL、标签和版本的权限。

  2. 在源账户中,为包含清单的存储桶创建存储桶策略以向您在上一步中创建的角色授予对源清单存储桶中的 GET 对象和版本的权限。

    此步骤允许 S3 分批操作使用可信角色读取清单。将存储桶策略应用于包含清单的存储桶。

    以下是要应用于源清单存储桶的存储桶策略的示例。

    { "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:::ObjectSourceManifestBucket/*" } ] }

    此策略还授予权限来允许要在目标账户中创建任务的控制台用户通过相同的存储桶策略具有源清单存储桶中的相同权限。

  3. 在源账户中,为源存储桶创建一个存储桶策略,该策略向您创建的角色授予源对象存储桶中的 GET 对象、ACL、标签和版本的权限。然后,S3 分批操作可以通过可信角色获取源存储桶中的对象。

    以下是包含源对象的存储桶的存储桶策略示例。

    { "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:::ObjectSourceBucket/*" } ] }
  4. 在目标账户中创建 S3 分批操作任务。您需要您在目标账户中创建的角色的 Amazon 资源名称 (ARN)。

    有关创建任务的一般信息,请参阅 创建 S3 分批操作任务

    有关使用控制台创建任务的信息,请参阅 创建 S3 分批操作任务