amazon-web-services - 如何在 CloudFormation 模板中使用另一个 AWS 账户的 AssumeRole?

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

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

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

  1. 账户A有一个角色A
  2. roleA 的政策允许 sts:AssumeRole 在 accountB :arn:aws:iam::11122233444:role/AllowPullS3 中使用角色
  3. accountB 具有角色 (AllowPullS3)
  4. 策略允许:s3 listBucket + get、put、delete
  5. accountA 的信任关系:Action:"sts:AssumeRole"

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

但是我需要在 accountA CF 模板中放置什么,才能允许 EC2 实例承担角色 B 并从 accountB S3 存储桶中提取文件作为形成的一部分?

我尝试遵循很多教程,例如 this cfn-iam:init tutorial但仍不能完全掌握什么去了哪里。

感谢您的建议。

艺术

最佳答案

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

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

参见:Running Commands on Your Linux Instance at Launch

关于amazon-web-services - 如何在 CloudFormation 模板中使用另一个 AWS 账户的 AssumeRole?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663873/

相关文章:

amazon-web-services - Docker 镜像构建为 AWS CodePipeline 步骤

amazon-web-services - AWS ECS 使用 CloudFormation 承担角色。在哪里获得部署在 ECS 中的 Docker 微服务的角色?

amazon-web-services - CloudFormation 删除 ASG 时未调用 Auto Scaling 组生命周期 Hook

ubuntu - 亚马逊 ec2 ubuntu 安装 gcc

amazon-web-services - 连接XX.XX.XXX.XX端口9200失败 : Connection refused on EC2

amazon-web-services - ECS Fargate 容量提供商

amazon-web-services - 不清楚在 aws cloudformation yaml 模板中的何处添加 --conf spark.jars.packages=org.apache.spark :spark-avro_2. 11 :2. 4.4

amazon-web-services - AWS SAM 在 hello world 模板下部署错误

amazon-web-services - 解析参数 '--targets' : Expected: '=' , 时出错: '' ' 对于输入: '[Key:InstanceIds]'

R + httr 和 EC2 api 身份验证问题