
AWS CLI リクエスト「ec2 describe-instances」および「ec2 describe-iam-instance-profile-associations」には、「IamInstanceProfile」プロパティにインスタンスプロファイルが含まれます。
これには ARN が含まれます。例:
arn:aws:iam::123:instance-profile/AmazonSSMRoleForInstancesQuickSetup
このような場合、最後のセグメント (この例では「AmazonSSMRoleForInstancesQuickSetup」) が IAM ロール名になります。これは、複数の既存の質問に対する回答でも提案されています。
- https://stackoverflow.com/questions/69002676/how-to-get-an-aws-roles-friendly-name-from-its-arn
- https://stackoverflow.com/questions/68347014/is-there-a-way-to-get-name-of-iam-role-attached-to-an-ec2-instance-with-boto3
- https://stackoverflow.com/questions/70307973/how-to-get-arn-of-an-iam-role
- https://stackoverflow.com/questions/69002676/how-to-get-an-aws-roles-friendly-name-from-its-arn
ただし、インスタンス プロファイルの 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/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html