如何在CloudFormation模板中使用来自其他AWS账户的AssumeRole?

时间:2014-05-14 19:51:48

标签: amazon-web-services amazon-ec2 amazon-cloudformation amazon-iam

我正在尝试制定AWS CloudFormation模板的逻辑流程,该模板将承担IAM角色,该角色可以从另一个AWS账户中的S3存储桶中提取文件。

到目前为止我所拥有的是:

  1. accountA有一个角色A
  2. roleA的策略允许sts:AssumeRole用于accountB中的角色:arn:aws:iam :: 11122233444:role / AllowPullS3
  3. accountB具有角色(AllowPullS3)和
  4. 策略允许:s3 listBucket + get,put,delete
  5. accountA的信任关系:行动:" sts:AssumeRole"
  6. 如果我使用IAM:roleA手动创建EC2实例,然后使用CLI获取假定角色凭据,我可以按预期从其他帐户的S3存储桶中提取文件。

    但是我需要在我的账户中放置一个CF模板,它将允许EC2实例承担roleB并从accountB S3存储桶中提取文件作为编队的一部分?

    我尝试过很多教程,例如this cfn-iam:init tutorial,但仍然无法完全掌握其中的内容。

    感谢您的建议。

    技术

1 个答案:

答案 0 :(得分:1)

无法告诉CloudFormation承担另一个角色。

但是,如果您有一个适用于Amazon EC2实例的CLI脚本/命令,那么只需将该脚本作为用户数据传递即可。您的实例启动时脚本将运行。用户数据可以在您的CloudFormation模板中传递,其中定义了EC2实例。

请参阅:Running Commands on Your Linux Instance at Launch