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

art*_*lay 6 amazon-ec2 amazon-web-services aws-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"

如果我使用IAM:roleA手动创建EC2实例,然后使用CLI获取假定角色凭据,则可以按预期从其他帐户的S3存储桶中提取文件.

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

我已经尝试过很多教程,例如这个cfn-iam:init教程,但仍然无法完全掌握其中的内容.

谢谢你的建议.

艺术

Joh*_*ein 3

不可能告诉 CloudFormation 承担另一个角色。

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

请参阅:启动时在 Linux 实例上运行命令