【AWS備忘録】aws configureの知らなかったこと
おはようございますこぐまです。
久しぶりにAWS備忘録の記事です。
本日は「aws configure」コマンドをプロファイル付きで設定した場合の、気づいたことをまとめます。
結論1
aws configureをした場合に追記されるファイルは2つ。
.aws/credentials
⇒ アクセスキー、シークレットアクセスキーが格納される
.aws/config
⇒ リージョン、出力形式が格納される
結論2
aws configure --profile koguma として設定した場合、それぞれのファイルの
プロファイル名は以下のようになる。
.aws/credentials
プロファイル名・・[koguma]
.aws/config
プロファイル名・・[profile koguma]
メモ解説
aws configure を引数なしで普通に実行した場合、実行ユーザのホームディレクトリ配下に「.aws」というディレクトリと、その配下に「credentials」「config」という2つのファイルが作成(既にあれば追記)されます。
テスト環境で以下のように試してみます。
[ec2-user@ip-10-XX-XX-XXX ~]$ aws configure
AWS Access Key ID [None]: abcde ← 適当にアクセスキーを入れる
AWS Secret Access Key [None]: abcde ← 適当にシークレットを入れる
Default region name [None]: ap-northeast-1 ← 東京リージョンにしてみる
Default output format [None]: json
そうすると、以下のように2つのファイルにそれぞれ書き込まれます。
credentialsには、アクセスキーとシークレットアクセスキーが、
configにはリージョンとフォーマットがそれぞれ記載されています。
また、プロファイル名は【default】となっています。
[ec2-user@ip-10-XX-XX-XXX ~]$ cat .aws/credentials
[default] ← プロファイル名はdefault
aws_access_key_id = abcde ← 先ほど入力したアクセスキー
aws_secret_access_key = abcde ← 先ほど入力したシークレットアクセスキー
[ec2-user@ip-10-XX-XX-XXX ~]$ cat .aws/config
[default] ← プロファイル名はdefault
output = json ← 先ほど入力したフォーマット
region = ap-northeast-1 ← 先ほど入力したリージョン
このように、2つのファイルに分かれています。
次はプロファイル付きで設定をしてみます。例えば、 kogumaというプロファイル名で新しい設定をしたい場合は、
aws configure --profile koguma
と実行します。やってみます。
[ec2-user@ip-10-XX-XX-XXX ~]$ aws configure --profile koguma
AWS Access Key ID [None]: 12345 ← 適当にアクセスキーを入れる
AWS Secret Access Key [None]: 12345 ← 適当にシークレットを入れる
Default region name [None]: ap-northeast-3 ← 大阪リージョンにしてみる
Default output format [None]: text ← textにしてみる
さて、2つのファイルにどのように追記されているか見てみましょう。
[ec2-user@ip-10-XX-XX-XXX ~]$ cat .aws/credentials
[default]
aws_access_key_id = abcde
aws_secret_access_key = abcde
[koguma] ← プロファイル名はkoguma
aws_access_key_id = 12345 ← 先ほど入力したアクセスキー
aws_secret_access_key = 12345 ← 先ほど入力したシークレットアクセスキー
[ec2-user@ip-10-XX-XX-XXX ~]$ cat .aws/config
[default]
output = json
region = ap-northeast-1
[profile koguma] ← プロファイル名はprofile koguma
output = text ← 先ほど入力したフォーマット
region = ap-northeast-3 ← 先ほど入力したリージョン
上記のような感じになります。
興味深い(というか紛らわしい?)のは、プロファイル名付きで登録する場合、configファイルのほうだけプロファイル名が【profile koguma】と
頭にprofileがつくことです。
でもdefaultの場合は、どちらのファイルもdefaultです(profile defaultとはならない)
【背景】
aws configureコマンドを利用しなくても、この2つのファイルは直接編集することができます。プロファイル付きの設定を直接入れる場合は、configファイルのほうは頭にprofileを付けないと、うまく設定が読み込まれません。
以下はプロファイル名「koguma」で直接追記する場合のダメな例です。
ダメな例
[ec2-user@ip-10-XX-XX-XXX ~]$ cat .aws/config
[koguma] ← これだとkogumaプロファイルとして読み込まれない。
output = text 「profile koguma」としなくてはならない
region = ap-northeast-3
一方credentialsファイルのほうは、プロファイル名そのままで大丈夫です。
[ec2-user@ip-10-XX-XX-XXX ~]$ cat .aws/credentials
[koguma] ← こちらはkogumaのままでOK
aws_access_key_id = 12345
aws_secret_access_key = 12345
configファイルにはリージョンが記載されているので、基本的に東京リージョンだけで実施する場合は、あまり影響がないのかもしれません。
私はデフォルト以外のプロファイルを作成し、大阪リージョンを設定していたのですが、プロファイル指定しているにもかかわらずなぜか東京リージョンのほうでコマンドが実施されていたので、なぜかなあと思って調べて気づいた次第です。
読んで下さってありがとうございました!