如何将S3存储桶迁移到另一个账户中。

6

我需要将一个S3存储桶的数据移动到另一个账户下的不同存储桶。 通过运行以下命令,我成功地同步了这两个存储桶:

aws s3 sync s3://my_old_bucket s3://my_new_bucket --profile myprofile

我的个人资料 内容:

[profile myprofile]
aws_access_key_id = old_account_key_id
aws_secret_access_key = old_account_secret_access_key

我还设置了源和目的地的策略。源允许列出和获取,目标允许发布。

这些命令完美地工作,我可以登录到其他帐户并查看文件。但是,我无法拥有新桶或使其公开。我需要能够像在旧帐户中一样进行更改。新帐户与旧帐户完全无关。似乎文件保留了权限,并且仍由旧帐户拥有。

如何设置权限以便使用新帐户完全访问文件?

2个回答

4
--acl bucket-owner-full-control 添加到您的CLI调用中,因此您的命令应该类似于这样:aws s3 sync s3://my_old_bucket s3://my_new_bucket --acl bucket-owner-full-control --profile myprofilebucket-owner-full-control 是一个预定义授权(简而言之,是一种预定义ACL),请查看S3预定义ACL文档以查看其他选项及其功能。
这将导致对象归属于目标存储桶。

2
"最初的回答"翻译成中文是:"Original Answer"

"看起来文件保留了权限,并且仍由旧账户拥有。"

上传者拥有该对象。

由于新桶归新账户所有,您可以通过传递授权选项更新桶ACL,以授予桶所有者完全控制对象的权限。1

--grants full=id=canonicalUserId-ofTheBucketOwner

您可以从AWS S3控制台查看存储桶所有者的规范ID。2 原始答案: "最初的回答"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接