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/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html

関連情報