【问题标题】:How to sync data between two s3 buckets owned by different profiles如何在不同配置文件拥有的两个 s3 存储桶之间同步数据
【发布时间】:2018-03-16 01:10:51
【问题描述】:

我想在两个 s3 存储桶之间同步数据。

问题是每个都由不同的 AWS 账户拥有(即访问密钥 ID 和秘密访问密钥)。

我试图让目标存储桶公开可写,但我仍然得到

fatal error: An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied

如何解决?

【问题讨论】:

  • 在 IAM 角色之一(假设是账户 A)中启用跨账户访问。在第二个账户(假设是账户 B)的存储桶中,设置存储桶策略以启用账户 A 的 IAM 角色向其写入 (s3:PutObject)。
  • S3 存储桶归根 AWS 账户所有,而不是特定的 IAM 用户/角色/配置文件。此外,S3 存储桶没有专门的访问密钥/秘密密钥,它们是分配给根 AWS 账户或 IAM 账户的访问凭证。那么您是说存储桶由不同的 AWS 账户拥有吗?或者您只是说您目前在单个 AWS 账户下使用不同的 IAM 用户来访问存储桶?
  • 是的@MarkB。没错,两个存储桶由不同的 AWS 账户拥有。顺便说一句,我解决了授予源存储桶帐户的权限。

标签: amazon-web-services amazon-s3 synchronization copy aws-cli


【解决方案1】:

我通过授予将目标存储桶写入源存储桶的 AWS 账户的权限来解决。

我转到目标存储桶的“权限”选项卡“其他 AWS 账户的访问权限”,并使用账户电子邮件向源存储桶的 AWS 账户授予权限。

然后我使用 AWS CLI 复制了文件(不要忘记授予对收件人账户的完全访问权限!):

aws s3 cp s3://<source_bucket>/<folder_path>/ s3://<destination_bucket> --recursive --profile <source_AWSaccount_profile> --grants full=emailaddress=<destination_account_emailaddress>

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多