148
108

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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で意図的に指定する__運用にした方が良いかと思われます!

148
108
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
148
108

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?