AWS CLI のプロファイル切り替え関連
目次
業務で AWS を使っていると、複数の AWS のアカウント/ユーザーを切り替える事が多いと思います。AWS CLI で使うアカウント/ユーザーを切り替えるには、プロファイルという仕組みを使いますが、今回はそれに関して書きます。
なお、初心者向けの簡単な内容の項目は、見出しに「(初心者向け)」と明記しておきますので、中〜上級者は飛ばして下さい。
初期設定(初心者向け)
AWS CLI を使う際には、 aws configure
コマンドで初期設定します。方法は、以下のページに記載されているので、そちらを参照して下さい。
AWS CLI の設定 – AWS Command Line Interface
AWS 環境が1つしかない場合は、aws configure
コマンドを引数無しで実行して、デフォルトのプロファイルを作成しますが、複数の環境を切り替えたい場合は、aws configure --profile プロファイル名
という形でプロファイルを作成します。これも、上のページに記載されています。
プロファイルの切り替え方(初心者向け)
複数のプロファイルをどうやって切り替えるかですが、具体的には2通りの方法があります。
- 環境変数にプロファイル名を設定する
- コマンドのオプションでプロファイル名を指定する
前者は、 AWS_PROFILE
環境変数などに値を設定して、コマンドを実行します。例えば以下のような形です。
export AWS_PROFILE=foo-system-production
aws s3 ls
後者の例としては以下の通りです。
aws s3 ls --profile foo-system-production
設定すべき環境変数が色々ある
どのような環境変数を設定すると AWS CLI がどう動作するかは、以下のページに記載があります。
AWS CLI を設定する環境変数 – AWS Command Line Interface
ただ、いくつか注意点があるので、以下に記載します。
AWS_DEFAULT_PROFILE は使ってはいけない
AWS_PROFILE
は、以前は AWS_DEFAULT_PROFILE
という名前だったようですが、現在は AWS_DEFAULT_PROFILE
はドキュメントにもありませんし、使わない方が良いでしょう。
EB CLI の場合、AWS_EB_PROFILE
Elastic Beanstalk をコマンドラインから使う場合には、EB CLI という AWS CLI とは別のツールを使う必要があります。そして、使う環境変数も AWS_EB_PROFILE
という違う名前です。
EB CLI の設定 – AWS Elastic Beanstalk
正直、統一して欲しいところです。
環境変数名が違うのはドキュメントに記載されているのですが、私は読み飛ばしていたため、AWS_PROFILE
を設定しているのに効かない!としばらく時間を無駄に費やしてしまいました。
まとめ
AWS のプロファイルを切り替えるには、環境変数を設定するかコマンドラインオプションとして指定する必要があります。環境変数名は、AWS CLI と EB CLI では異なりますので、EB CLI を使う場合には注意して下さい。
コメントを残す