[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のバケットリストを取得できます。