【问题标题】:How to migrate S3 bucket to another account如何将 S3 存储桶迁移到另一个帐户
【发布时间】:2019-02-16 15:43:32
【问题描述】:

我需要将数据从 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

我还制定了关于出发地和目的地的政策。 Origins 允许列出和获取,destination 允许发布。

这些命令运行良好,我可以登录到其他帐户并查看文件。但我不能取得所有权或公开新的存储桶。我需要能够像在旧帐户中那样进行更改。新帐户与新帐户完全无关。看起来文件保留了权限,并且它们仍然归旧帐户所有。

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

【问题讨论】:

    标签: amazon-s3


    【解决方案1】:

    --acl bucket-owner-full-control 添加到您的 CLI 调用中,因此您的命令应如下所示: aws s3 sync s3://my_old_bucket s3://my_new_bucket --acl bucket-owner-full-control --profile myprofile

    bucket-owner-full-control 是一个罐装 ACL(简而言之,罐装 ACL 是一种预定义的授权),请查看此以了解其他可用选项以及它们在 S3 Canned ACL documentation 中的作用。

    这将导致对象归目标存储桶所有。

    【讨论】:

      【解决方案2】:

      “文件似乎保留了权限,并且仍归旧帐户所有。”

      对象的上传者拥有它。

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

      --grants full=id=canonicalUserId-ofTheBucketOwner
      

      您可以从 AWS S3 控制台查看存储桶所有者的规范 ID。 2

      【讨论】:

        猜你喜欢
        • 2022-06-17
        • 2017-05-22
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多