awsアクセスキーと秘密キーのみを使用して、コマンドライン(CLI)からawsアカウントIDを取得できますか?
アクセスキーと秘密キーがあります。コマンドラインでアカウントIDを使用してアカウントIDを取得できますか?
答え1
正しい方法は次のとおりです。
~ $ aws sts get-caller-identity
{
"Account": "123456789012",
"UserId": "AIDABCDEFGHJKL...",
"Arn": "arn:aws:iam::123456789012:user/some.user"
}
IAMユーザー、クロスアカウントIAMロール、EC2 IAMロールなどと連携します。
次のように使用:jq
アカウントIDのみを取得するには:
~ $ aws sts get-caller-identity | jq -r .Account
123456789012
答え2
これsts はアクセスキー情報を取得します。コマンドを使用するとAWS_ACCESS_KEY_ID
。
$ aws sts get-access-key-info --access-key-id ${AWS_ACCESS_KEY_ID}
{
"Account": "123456789012"
}
答え3
ほぼすべてのAWSオブジェクトにはアカウントIDが含まれています。たとえば、私のIAMユーザーはarn:aws:iam::ACCOUNT_ID:user/Andrew.Lorienで、私のcloudformationスタックの1つのIDはarn:aws:cloudformation:us-west-2:ACCOUNT_ID:stack/my-repositoryです。 / 12345678-90ab-cdef-1234-567890abcdef。したがって、保持しているすべての情報を照会し、その情報からIDを抽出できます。これは、最初のIAMユーザー(arn:aws:iam :: ACCOUNT_ID:user / USER_NAMEなどの文字列)を取得してアカウントIDを抽出するbash一行コードです。
aws iam list-users --query "Users[0].Arn" --output text | cut -d ":" -f 5