sorta kinda...

主にAWS関連ですが、これに限らずいろいろ勉強したことや思ったことを書いていきます。

AWS CLI でアカウント ID とユーザを確かめて安心する

ナスです。

AWS CLI を使ってると、本当に作業してるアカウントやユーザがあってるのかどうか気になりませんか?
私は気になります。

そこで自分が作業してるところが本当に間違ってないかどうかを確かめるコマンドを紹介します。

 

コマンド 1 発です!

まず、AWS アカウントやユーザを確認するコマンドはこれです。アカウント ID が 123456789012 で、ユーザが work_api で実行した場合の結果例です。

$ aws sts get-caller-identity
{
    "Account": "123456789012",
    "UserId": "HOGEHOGEHOGEHOGE",
    "Arn": "arn:aws:iam::123456789012:user/work_api"
}

このように JSON 形式で結果が取れればあとはなんとでもなりますね。アカウント ID だけテキストで取りたければこんな感じで

$ aws sts get-caller-identity | jq '.Account'
"123456789012"
$ aws sts get-caller-identity --query 'Account'
"123456789012"

ダブルクオートが邪魔な場合はこんな感じで

$ aws sts get-caller-identity | jq -r '.Account'
123456789012
$ aws sts get-caller-identity --query 'Account' --output text
123456789012

jq に渡したりオプションをうまく使えばシェルでいい感じで使えそうです。ロール切り替えしている場合にこのコマンドを実行すると、

$ aws sts get-caller-identity --profile admin
{
    "UserId": "HOGEHOGEHOGEHOGE:botocore-session-1234567890",
    "Account": "123456789012",
    "Arn": "arn:aws:sts::123456789012:assumed-role/admin_role/botocore-session-1234567890"
}

というふうに、ロールを切り替えていることが分かります。上の例は、admin_role というロールに切り替えて CLI 実行したものです。

今回のコマンドのドキュメントは↓これです。
get-caller-identity — AWS CLI 1.15.2 Command Reference

 

IAM ユーザがわからなくても、どの IAM ロールで作業しているのかわからなくても、どの AWS アカウントで作業しているのかわからなくても、これらのコマンドですぐにわかるのでうまく使ってスクリプト等で様々な自動化をして楽したいなーって思いました。