小ネタです。 複数のAWSアカウントを利用していると、1台のPCで複数のIAMをCLIから利用したくなるわけですが、複数のプロファイルを簡単に切り替える方法が用意されているのでメモしておきます。
設定
ここでは foo という名前のプロファイルを作成してみます。AWS CLIをすでに利用している前提です。
A. aws configureで設定するパターン
--profile
オプションに追加したいプロファイル名を指定します。あとはいつものように必要な情報を入力するだけです。
$ aws configure --profile foo AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxx AWS Secret Access Key [None]: nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn Default region name [None]: ap-northeast-1 Default output format [None]: json
B. ファイルを直接編集するパターン
もしくはホームディレクトリ直下にある「.aws」の下にあるファイルを直接編集してもOKです。
~/.aws/credentials
新しく追加するプロファイルを以下のように追加します。現在利用しているdefaultはそのまま残しておきます。
[default] aws_access_key_id = xxxxxxxxxxxxxxxxxxxx aws_secret_access_key = nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn [foo] aws_access_key_id = yyyyyyyyyyyyyyyyyyyy aws_secret_access_key = nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
~/.aws/config
こちらも同様です。「profile (プロファイル名)」と言った感じでプロファイル名の前に profile は付ける必要があります。
[default] region = ap-northeast-1 output = json [profile foo] region = ap-northeast-1 output = json
利用方法
単純に--profile
オプションで利用したいプロファイル名を指定するだけです。未指定の場合はdefaultのプロファイルが利用されます。
$ aws s3 ls s3://example.com/ --profile foo
その他
デフォルトのプロファイルを指定する
そもそもデフォルトで利用するプロファイルをfooにしてしまいたい場合、環境変数で指定することができます。
$ export AWS_PROFILE=foo
.bashrc や .zshrc などに書いておくと便利ですね。