[Sy] AWS CLIの設定ファイルが作成されるパス&複数アカウントを切り替える方法
AWS CLIでaws configureを実行した際に2つのファイルが作成されるパス、作成されるファイルの内容について。また、複数アカウントでAWS CLIを切り替えて使う方法を説明します。
AWS CLIの設定ファイル作成
以下コマンドで2つの設定ファイルが作成されます。
$ aws configure
AWS Access Key ID [None]: <アクセスキーを入力>
AWS Secret Access Key [None]: <シークレットアクセスキーを入力>
Default region name [None]: <デフォルトで使いたいリージョンを入力>
Default output format [None]: <json, text, tableのいずれかを入力>
設定例として、
$ aws configure
AWS Access Key ID [None]: YOURACCESSKEYEXAMPLE
AWS Secret Access Key [None]: +++++YOUR+SECRET+ACCESS+KEY+EXAMPLE+++++
Default region name [None]: us-east-1
Default output format [None]: text
とか入力したとすると、以下のようにファイルが作成されてるはずです。
~/.aws/config
[default]
output = text
region = us-east-1
configにはデフォルトリージョンとコマンド実行結果の出力形式が保存されています。
~/.aws/credentials
[default]
aws_access_key_id = YOURACCESSKEYEXAMPLE
aws_secret_access_key = +++++YOUR+SECRET+ACCESS+KEY+EXAMPLE+++++
credentialsには認証情報(アクセスキーとシークレットアクセスキー)が保存されています。
credentialsについて
元々は一つのファイルにまとめて保存されていたみたいですが、どこかのバージョンからか認証情報をcredentilasファイルとして別に持つようになったっぽいです。(2015年6月時点のAWS CLIのバージョンは1.7.34。)
複数のアカウントでAWS CLIを利用したい場合
AWSのアカウントを本番用と開発用と2つもっている場合など、アクセスキーを複数登録しておきたいところです。
以下のように--profileオプションを付けることで、設定を複数持てます。
$ aws configure --profile production
先ほど各ファイルの1行目にあった[default]という部分が--profileで指定されたものになります。(--profileオプションを省略すると、--profile defaultとして実行されている)
例として、defaultとproductionという2つのプロファイルが設定されていたとして、
$ aws s3 ls
とすると、defaultに設定されている認証情報を使ってS3のバケットリストを表示しようとします。
productionの設定を使ってS3にアクセスするには、
$ aws s3 ls --profile production
とすれば、先ほどaws configure --profile productionで登録したアクセスキーを使って、productionのS3のバケットリストを取得できます。