Rock'n'Hack ブログ

それなりハッカーを目指して、もろもろのメモ。bloggerから引っ越しました。

fish function: AWSのプロファイルを切り換える

AWSのクレデンシャルをパッと切り換えたい時がある。
色々やり方あると思うけど、プロファイルを切り換えるfunctionを使うのがシックリ来た。

クレデンシャル情報は下記。

  • ~/.aws/config
[profile default]
output = json
region = ap-northeast-1
[profile private]
output = json
region = ap-northeast-1
[profile work]
output = json
region = us-east-2
  • ~/.aws/credentials
[default]
aws_access_key_id = XXXX
aws_secret_access_key = YYYY
[private]
aws_access_key_id = XXXX
aws_secret_access_key = YYYY
[work]
aws_access_key_id = XXXX
aws_secret_access_key = YYYY

function は下記。環境変数に設定してあげてるだけ。
AWS_DEFAULT_PROFILEAWS_PROFILE の両方にセットしているのは packer などそちらを参照するものがあるため。

  • ~/.config/fish/functions/aws-key.fish
function aws-key
  set -gx AWS_DEFAULT_PROFILE $argv
  set -gx AWS_PROFILE $argv
  echo "AWS_PROFILE=$AWS_PROFILE"
end

使う時はこんな感じ。

> aws-key private
AWS_PROFILE=private

> env | grep AWS
AWS_DEFAULT_PROFILE=private
AWS_PROFILE=private

なかなか便利。
aws sts assume-role を使うように function を拡張するのもありかなと。