🐰

AWS Identity Center での aws cli の利用手順

2024/07/30に公開

初回設定

# 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
  • ブラウザが立ち上がり、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