【发布时间】:2015-08-22 18:05:06
【问题描述】:
我正在尝试制定 AWS CloudFormation 模板的逻辑流程,该模板将承担一个 IAM 角色,该角色可以从另一个 AWS 账户的 S3 存储桶中提取文件。
到目前为止我所拥有的是:
- accountA 有一个角色A
- roleA 的策略允许 sts:AssumeRole 用于 accountB 中的角色:arn:aws:iam::11122233444:role/AllowPullS3
- accountB 的角色 (AllowPullS3) 具有
- 策略允许:s3 listBucket + 获取、放置、删除
- accountA 的信任关系:Action:"sts:AssumeRole"
如果我使用 IAM:roleA 手动创建 EC2 实例,然后使用 CLI 获取承担角色凭据,我可以按预期从其他账户的 S3 存储桶中提取文件。
但是我需要在我的 accountA CF 模板中的什么位置放置以允许 EC2 实例承担角色 B 并从 accountB S3 存储桶中提取文件作为形成的一部分?
我尝试了很多教程,例如this cfn-iam:init tutorial,但仍然无法完全掌握其中的内容。
感谢您的建议。
艺术
【问题讨论】:
-
你必须使用 AssumeRole 吗?存储桶策略是否足够,或者您是否试图避免这种情况?如果您已在 accountA 中手动创建角色,并已使用 IamInstanceProfile 属性将其附加到 EC2 实例,您可以将 accountA 中的角色 ARN 添加到 accountB 中 s3 存储桶的存储桶策略中,如果您愿意这样做的话。这比搞乱跨帐户角色要简单。
标签: amazon-web-services amazon-ec2 amazon-cloudformation amazon-iam