🦔

AWS AmplifyでSSOアカウントを利用する

2021/02/15に公開

AWS AmplifyでAWS SSOアカウントを利用するやり方を紹介します

事前準備

  • AWS OrganisationsおよびSSOを有効化し、AdministratorAccess権限でアクセスできるようにしておく
  • amplify/cliのインストール
    npm install -g @aws-amplify/cli

aws-sso-utilをインストールする

https://github.com/benkehoe/aws-sso-util#adding-aws-sso-support-to-aws-sdks

$ brew install pipx
$ pipx ensurepath
$ pipx install aws-sso-util

aws-sso-profileの設定

# aws configにssoアカウントを設定する(事前にSSOアカウントがconfigに一つはないとエラーになる?)
$ aws configure sso
ssoアカウントがconfigになくて発生したエラー
# sso-testという名称でプロファイルを設定する
$ aws-sso-util configure profile sso-test
SSO start URL [https://d-xxxxxxxxx.awsapps.com/start]:
SSO Region [ap-northeast-1]:
The only AWS account available to you is: xxxxxxxxxxx
Using the account ID xxxxxxxxxxxx
The only role available to you is: AdministratorAccess
Using the role name "AdministratorAccess"
CLI default client Region [None]: ap-northeast-1
CLI default output format [None]: json

To use this profile, specify the profile name using --profile, as shown:

aws s3 ls --profile sso-test

# configに設定されていることを確認(profileが作成され、credential_processが設定されている)
$ cat ~/.aws/config
[profile sso-test]
sso_start_url = https://d-xxxxxxxxxx.awsapps.com/start
sso_region = ap-northeast-1
credential_process = aws-sso-util credential-process --profile sso-test
sso_account_id = xxxxxxxxxxxxx
sso_role_name = AdministratorAccess
region = ap-northeast-1
output = json

Amplifyで利用する

# aws ssoで作成したプロファイルを指定してログインする
$ aws sso login --profile sso-test
# AWS_PROFILE環境変数に作成したプロファイルを設定する
$ AWS_PROFILE=sso-test
# Amplifyコマンドを実行
$ amplify -v
Initializing new Amplify CLI version...
Done initializing new version.
Scanning for plugins...
Plugin scan successful
4.43.0
$ amplify init

参考

Discussion