当前位置: 首页 > 知识库问答 >
问题:

如何在云形成模板中使用来自另一个AWS帐户的AssumeRole?

田化
2023-03-14

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

到目前为止,我得到的是:

  1. accountA有一个角色a
  2. roleA的策略允许sts:AssumeRole作为accountB:arn:aws:iam::1112223444:role/AllowPullS3中的角色
  3. accountB的角色(AllowPullS3)为
  4. 策略允许:s3 listBucket获取、放置、删除
  5. accountA的信任关系:操作:“sts:AssumeRole”

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

但是,我需要在accountA CF模板中放置什么,以允许EC2实例承担roleB并从accountB S3 bucket中提取文件作为表单的一部分?

我已经尝试了很多教程,比如这个cfn iam:init教程,但仍然不能完全理解其中的内容。

谢谢你的建议。

艺术

共有1个答案

赫连俊雄
2023-03-14

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

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

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

 类似资料:
  • 创建DynamoDB CloudForm模板时,您需要指定提供吞吐量: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb表格已提交 但我也看到了这篇文档,其中指出,当您通过控制台创建表时,默认情况下会设置自动缩放。 http://do

  • 长版本:我们有一个web表单,收集信息-选择模板id和预先填写信息到一个表单,然后发送给签名者。现在,我们的程序员编写了一个过程,将所有模板从一个用户帐户中发送出去,因此所有文档都列在一个帐户中。我们希望改变这一点,因此不同的模板来自不同的用户帐户,这可以很容易地在模板创建点确定。 这可能吗?如果是这样,实现这一目标的API调用或规范是什么?帐户端有什么需要更改的吗?

  • 我在AWS云服务中设置了一个项目。在那里我使用了EC2实例、AMI、弹性IP、互联网门路、NACL、路由表、安全组、自定义VPC、私有和公共子网、弹性负载平衡、自动伸缩、启动配置、KMS-key、Lambda、RDS Aurora实例、S3桶、简单电子邮件服务、简单队列服务、简单通知服务、云观察日志。现在我的客户要求将所有服务从现有的AWS帐户迁移到新的AWS帐户。

  • 我有一个向 SNS 主题发送通知的 AWS λ。 Lambda函数 我们使用云形成模板来部署 、 和 。如何访问通过云信息创建的主题的 ARN。 云形成模板

  • 如何定制AWS Codestar/Cloudformation模板以创建特定的代码构建项目 像lambda这样的资源很好SAM 问题是,当我试图添加代码构建设置时,使用Yaml作为模板的特定docker映像(需要使用Python3.7而不是默认的2.7)。yml构建规范。yml Lambda创建成功,但是代码构建部分被忽略,并且什么也没有发生 编辑2我能够编辑CF模板来强制创建另一个代码构建项目。

  • 我有一个根帐户是1234(帐户ID),我有启用MFA的身份验证,我的用户名是myuser12。我可以使用帐户ID、用户名和密码登录。它将请求MFA令牌代码。一旦我输入了令牌代码。我可以在我的根帐户下查看特定位置的实例。 我可以使用我的角色(在我的情况下,所有帐户的角色都是相同的)以及该角色的任何别名将角色切换到新帐户(5678)。切换角色完成后,我可以在特定位置看到新帐户下的所有实例。 通过网络控