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」「マルチアカウント許可」「許可セット」から変更したい許可セットのリンクをクリックします。
すると、許可セットのセッション期間が表示されるので、右上の編集ボタンを押せば編集できます。最長で 12 時間です。
公式ドキュメントもここにありました。より詳細な情報・手順が知りたい方はどうぞ。
私が作業中に飲んでいるコーヒーや欲しいマンガなどを集めました。開発・執筆の励みになりますのでクリックして頂ければ幸いです。
<Amazon欲しいものリスト>