AWS将外部角色分配给实例

时间:2018-08-18 21:33:54

标签: amazon-web-services boto3 amazon-iam

我有一个程序,它要经过许多帐户并进行库存。现在,它正在使用boto3和AWS密钥。

我想离开AWS键,而是将角色分配给实例并使用该角色来切换帐户。

我知道如何为用户分配外部角色,但是我不知道如何使用实例角色来做到这一点。

这里的想法是做这样的事情:

  1. 从主要组织帐户获取所有帐户的列表
  2. 对于每个帐户,假定具有ec2角色(和其他服务)描述角色
  3. 获取库存
  4. 将角色切换到另一个帐户。

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:2)

您的方法是正确的。您将按照以下步骤进行操作:

  • 在主帐户中创建主要角色
  • 将此角色分配给用于收集清单的Amazon EC2实例。
  • 在每个目标帐户中
  • 创建一个目标IAM角色
    • 为每个目标角色分配足够的权限以允许清单(例如Describe*调用)
    • 在每个目标角色上编辑信任策略,以允许主要角色使用目标角色

然后,您的应用程序可以使用主要角色(分配给EC2实例)调用子帐户中每个目标角色上的AssumeRole()(按照您的步骤2)。

因此,您的流程确实是:

  1. 从主要组织帐户获取所有帐户的列表
  2. 对于每个帐户:
    • 在目标角色上承担角色
    • 获取库存

答案 1 :(得分:0)

您可以调用org API来首先列出帐户,并使用与具有跨帐户角色的每个帐户相同的方式进行调用 确保您的Ec2角色具有足够的权限以担任子帐户的角色

for (let i = 0; i < 3; i++) {
  min = await new Promise((resolve) => {
    setTimeout(() => {
      resolve(timeout(i, min))
    }, 500);
  })
}