LoginSignup
145
105

More than 5 years have passed since last update.

aws-cliにて、複数の認証情報を使い分けたい場合の設定方法

Last updated at Posted at 2017-12-14

aws-cliのprofile機能

複数アカウントを利用する際は危険

複数案件をこなしていると、aws-cliにて複数のアカウント情報を取り扱うことが出てくると思います。

その際に、各認証情報正確に区別する必要があり、間違って別の認証情報を使ってAWSサービスを操作してしまうと大問題になってしまします。

cliでの基本的な認証処理

aws-cliを使う場合、ホーム直下の.awsディレクトリにある認証情報は.configファイルと.creadincailsファイルに記載します。

directory
~
└── .aws
    ├── .config
    └── .credentials

上記ファイルは、aws configure コマンドで作成するも良いですし、物理的にファイルを作成してもどちらでも問題ありません。

実行ユーザー~/.aws/内の上記ファイルを利用して認証処理を行います。

記載内容は以下が基本です。

.config
[default]
output = json
region = {リージョン}
.credentials
[default]
aws_access_key_id = {アクセスキー}
aws_secret_access_key = {シークレットキー}

認証情報の複数管理方法

aws-cliにはこのようなケースを考えて、profile機能があります。

profile機能を知らなかった僕

以下のように各ファイルを管理し、

directory
~
└── .aws
    ├── .config.hoge
    ├── .credentials.hoge
    ├── .config.fuga
    └── .credentials.fuga

cpコマンドで都度コピーし

command
cp ~/.aws/.config.hoge ~/.aws/.config
cp ~/.aws/.credentials.hoge ~/.aws/.credentials

作業が終わったらrmコマンドで消していました。。。。(お恥ずかしい・・・orz)

command
rm  ~/.aws/.config
rm  ~/.aws/.credentials

profile機能を知った僕

ディレクトリとしては、各ファイル(config/credentials)をそれぞれ一つずつ管理します。

directory
~
└── .aws
    ├── .config
    └── .credentials

その上で、以下のようにセクションを各認証情報毎に分けて、各情報を記述します。

.config
[profile hoge]
output = json
region = {リージョン}

[profile fuga]
output = json
region = {リージョン}

[default]
output = json
region = {リージョン}

.credentials
[hoge]
aws_access_key_id = {アクセスキー}
aws_secret_access_key = {シークレットキー}

[fuga]
aws_access_key_id = {アクセスキー}
aws_secret_access_key = {シークレットキー}

[default]
aws_access_key_id = {アクセスキー}
aws_secret_access_key = {シークレットキー}

上記のように.configでは[profile {profile}].credentialsでは[{profile}]のようにセクション(profile)指定します。

その上で、コマンド実行時

command
aws ~~~ --profile ${profile}

--profileオプションでセクション(profile)を指定することで、各ファイルに指定したセクション(profile)毎の設定を利用して操作をしてくれます。

しゅごい。

ちなみに、--profileオプションをつけ忘れると、[default]セクション(profile)の設定が利用されるので、複数の認証情報を扱い場合はdefaultセクション指定せず必ず--profileで意図的に指定する運用にした方が良いかと思われます!

145
105
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
145
105