表題の通り。複数の案件をこなしていると、AWSのアカウントを複数使用するようになってくる。ManagementConsoleでの作業だけであれば、ログインするアカウントを都度変更すれば良いのだが、awscliを使うとなると毎回設定を変えるのは大変だ。そんな時に使用しているプロファイル機能。一度設定してしまえば、いつも使用しているコマンドにちょっとオプションを追加するだけで、別アカウントで実行可能なので便利だ。
■ 環境
- awscli 1.7.18
- Mac OSX (10.9.5)
■ 設定
awscliをインストール後、下記コマンドで設定を行ったであろう。
$ aws configure
ここで行った設定は下記ファイルに記載されているはずだ。
/Users/[user]/.aws/config
このファイルに”default“の項目に書き込まれているであろう。
$ cat /Users/withsin/.aws/config
[default]
output = json
region = ap-northeast-1
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
■ profile
前述のファイルに同様の別アカウント設定を追加する。追加する”profile“名称はわかりやすく、かつキーボードで打ちやすいものがよいだろう。自身の場合は、下記の順番で名称を決めている。
- 会社の略称
- プロジェクト名称(略称)
ちなみに”default“には普段使用している自身のアカウントを設定している。というわけで追加したところ下記のようになっている。
$ cat /Users/withsin/.aws/config
[default]
output = json
region = ap-northeast-1
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[profile aaa]
output = json
region = ap-northeast-1
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[profile bbb]
output = json
region = ap-northeast-1
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
実際に使用する時には、上記の”profile“で設定した名称をオプションで追加する。
$ aws s3 ls
2013-07-08 22:48:08 withsin
$
$ aws s3 ls --profile aaa
2012-08-12 05:35:54 projectA
2014-12-16 23:24:53 projectB
2013-12-24 22:19:25 projectC
2012-08-12 07:56:03 projectD
:
$
以上。