6
3

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.

BeeXAdvent Calendar 2019

Day 14

AWS CLI の認証情報 設定まとめ(プロファイル追加、ロール使用)

Last updated at Posted at 2019-12-14

AWS CLI の認証情報の設定について、いつも調べつつ利用していたので、自分用にまとめました。

認証情報の設定

以下のように aws configure コマンドでセットアップした場合、default という名前のプロファイルに保存される。

$ aws configure
AWS Access Key ID [None]: ********************
AWS Secret Access Key [None]: ********************
Default region name [None]: ap-northeast-1
Default output format [None]: text

プロファイル設定ファイルは ~/.aws/credentials.(機密性の高い認証情報)と ~/.aws/config(機密性の低い設定)に保存される。

$ cat ~/.aws/credentials
[default]
aws_access_key_id=********************
aws_secret_access_key=********************
$ cat ~/.aws/config
[default]
region=ap-northeast-1
output=text

default プロファイルは、プロファイルを指定せず AWS CLI コマンドを実行する場合に使用される。

# default プロファイルの認証情報を使用
$ aws s3 ls

プロファイルの追加

default と異なるアカウントとリージョンの認証情報を追加設定することができる。

$ aws configure --profile user1
AWS Access Key ID [None]: ********************
AWS Secret Access Key [None]: ********************
Default region name [None]: eu-west-1
Default output format [None]: text

プロファイル設定には以下のように追加される。

$ cat ~/.aws/credentials
[default]
aws_access_key_id=********************
aws_secret_access_key=********************

[user1]
aws_access_key_id=********************
aws_secret_access_key=********************
$ cat ~/.aws/config
[default]
region=ap-northeast-1
output=text

[profile user1]
region=eu-west-1
output=text

追加プロファイルは、コマンドに --profile オプションを追加して認証情報を使用できる。

# 追加プロファイルの認証情報を使用
$ aws s3 ls --profile user1

毎度 --profile オプションで指定するのが面倒な場合は、 AWS_PROFILE 環境変数を設定する。

$ export AWS_PROFILE=user1

# オプション指定無しで追加プロファイルの認証情報を使用
$ aws s3 ls

IAM ロールを使用

CLI でスイッチロールをする場合は、プロファイルにパラメータを追加する。
role_arn に IAM ロールの Amazon リソースネーム (ARN) を指定し、
source_profile に指定したロールを引き受ける認証情報を持つプロファイルを指定する。(例では iam-user1)

プロファイル設定には以下のように設定する。

$ cat ~/.aws/credentials
[iam-user1]
aws_access_key_id = ********************
aws_secret_access_key = ********************
$ cat ~/.aws/config
[profile iam-user1]
output = json
region = eu-west-1

[profile iam-role1]
role_arn = arn:aws:iam::<ACCOUNT_ID>:role/<IAM_ROLE>
source_profile = iam-user1
output = json
region = eu-west-1

スイッチロールする場合は、追加プロファイルと同じく --profile オプションで指定する。

# スイッチロール用の認証情報を使用
$ aws s3 ls --profile iam-role1

最後に

AWS CLIv2 のプレビューバージョンが来たことでドキュメントが結構更新されていて、改めて読み直していると解説が昔より優しくなっている気がしました。
それか昔の自分が理解できない箇所が多かっただけなのか…。
認証情報の利用が煩雑にならないように自戒を込めてのまとめでした。

  • AWS ドキュメントリンク

[AWS Command Line Interface » ユーザーガイド » AWS CLI の設定]
(https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration)

[AWS Command Line Interface » ユーザーガイド » 名前付きプロファイル]
(https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html)

[AWS Command Line Interface » ユーザーガイド » 環境変数]
(https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-envvars.html)

[AWS Command Line Interface » ユーザーガイド » AWS CLI での IAM ロールの使用]
(https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-role.html)

6
3
0

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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?