如何将 Amazon S3 存储桶转移到另一个帐户?

How to transfer an Amazon S3 bucket to another account?

我为客户配置了 AWS 实例,最后我需要将所有内容转移给他们,这样 AWS 和 S3 使用的账单也会记在他们的账户上。

我知道有一种方法可以“transfer" an EC2 instance via AMI sharing, but is there a way to transfer ownership or share S3 buckets as well? (Preferably avoid making a copy 但转移原始存储桶本身。

S3 Bucket 不能在账户之间转移。至少是简单意义上的"here is my bucket, now it is your bucket"。每个人似乎都使用某种形式的复制。如果您同时拥有原始存储桶和目标存储桶的权限,那么您可以使用 AWS CLI 并且

aws s3 sync s3://bucket1 s3://bucket2

您是否尝试过将他们的帐户作为 ALL PERMISSION 用户添加到您的某个存储桶中? http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-creatingrole-policyexamples.html

然后以他们的帐户登录,看看他们是否可以编辑政策以删除您的原始帐户?不确定在您创建存储桶后计费结果如何。

您可以通过创建目标存储桶 public 来在帐户之间传输存储桶的内容(有更安全的方法可以做到这一点)。 然后使用您通过 运行 s3 cp 命令(这不需要带宽)进行身份验证的其他帐户的 aws CLI:

aws s3 cp "s3://bucket-source/file.zip" "s3://bucket-you-dont-own/NewFolder/" --acl bucket-owner-full-control

如果您不将“--acl bucket-owner-full-control”添加到您的 s3 字符串中,您将收到拒绝访问错误,因为目标帐户没有文件权限:

调用 ListObjects 操作时发生客户端错误 (AccessDenied):拒绝访问

如果您打算经常这样做,那么您应该为每个客户创建一个新帐户,然后将整个帐户的所有权转让给客户。 请参阅整合账单和组织。