AWS Java SDK:来自 EC2 实例配置文件的 AssumeRole?
AWS Java SDK: AssumeRole from EC2 instance profile?
我在 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 可以吗?目前我只从主账户获取实例。
是的,您可以使用 SDK。使用主(默认)账户的凭据列出 EC2 实例后,您可以使用 STS 调用 AssumeRole() 以获取跨账户的凭据。然后列出那些 EC2 实例。
添加 ec2:AssumeRole
不会在帐户之间自动传播命令。
您必须为要从中提取实例信息的每个 AWS 账户和区域调用一次 ec2:DescribeInstances
。
您的 EC2 IAM 角色授予您访问主账户的权限。仅使用这些凭据调用 ec2:DescribeInstances
将单独为您提供该帐户的 EC2 实例信息。
接下来,您需要调用 ec2:AssumeRole
来接收辅助帐户的新凭据。一旦你有了这些,你就可以使用它们来为辅助帐户调用 ec2:DescribeInstances
。
我在 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 可以吗?目前我只从主账户获取实例。
是的,您可以使用 SDK。使用主(默认)账户的凭据列出 EC2 实例后,您可以使用 STS 调用 AssumeRole() 以获取跨账户的凭据。然后列出那些 EC2 实例。
添加 ec2:AssumeRole
不会在帐户之间自动传播命令。
您必须为要从中提取实例信息的每个 AWS 账户和区域调用一次 ec2:DescribeInstances
。
您的 EC2 IAM 角色授予您访问主账户的权限。仅使用这些凭据调用 ec2:DescribeInstances
将单独为您提供该帐户的 EC2 实例信息。
接下来,您需要调用 ec2:AssumeRole
来接收辅助帐户的新凭据。一旦你有了这些,你就可以使用它们来为辅助帐户调用 ec2:DescribeInstances
。