🐰
AWS Identity Center での aws cli の利用手順
初回設定
# aws configure sso
- ウィザードに沿って、どれか1つのプロファイルと、セッションを作成
- SSO start URL
https://x-xxxxxxxx.awsapps.com/start
- SSO region
ap-northeast-1
- SSO registration scopes (ディフォルト値のままでOK)
sso:account:access
- SSO start URL
- ブラウザが立ち上がり、
AWS access portal
表示されるので承認をする - セッション名の入力が求められる、以後、他のAWSアカウント接続にも利用するので、何かしら名前をつける事を推奨
- アクセス可能なAWSアカウント一覧が表示されるので、どれか一つを選択し設定を進める
# aws configure sso
SSO session name (Recommended): sso
There are 4 AWS accounts available to you.
> 123456789
234567891
345678912
456789123
- 設定完了後の.aws/config
[sso-session sso]
sso_start_url = https://x-xxxxxxxx.awsapps.com/start
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access
[profile dev-Admin]
sso_session = mi6-sso
sso_account_id = 123456789
sso_role_name = AdministratorAccess
region = ap-northeast-1
2アカウント目以降の設定
手法:1
# aws configure sso
- 事前にセッションを作成していた場合は、 設定済みのセッション名を入力する事でアクセス可能なアカウント一覧が表示される
# aws configure sso
SSO session name (Recommended): sso
^^^
There are 4 AWS accounts available to you.
> 123456789
234567891
345678912
456789123
- ウィザードから選択の上でプロファイルの追加
手法:2
-
.aws/config
内にて、[profile XXXXX]
を複製する
[sso-session sso]
sso_start_url = https://x-xxxxxxxx.awsapps.com/start
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access
[profile dev-Admin]
sso_session = mi6-sso
sso_account_id = 123456789
sso_role_name = AdministratorAccess
region = ap-northeast-1
[profile stg-Admin]
^^^^^^^^^^ #プロファイル名を変更
sso_session = sso
^^^ #前記で作成済みのセッション名にする
sso_account_id = 234567891
^^^^^^^^^ #接続先のアカウント番号を指定
sso_role_name = AdministratorAccess
^^^^^^^^^^^^^^^^^^ #接続先の権限を指定(アカウント上のロールではないので注意、ポータルで表示される権限)
region = ap-northeast-1
aws cli の利用
- 下記コマンドでログインする
- 例(セッション名が
sso
の場合) aws sso login --sso-session sso
- 例(セッション名が
-
どれかのAWSアカウントに対してログインを実施する- 下記でもできるが、上記の方が明示的ていいかなと😊
- 例
aws --profile dev-Admin sso login
- ブラウザが立ち上がり、
AWS access portal
が表示されるので承認をする - 以後、セッションの有効期間中は事前に設定されたアカウントに対してログインが可能
- 都度
sso login
は実行不要
- 都度
- Identity Center経由でログイン可能なアカウントへのセッションが有効化されるので、以後は通常通り利用可能
Terraformの利用
- 下記コマンドでログインする
- 例(セッション名が
sso
の場合) aws sso login --sso-session sso
- 例(セッション名が
- Terraform コマンドの実行
-
AWS_PROFILE
変数にプロファイルを指定後、terraformコマンドを実行する - 例
AWS_PROFILE=dev-Admin terraform plan
-
Discussion