下面的示例中给出了一个场景:示例4:Bucket所有者向其不拥有的对象授予跨帐户权限。
我能够按照这个例子使它发挥作用。在这个过程中,他们创建了一个用户并做到了这一点:
aws sts assume-role --role-arn arn:aws:iam::accountA-ID:role/examplerole
--profile AccountCDave --role-session-name test
以创建会话。现在我有以下问题。
- 我们真的需要像本例中那样创建一个用户并承担角色吗
- 我们如何使用root用户
- 我们能把它当作EMR_DefaultRole这样的角色吗?如果是,那么它将如何工作
- 它会自动为电子病历作业工作吗?还是我需要在电子病历作业中创建会话
最简单的方法是:
- 在EMR_DefaultRole(或EMR正在使用的任何角色(中,授予足够的访问权限以访问其他帐户中的S3存储桶。例如,在所有存储桶上授予
s3:GetObject
。虽然这还不足以实现这种访问,但仍然需要这样做 - 在其他账户的每个存储桶中,添加一个存储桶策略,授予EMR角色(ARN引用(对存储桶的访问权限。它可能需要
GetObject
和ListBucket
权限
这样,就不需要承担任何角色。相反,EMR使用的角色被授予访问每个bucket的权限。
请参阅:Bucket策略示例-亚马逊简单存储服务