当源存储桶和目标存储桶由不同账户拥有时配置复制 - Amazon Simple Storage Service

当源存储桶和目标存储桶由不同账户拥有时配置复制

存储桶和目标存储桶由不同 AWS 账户拥有时设置复制的操作,与这两个存储桶由相同账户拥有时设置复制的操作类似。唯一区别在于,目标存储桶拥有者必须通过添加存储桶策略,向存储桶拥有者授予复制对象的权限。

有关在跨账户场景中使用具有 AWS Key Management Service 的服务器端加密配置复制的更多信息,请参阅为跨账户方案授予其他权限

当源存储桶和目标存储桶由不同 AWS 账户 拥有时配置复制
  1. 在此示例中,您将在两个不同的 AWS 账户 中创建源存储桶目标存储桶。您需要为 AWS CLI 设置两个凭证配置文件(在此示例中,我们使用 acctAacctB 作为配置文件名称)。有关设置凭证配置文件的更多信息,请参阅《AWS Command Line Interface 用户指南》中的命名配置文件

  2. 按照 针对同一账户中的存储桶进行配置 中的分步说明操作,进行以下更改:

    • 对于与存储桶活动相关的所有 AWS CLI 命令(用于创建存储桶、启用版本控制和创建 IAM 角色),使用 acctA 配置文件。使用 acctB 配置文件创建目标存储桶。

    • 确保权限策略指定为此示例创建的源存储桶目标存储桶。

  3. 在控制台中,在目标存储存储桶上添加以下存储桶策略,以允许存储存储桶的拥有者复制对象。请务必编辑该策略,即提供存储桶拥有者的 AWS 账户 ID 和目标存储桶名称。

    注意

    要使用以下示例,请将 user input placeholders 替换为您自己的信息。将 DOC-EXAMPLE-BUCKET 替换为您的存储桶的名称。将 source-bucket-acct-ID:role/service-role/source-acct-IAM-role 替换为用于此复制配置的角色。

    如果您手动创建 IAM 服务角色,请将角色路径设置为 role/service-role/,如以下策略示例所示。有关更多信息,请参阅《IAM 用户指南》中的 IAM ARN

    { "Version":"2012-10-17", "Id":"", "Statement":[ { "Sid":"Set-permissions-for-objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-acct-ID:role/service-role/source-acct-IAM-role" }, "Action":["s3:ReplicateObject", "s3:ReplicateDelete"], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Sid":"Set permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-acct-ID:role/service-role/source-acct-IAM-role" }, "Action":["s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning"], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET" } ] }

请选择存储桶并添加存储存储桶策略。有关说明,请参阅 使用 Amazon S3 控制台添加存储桶策略

在复制中,默认情况下,源对象的拥有者拥有副本。当源存储桶和目标存储桶由不同的 AWS 账户拥有时,您可以添加可选的配置设置以将副本所有权更改为拥有目标存储桶的 AWS 账户。这包括授予 ObjectOwnerOverrideToBucketOwner 权限。有关更多信息,请参阅更改副本拥有者