AWS CLIでIAM Identity CenterのSSO認証を使って指定プロファイルにアクセスする

AWS IAM Identity Center (アイデンティティセンター、旧 AWS SSO)を使っている場合、AWS CLI でアクセスする際に SSO 認証を利用できます。セッションの有効期限が短めではありますが、その分セキュアですし、トークンなどの取り扱いについてあまり考える必要がなくなります。

目次

AWS Config のプロファイルに SSO の設定を追記する

$ vi ~/.aws/config

以下のように sso_*を追加します。sso_start_url は SSO のログイン URL です。sso_role_name には、叩くアカウントが利用できるロールを指定しましょう。

[profile hoge-dev]
region = ap-northeast-1
output = json
sso_start_url = https://d-hoge.awsapps.com/start
sso_region = ap-northeast-1
sso_account_id = hoge
sso_role_name = AWSPowerUserAccess

AWS CLI を叩いてみると、以下のエラーが表示されます。セッションが切れているのでリフレッシュしてねとのことです。

$ aws s3 ls --profile hoge-dev

The SSO session associated with this profile has expired or is otherwise invalid. To refresh this SSO session run aws sso login with the corresponding profile.

SSO 認証する

以下のコマンドを叩くとブラウザが開くので SSO ログインします。これで AWS CLI が叩けるようになりました。試しに S3 を叩いてみます。

aws sso login --profile hoge-dev
aws s3 ls --profile hoge-dev

SSO 認証の有効期限を変更する

SSO 認証には有効期限があり、デフォルトでは 1 時間でセッションが切れます。1 時間では短すぎる場合、 12 時間まで延ばすことができます。

「IAM Identity Center」「マルチアカウント許可」「許可セット」から変更したい許可セットのリンクをクリックします。

IAM Identity Center許可セット一覧画面

すると、許可セットのセッション期間が表示されるので、右上の編集ボタンを押せば編集できます。最長で 12 時間です。

IAM Identity Center許可セット一覧画面

公式ドキュメントもここにありました。より詳細な情報・手順が知りたい方はどうぞ。






Amazon欲しいものリスト

私が作業中に飲んでいるコーヒーや欲しいマンガなどを集めました。開発・執筆の励みになりますのでクリックして頂ければ幸いです。

<Amazon欲しいものリスト>