久しぶりにAWS CLIをインストールしました。バージョン2になっているんですね。
一度設定すると中々触れる機会がなくて忘れてしまうので、自分用設定方法メモです。
基本的な仕組み
~/.aws/config
でプロファイルを設定する~/.aws/credentials
でユーザーのキーとシークレットを設定する- プロファイル名とユーザー名を同じにすることにより、プロファイルとユーザーを紐付ける
- CLIの実行はプロファイルで指定された設定で行われる
設定
~/.aws/config
[default] region = ap-northeast-1 output = json [profile user1] region = ap-northeast-1 output = json
※プロファイル名は「profile user1」ではなく「user1」
~/.aws/credentials
[default] aws_access_key_id=xxxxxxxxxx aws_secret_access_key=xxxxxxxxxx [user1] aws_access_key_id=xxxxxxxxxx aws_secret_access_key=xxxxxxxxxx
実行
オプションでプロファイルを指定して実行
省略するとdefault
プロファイルが使用される
aws --profile <プロファイル名> <コマンド>
環境変数でプロファイルを設定すると、コマンド実行時にそのプロファイルが使われる
プロファイルをdefault
にしたい時は、変数の値をdefault
にする。
AWS_PROFILE=<プロファイル名>
ロールで実行する
- ロールのプロファイルを作成する
- ロールのプロファイルからユーザーとなるベースのプロファイルを指定する
~/.aws/config
[profile <ロールのプロファイル名>] role_arn = arn:aws:iam::xxxxxxxxxx source_profile = <ベースとなるプロファイル名>
その他
出力はページングされるので、スクリプトから使う時は下記のいづれかの方法でOFFにしておく
~/.aws/credentials
[default] cli_pager=
環境変数
AWS_PAGER=""