AWS CLIの設定ファイルにて名前付きプロファイルを利用して手軽にAWS CLIのIAMユーザを切り替える
普段業務でAWS CLIを使っているため、業務本番用のアカウントとちょっと個人の調査用のアカウントを分けて使いたいわけですが*1、 aws configure
コマンドで設定できるアカウントは一つだけです。
これではちょっと調査をするたびにクレデンシャル情報を引っ張ってきて入力するのがめんどくさくなるのが目に見えているので他の方法を考えます。
aws configure コマンドで何をしているか
aws configure
コマンドで何をしているかというか、 ~/.aws/config
と ~/.aws/credentials
にコマンドで与えた引数の入力を行なっています。
入力結果のファイルは下記のような形です。
~/.aws/config
[default] region = ap-northeast-1
~/.aws/credentials
[default] aws_access_key_id = ABCDEEGHEXAMPLEKEYID aws_secret_access_key = ABCdefgHIjkLM/OPQrstUVwxyzAbcsExampleKey
このファイルに何か見出しつけてもう1組書いてやったらできそうですね。
awsの設定ファイルで名前付きプロファイルを使う
[XXX]
のように見出しをつけて、認証情報などをその見出しごとに管理でき、これを 名前付きプロファイル
と言うそうです。
~/.aws/config
[default] region = ap-northeast-1 [profile user2] // credentialsと見出しが違うので注意 region=us-east-1 output=text // 出力形式も設定できる
~/.aws/credentials
[default] aws_access_key_id = ABCDEEGHEXAMPLEKEYID aws_secret_access_key = ABCdefgHIjkLM/OPQrstUVwxyzAbcsExampleKey [user2] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
このように見出しをつけて、
$ aws ec2 describe-instances --profile user2
のように --profile
オプションをつけて実行するか、
$ export AWS_PROFILE=user2
のように環境変数を設定することでaws cliで利用するユーザーアカウントを切り替えることができます。
現場からは以上です。