web-dev-qa-db-ja.com

コマンドライン(CLI)でawsアクセスキーとシークレットキーだけでawsアカウントIDを取得することは可能ですか?

コマンドライン(CLI)でawsアクセスキーとシークレットキーだけでawsアカウントIDを取得することは可能ですか?

アクセスキーとシークレットキーを持っています。コマンドラインでそれらを使用してアカウントIDを取得することは可能ですか?.

7
Vandhana

これは正しい方法です:

~ $ 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
7
MLu

ほとんどすべての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
0
andrew lorien