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

TL;DR — IAM Identity Center (AWS SSO) erişim belirteciniz sona erdi, dolayısıyla profil DynamoDB çağrısı için kimlik bilgisi üretemiyor. Yeniden kimlik doğrulamak için aws sso login --profile <profile> çalıştırın. Hata oturum açtıktan hemen sonra sürerse, kodun kullandığından farklı bir profile/oturuma giriş yapıyorsunuzdur ya da ~/.aws/sso/cache altındaki önbelleğe alınmış belirteç bayattır — onu temizleyin ve yeniden oturum açın.

Ne anlama gelir

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 tabanlı profiller uzun ömürlü anahtarlar saklamaz. aws sso login bir erişim belirtecini yerel olarak önbelleğe alır ve CLI/SDK onu talep üzerine kısa ömürlü rol kimlik bilgileriyle değiştirir. Her iki katman da sona erer: rol kimlik bilgileri dakikalar-saatler sonra ve SSO belirteci kuruluşunuzun yapılandırılmış oturum uzunluğundan sonra. Belirtecin süresi geçtiğinde (ya da yenileme başarısız olduğunda), imzalanmış her çağrı — DynamoDB okumaları ve yazmaları dahil — AWS'ye ulaşmadan önce bu hatayla başarısız olur.

Neden olur

  • SSO oturumu basitçe zaman aşımına uğradı — oturum süresi Identity Center yöneticiniz tarafından ayarlanır; gece boyunca sona erme tipiktir.
  • Farklı bir profile giriş yaptınızaws sso login bir profile karşı çalışırken uygulamanız/aracınız başka birini çözer (AWS_PROFILE uyuşmazlığı ya da farklı sso_session yapılandırmalarını gösteren iki profil).
  • Bayat ya da bozuk belirteç önbelleği~/.aws/sso/cache altındaki JSON dosyaları artık profilin SSO yapılandırmasıyla eşleşmiyor (bölge/başlangıç URL'si değişti), dolayısıyla araçlar oturum açtıktan sonra bile "geçersiz" bir oturum görmeye devam eder.
  • Kimlik bilgilerini kendileri çözen üçüncü taraf araçlar — SSO önbelleğini doğrudan okuyan SDK'lar ve araçlar, geçerlilik konusunda CLI ile aynı fikirde olmayabilir (bazıları belirteçleri gerçek sona ermelerinin biraz öncesinde süresi geçmiş olarak ele alır).

Nasıl düzeltilir

  1. Doğru profili yeniden kimlik doğrulayın:

    aws sso login --profile my-profile
    aws sts get-caller-identity --profile my-profile   # confirm it worked
  2. Kodunuzun o aynı profili kullandığından emin olun — DynamoDB ile konuşan süreç için AWS_PROFILE=my-profile ayarlayın ve yinelenen/eski profil tanımları için ~/.aws/config'i kontrol edin.

  3. Oturum açtıktan sonra hâlâ "süresi geçmiş" mi? Belirteç önbelleğini temizleyin ve yeniden oturum açın — aws sso logout, önbelleğe alınmış kimlik bilgilerini silmenin belgelenen yoludur (~/.aws/sso/cache altında yaşarlar):

    aws sso logout
    rm -rf ~/.aws/sso/cache   # only if a stale cache file still lingers
    aws sso login --profile my-profile
  4. Uzun süre çalışan ya da başsız iş yükleri için SSO profilleri kullanmayın — etkileşimli bir tarayıcı girişi gözetimsiz yenilenemez. Bunun yerine hesaba (örnek/görev/yürütme rolü) ekli bir IAM rolü ya da bir CI OIDC rolü kullanın.

  5. Oturumlar can sıkıcı derecede hızlı mı sona eriyor? Oturum süresi bir Identity Center ayarıdır — yöneticinizden onu uzatmasını isteyin.

Masaüstü araçları aynı çözümü devralır: aws sso login başarılı olduğunda, DynoTable masaüstü uygulaması yenilenmiş SSO profilinizi alır ve tablolarınıza yeniden bağlanır. Oturum canlıyken, DynamoDB Expression Builder, sorgulamak istediğinizi doğru bir isteğe dönüştürmenize yardımcı olur.

İlgili hatalar

References

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalışın

DynoTable, DynamoDB için hızlı bir masaüstü istemcisidir — tablolara göz atın, SQL tarzı sorgular çalıştırın ve item'ları yerel olarak düzenleyin.