【基本】AWS CLIで複数のプロファイル(認証情報)を使い分ける


概要

  • 複数の認証情報を使ってAWS CLIを使いわける方法を説明します
  • 追加はaws configure --profile プロファイル名を使うだけ
  • 使用はawsコマンド--profile プロファイル名を使うだけ

前提

  • 既にAWS CLI (EB CLI等)を使って、デプロイなどのAWSへの接続が必要な作業を行ったことがある(=認証情報を使ってことがある)
  • AWSに接続できる認証情報を複数持っている。

手順

追加登録したい認証情報の確認

  • プロファイル名: ABCDEFG (任意の名前。重複しなければなんでもOK)
  • aws_access_key_id: XXXXXXXXXXXXXXXXXXX (AWSから発行されたid)
  • aws_secret_access_key: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY (AWSから発行されたkey)

現状を確認

まず現状のプロファイル登録状況を確認して、これから登録したい認証情報(プロファイル名 ABCDEFG)がまだ登録されていない事を確かめます。
ローカルのAWSの認証情報は~/.aws/credentialsに保存されています。
いままで、1個の認証情報しか使っていなかった場合は、下記の様にdefaultというプロファイル名の認証情報が登録されているはずです。

~/.aws/credentials
[default]
aws_access_key_id = AAAAAAAAAAAAAAAAAAAA
aws_secret_access_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

ABCDEFGというプロファイル名はまだ登録されていない事が確かめられました。

認証情報を追加する

ABCDEFGというプロファイルはまだ登録されていない事を確認できたので、安心して、aws cliを使って以下のように認証情報を追加します。default region nameがわかっているなら入れて下さい。(とりあえずいれなくてもOKです。)

> aws configure --profile ABCDEFG
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Default region name [None]:
Default output format [None]:

変更を確認する

認証情報が追加された事を確認します。追加の時と同様に~/.aws/credentials見てください。ABCDEFGというプロファイル名と対応するidとkeyが追加されていれば成功です!

~/.aws/credentials
[default]
aws_access_key_id = AAAAAAAAAAAAAAAAAAAA
aws_secret_access_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
[ABCDEFG]
aws_access_key_id = XXXXXXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

追加したプロファイルを使う

EB CLIの設定: 名前を指定されたプロファイルを使用するを参照すると--profile プロファイル名の引数を使えば良いことがわかります。たとえば、eb initコマンドであれば下記の通り。

> eb init -i --profile プロファイル名

今回追加したABCEDFGを使いたい場合はこんな感じです。


> eb init -i --profile ABCDEFG

参考