从另一个AWS帐户访问S3库存

时间:2019-11-22 11:55:35

标签: amazon-web-services amazon-s3

我已经为存储桶设置了S3库存报告,正在分析的数据位于存储桶/数据中,同时生成了库存报告并将其存储到存储桶/元数据/库存/中。

现在,我想从另一个AWS账户访问它,我已经创建了用于跨账户访问的IAM角色策略,并且只能从存储桶/数据/前缀中通过SDK或AWS CLI复制/获取文件。如果我尝试获取为S3库存报告创建的文件,例如manifest.json文件或清单报告中路径为bucket / meta / inventory /.../ data / report.csv的任何csv文件,则会得到:

  

403访问被拒绝

或通过CLI

  

调用GetObject操作时发生错误(AccessDenied):访问被拒绝。

这很奇怪,因为我具有允许该IAM角色的整个存储桶使用s3:ListBucket和s3:GetObject的策略,但似乎是s3.amazonaws.com服务创建的文件,在这种情况下,该IAM角色无法访问库存报告。

有人遇到过这个吗?任何人都可以提出修复建议?

1 个答案:

答案 0 :(得分:1)

我已发现问题,看来您必须在S3广告资源的存储桶策略语句中提供"s3:x-amz-acl": "bucket-owner-full-control" StringEquals Condition,如下所示:

https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9

否则,“库存报告”中文件上的ACL将阻止拥有库存所在存储桶的帐户之外的任何访问。