使用假定规则在3个AWS账户之间进行跨账户访问

时间:2018-07-25 03:41:46

标签: amazon-web-services amazon-s3 aws-sdk amazon-iam

我们在 AWS-Account-A 中提供了一项服务,该服务会将带有ACL: 'bucket-owner-full-control'的某些文件复制到 AWS-Account-B 中的s3存储桶中。现在有一个 AWS-Account-C ,它已经具有来自AWS-Account-B的假定规则(附加了S3读取访问策略),并且S3存储桶策略已经赋予了对AWS的读取访问权限-Account-C规则,所以问题是,AWS-Account-C: Can't 读取从AWS-Account-A上传的那些文件,并且仅 CAN 读取使用AWS-Account-B本身上传的文件。

我知道这是一个Reallay格式的secnario,但是据我了解,这是一个所有权问题。存储桶策略仅适用于存储桶所有者拥有的对象,因此,就像X拥有一些文件,然后他将其复制到Y,现在Z无法获取它来自Y,因为它不归Y所有。

如果有人以前曾遇到过这种先发症,并且有解决方案,我真的很感激能提供一些指导。

1 个答案:

答案 0 :(得分:3)

您的问题是您使用帐户A将文件复制到帐户B拥有的存储桶中,但是现在复制的文件由帐户A拥有。这就是为什么Account-C无法访问它们的原因。帐户C没有所需的权限。

正确的步骤是在帐户B中创建一个由帐户A承担的角色。然后,在帐户A将文件复制到帐户B中的存储桶之前,它将承担帐户B的角色。现在,复制到存储桶中的文件将归帐户B拥有。

对于当前在Account-B存储桶中的文件,请使用Account-B的凭据进行就地复制。这会将所有权切换到帐户B。

这是一个就地复制示例。注意:只是S3内没有数据通过Internet传输,因此可以快速执行。

aws s3 cp s3://mybucket/mykey s3://mybucket/mykey --storage-class STANDARD

'-recursive'参数适用于整个键文件夹。

警告:

1)所有自定义元数据和现有权限都将丢失。

2)在执行诸如此类的命令之前,请确保已备份了数据。