【问题标题】:S3 to S3 transfer using different accounts?S3 到 S3 转移使用不同的帐户?
【发布时间】:2017-03-29 00:15:34
【问题描述】:

我一直在阅读多个帖子,例如 this one,关于如何使用不同的帐户将带有 aws cli 的数据从一个 S3 存储桶传输到另一个存储桶,但我仍然无法这样做。我确定是因为我还没有完全掌握 AWS 中账户 + 权限设置的概念(例如 iam 账户与访问密钥)。

我有一个供应商给了我一个名为 "Foo" 的用户和帐号 "123456789012",并使用 2 个访问密钥来访问他们的 S3 存储桶 "SourceBucket " 在 eu-central-1 中。我使用供应商提供的名为 "sourceProfile" 的访问密钥在我的机器上创建了一个配置文件。我在 us-east-1 中有名为 "DestinationBucket" 的 S3,我将存储桶策略设置为以下内容。

{ "Version": "2012-10-17", "Id": "Policy12345678901234", "Statement": [ { "Sid": "Stmt1487222222222", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Foo" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DestinationBucket/", "arn:aws:s3:::DestinationBucket/*" ] } ] }

奇怪的部分来了。我可以使用以下命令行列出文件,甚至可以从 "DestinationBucket" 下载文件。

aws s3 ls s3://DestinationBucket --profile sourceProfile aws s3 cp s3://DestinationBucket/test ./ --profile sourceProfile

但是当我尝试使用配置文件将任何内容复制到 "DestinationBucket" 时,我收到了拒绝访问错误。

aws s3 cp test s3://DestinationBucket --profile sourceProfile --region us-east-1 upload failed: ./test to s3://DestinationBucket/test An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

我是否设置了存储桶策略,尤其是操作列表?从目的地到本地的 ls 和 cp 怎么能工作,但从本地到目的地桶的 cp 不起作用?

【问题讨论】:

  • 你能不能暂时把Action改成"s3:*"来测试是否有效?如果是这样,那么aws s3 cp 命令可能需要在目标存储桶中执行一些额外的操作。
  • 是的,我试过 s3:* 并得到相同的结果
  • 那么它肯定可以工作!我建议暂时将其更改为 * 的 Principal 以查看它是否有效。这将有助于缩小可能出错的范围。

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


【解决方案1】:

因为 AWS 使其成为 parent account holder must do the delegation 的一种方式。

实际上,除了将访问权委托给该特定访问密钥用户之外,您还可以选择在存储桶上进行复制,如 here 所述。

【讨论】:

  • 我认为@mootmoot 建议的文章中的步骤 2.3 是缺失的部分,但我仍然得到相同的error occurred (AccessDenied) when calling the PutObject operation: Access Denied
  • @FooBarbaz :您需要通读整个文档。步骤 2.3 还不够
  • 我颠倒了这个方法,它现在可以工作了。我没有使用供应商创建的帐户从他们的存储桶中获取对象并将对象放在我的存储桶中,而是使用能够将对象放入存储桶的帐户。设置相同但相反(例如,在供应商的存储桶上设置存储桶策略以允许我的帐户访问它)。不知道为什么原始方法不起作用,但没有时间进一步调查。
  • @FooBarbaz 委托部分非常棘手。 AWS 只显示有效的方式,它不显示其他方式(例如,供应商给你一个 bucky 访问密钥)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 2017-01-08
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多