The SSO session associated with this profile has expired or is otherwise invalid

TL;DR — IAM Identity Center(AWS SSO)のアクセストークンが失効したため、プロファイルが DynamoDB 呼び出しの認証情報を発行できません。aws sso login --profile <profile> を実行して再認証してください。ログイン直後にエラーが続く場合は、コードが使っているのとは別のプロファイル/セッションにログインしているか、~/.aws/sso/cache 配下のキャッシュされたトークンが古いです。それをクリアして再度ログインしてください。

意味

UnauthorizedSSOTokenError: 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 ベースのプロファイルは長寿命のキーを保存しません。aws sso login はアクセストークンをローカルにキャッシュし、CLI/SDK はそれを必要に応じて短命のロール認証情報と交換します。両方のレイヤーが期限切れになります: ロール認証情報は数分から数時間後、SSO トークンは組織が設定したセッション長の後です。トークンが期限切れ(またはリフレッシュが失敗)のとき、DynamoDB の読み取りと書き込みを含むすべての署名済み呼び出しは、AWS に到達する前にこのエラーで失敗します。

発生する理由

  • SSO セッションが単にタイムアウトした — セッション期間は Identity Center の管理者が設定します。一晩での期限切れが典型的です。
  • 別のプロファイルにログインしたaws sso login が1つのプロファイルに対して実行された一方、アプリ/ツールが別のものを解決する(AWS_PROFILE の不一致、または異なる sso_session 設定を指す2つのプロファイル)。
  • 古いまたは破損したトークンキャッシュ~/.aws/sso/cache 配下の JSON ファイルがプロファイルの SSO 設定(リージョン/start URL が変わった)ともう一致しないため、ツールはログイン後も「無効な」セッションを見続ける。
  • 認証情報を自身で解決するサードパーティツール — SSO キャッシュを直接読む SDK やツールは、有効性について CLI と食い違うことがある(一部はトークンを実際の有効期限より少し早く期限切れとして扱う)。

修正方法

  1. 正しいプロファイルを再認証します:

    aws sso login --profile my-profile
    aws sts get-caller-identity --profile my-profile   # confirm it worked
  2. コードが同じプロファイルを使うことを確認します — DynamoDB と通信するプロセスに AWS_PROFILE=my-profile を設定し、~/.aws/config に重複/レガシーのプロファイル定義がないか確認します。

  3. ログイン後もまだ「期限切れ」ですか?トークンキャッシュをクリアし、新規にログインします — aws sso logout が、キャッシュされた認証情報を削除するドキュメント化された方法です(それらは ~/.aws/sso/cache 配下にあります):

    aws sso logout
    rm -rf ~/.aws/sso/cache   # only if a stale cache file still lingers
    aws sso login --profile my-profile
  4. 長時間実行またはヘッドレスのワークロードでは、SSO プロファイルを使わないでください — 対話的なブラウザログインは無人でリフレッシュできません。代わりにコンピュートにアタッチされた IAM ロール(インスタンス/タスク/実行ロール)または CI の OIDC ロールを使います。

  5. セッションが煩わしいほど速く期限切れになりますか? セッション期間は Identity Center の設定です。管理者に延長を依頼してください。

デスクトップツールは同じ修正を継承します: aws sso login が成功すると、DynoTable はリフレッシュされた SSO プロファイルを拾ってテーブルに再接続します — 認証情報を毎回 ~/.aws から新しく解決するため、何も入力し直さずに新しいセッションが反映されます。

DynoTable でチェック

DynoTable は CLI と同じ IAM Identity Center のデバイスフローを、プロセス内で実行します — 別途 aws バイナリは要りません(AWS アカウントに接続する)。 aws sso login が成功すれば、アプリは次の接続時に ~/.aws/sso/cache から更新済みの トークンを読みます。SSO のセッションが切れると、プロファイルチップに赤いドットと Sign in が表示されます。それをクリックすれば、DynoTable を再起動せずにブラウザの フローを開き直せます。ターミナルでログインしたのと同じプロファイル名かどうかは、 ⌘P で確認してください。更新後はテーブルを開いて DynamoDB の呼び出しが成功する ことを確かめましょう — 認証情報が生き返れば、ビジュアルなクエリビルダーが フィルターピルから Query と Scan のどちらかを導き出します。

関連するエラー

出典

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。