小ネタ:
AWS CLIで複数のAWSアカウントをプロファイルで切り替える

AWS CLIはWindowsやLinuxでコマンドラインからAWSを操作できるため、AWSコンソールを開く手間を省くことができます。

ただし、コマンドを覚えていないとコマンドリファレンスで調べる等でコンソールの操作より時間がかかってしまうため、AWS CLIは頻度の高い操作をバッチなどで用意しておくといった使用方法がお勧めです

今回はそんなAWS CLIでAWSアカウントを複数使用する方法を紹介します。
1アカウントで使用するだけであれば「aws configure」コマンドでデフォルトのAWS認証情報を設定しておけばよいですが、複数のアカウントを使い分けるためにはプロファイルを複数用意し、コマンド実行時に使い分けることになります

AWS CLIのプロファイル使用方法(windows/linux共通)

プロファイルの設定

以下のコマンドを実行し、プロファイルを設定します。

$ aws configure --profile 【プロファイル名】

コマンド実行例は以下の通りです。
アクセスキー」、「シークレットアクセスキー」、「デフォルトリージョン」、「出力フォーマット」が順番で聞かれるので、それぞれ入力します。デフォルトリージョンと出力フォーマットは任意設定項目です。

aws configure –profileコマンドの実行例
(クリックすると画像が拡大されます。)

設定しているプロファイルの確認

設定したプロファイルの一覧は以下のコマンドで確認できます。

$ aws configure list-profiles

コマンドの実行例は以下のようになります。

aws configure list-profilesコマンドの実行例
(クリックすると画像が拡大されます。)

プロファイルを使用したコマンドの実行例

プロファイルを使用したAWSコマンドは以下のように「–profile」オプションをつけて実行します。

$ aws --profile 【プロファイル名】 【AWSコマンド】

コマンドの実行例は以下のようになります。

プロファイルを使用したawsコマンドの実行例
(クリックすると画像が拡大されます。)

プロファイル設定に関する参考情報

プロファイルの設定ファイル

プロファイルの設定情報は以下のファイルに記載されています。

windowsの場合

  • %USERPROFILE%.aws\credentials
  • %USERPROFILE%.aws\config

Linuxの場合

  • ~/.aws/credentials
  • ~/.aws/config

credentialsファイルの記載内容

アクセスキーおよびシークレットアクセスキー情報が記載されています。

[default]
aws_access_key_id=XXXXX
aws_secret_access_key=XXXXXXXX

[user1]
aws_access_key_id=XXXXX
aws_secret_access_key=XXXXXXXX

configファイルの記載内容

デフォルトリージョンおよび出力フォーマット情報が記載されています。
これらを設定していない場合は、[profile ユーザー名]のみが記載されます。

[default]
region=us-west-2
output=json

[profile user1]

プロファイルの指定方法(環境変数)

コマンドを実行する際は毎回「–profile」で指定するのがお勧めです。間違えて別のAWSアカウントでコマンド実行すると障害等につながる恐れがあるためです。

ただし、バッチ等で毎回記載するのではなく、一度設定したプロファイルでawsコマンドを使用したい場合は以下のように環境変数として設定するのがお勧めです。

環境変数への設定(windows)

$ setx AWS_PROFILE 【プロファイル名】

環境変数への設定(linux)

$ export AWS_PROFILE=【プロファイル名】

以上です。一つの端末から複数のAWSアカウントにコマンドラインからアクセスできるようになりました。

Spread the love