使用 CLI 从 EC2 实例列表获取 AWS 角色名称

使用 CLI 从 EC2 实例列表获取 AWS 角色名称

AWS CLI 请求“ec2 describe-instances”和“ec2 describe-iam-instance-profile-associations”在“IamInstanceProfile”属性中包含实例配置文件。

其中包括 ARN,例如:

arn:aws:iam::123:instance-profile/AmazonSSMRoleForInstancesQuickSetup

在这种情况下,本例中的最后一段“AmazonSSMRoleForInstancesQuickSetup”是 IAM 角色名称。在对多个现有问题的回答中也建议这样做:

但有时实例配置文件中的 ARN 看起来像这样:

arn:aws:iam::123:instance-profile/eks-ab13cc88-bc13-13bc-acdc-1234567890ab

最后一部分不再是角色名称 - 实际上,它似乎是“Auto Scaling 组名称”。AWS Web 界面确实在两种情况下都在实例属性中显示了分配的 IAM 角色。

如何在所有情况下使用 AWS CLI 可靠地获取 EC2 实例的角色名称?

答案1

非常感谢@[电子邮件保护] - 在此引用他们的回复,如果他们自己发布的话将会被删除。

EC2 实例配置文件是保存角色的容器。默认情况下,将创建一个与配置文件名称匹配的角色,但它们可能不同。

我认为您需要获取配置文件名称并使用它来调用aws iam get-instance-profile --instance-profile-name <value>。在您想要的响应中InstanceProfile.Roles[].RoleArn

https://docs.aws.amazon.com/cli/latest/reference/iam/get-instance-profile.html https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html

相关内容