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ız —
aws sso loginbir profile karşı çalışırken uygulamanız/aracınız başka birini çözer (AWS_PROFILEuyuşmazlığı ya da farklısso_sessionyapılandırmalarını gösteren iki profil). - Bayat ya da bozuk belirteç önbelleği —
~/.aws/sso/cachealtı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
Doğru profili yeniden kimlik doğrulayın:
aws sso login --profile my-profile aws sts get-caller-identity --profile my-profile # confirm it workedKodunuzun o aynı profili kullandığından emin olun — DynamoDB ile konuşan süreç için
AWS_PROFILE=my-profileayarlayın ve yinelenen/eski profil tanımları için~/.aws/config'i kontrol edin.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/cachealtında yaşarlar):aws sso logout rm -rf ~/.aws/sso/cache # only if a stale cache file still lingers aws sso login --profile my-profileUzun 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.
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
- The security token included in the request is expired — SSO oturumu yerine süresi geçmiş rol kimlik bilgileri.
- The security token included in the request is invalid
- Unable to locate credentials (boto3)
References
- Configuring IAM Identity Center authentication with the AWS CLI — AWS CLI User Guide
- sso login — AWS CLI Command Reference
- Set session duration for AWS accounts — IAM Identity Center User Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.