1. aws sso login --profile my-profile
   ↓
2. ブラウザ認証
   ↓
3. SSOトークン取得・保存
   ↓
4. 一時認証情報取得・保存

流れ

認証情報の有効期限切れとなった場合

こんな感じでtokenが存在しない、とエラーになる

$ aws sts get-caller-identity --profile test
 
Error loading SSO Token: Token for test does not exist

再度、sso ログイン

$ date
2025年 11月 9日 日曜日 13時08分34秒 JST
$ aws sso login --profile test

すると、~/.aws/sso/cache/xxxxxx.jsonといったファイルが作成される。

このファイルにはアクセストークン(accessToken)や有効期限(expiresAt)といった情報が含まれている。

{
    "startUrl": "https://d-xxxxxxx.awsapps.com/start",
    "region": "ap-northeast-1",
    "accessToken": "...",
    "expiresAt": "2025-11-09T05:01:39Z",
    "clientId": "...",
    "clientSecret": "...",
    "registrationExpiresAt": "2026-02-05T02:25:28Z",
    "refreshToken": "..."
}

上記の例の場合、有効期限(expiresAt)は、sso login後(トークンがキャッシュされた時点)からみて 1時間後に設定されている。

これは、ssoログインした IAM Identity Center ユーザーに設定した許可セットのセッション期間となる。

この場合、使用する許可セットのセッション期間が1時間だったので、sso login した13:08 から1時間後の 14:08 にトークンが有効期限切れとなる。

セッション期間の設定

ssoログインで取得した認証情報は一時的なものなので、いずれアクセスは期限切れとなる

期限切れとなった場合、再度 aws sso login が必要

sso ログインにおけるセッション期間はIAM Identity Center が作成した IAM ロールセッションの有効期限、つまりアクセス許可セットで設定された期間の間有効となる。(最小1h, 最大24h)

IAM ロールセッションはユーザーインタラクティブセッションとは独立して動作する点に注意

関連: IAM Identity Center における認証セッション

許可セットのセッション期間設定方法

  • IdCコンソール > 許可セット > 前半設定 > セッション期間 から編集