0

我有一个在 EC2 实例上运行的应用程序,该实例具有一个 IAM 配置文件,该配置文件在它所在的账户上描述了 EC2。它还具有另一个帐户的 AssumeRole(该角色也授予 EC2 描述)。以下是我在主账户中的 IAM 角色:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Sid": "{SID}",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::{ACCT_NUM}:role/{ROLE_NAME}"
            ]
        }
    ]
}

以下是辅助账户中的 IAM 角色:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        }
     ]
}

基本上我需要做的是从两个账户中获取 EC2 实例。当前的SDK可以做到这一点吗?目前我只从主账户获取实例。

4

2 回答 2

3

添加ec2:AssumeRole不会自动在帐户之间传播命令。

ec2:DescribeInstances您必须为要从中提取实例信息的每个 AWS 账户和区域调用一次。

您的 EC2 IAM 角色使您能够访问主账户。仅使用这些凭证调用ec2:DescribeInstances将只为您提供该账户的 EC2 实例信息。

接下来,您需要调用ec2:AssumeRole以接收辅助帐户的新凭据。一旦有了这些,您就可以使用它们来调用ec2:DescribeInstances辅助帐户。

于 2017-11-08T23:37:05.703 回答
1

是的,您可以使用 SDK。在您使用来自主(默认)账户的凭证列出 EC2 实例后,您可以使用 STS 调用 AssumeRole() 以获取跨账户的凭证。然后列出那些 EC2 实例。

于 2017-11-08T23:31:24.620 回答