AWS CLI profileをいい感じに切り替える
背景
AWSアカウントをいくつも使っている場合、~/.aws/config
に profile
を設定すると思う。
profileの切り替えるためには環境変数 AWS_PROFILE
を設定するか、コマンドを打つ度に --profile hoge
を付ければ良いが、アカウントの数が増えて、かつ profile
の切り替えが多い場合、これらの作業をいちいちやるのは面倒。
既存の解決方法としてawspがあるが、npmをグローバルインストールしないといけないし微妙….
手元にフィルタリングツールのpecoが入っているのでこれを使って何とかしてみる。
実装
このワンライナーを適当なaliasにしておく。
export AWS_PROFILE=$(sed -n "s/\]//g; s/\[profile //gp" ~/.aws/config | peco)
~/.aws/config
の中身は大体こんな感じなので [profile hoge]
の行から hoge
だけを抜き出してpecoに渡す。
[profile hoge]
source_profile = XXX
role_arn = YYY
(場合によっては ~/.aws/config
に [default]
があるのでまず閉じ括弧(]
)を取り除いてから [profile
を取り除いている)
あとがき
もっとシンプルに書く方法ありそう。