The SSO session associated with this profile has expired or is otherwise invalid
TL;DR — Seu token de acesso do IAM Identity Center (AWS SSO) expirou, então o profile não consegue cunhar credenciais para a chamada do DynamoDB. Rode aws sso login --profile <profile> para reautenticar. Se o erro persiste logo após o login, você está entrando em um profile/sessão diferente do que o código está usando, ou o token cacheado sob ~/.aws/sso/cache está obsoleto — limpe-o e entre novamente.
O que significa
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.Profiles baseados em SSO não armazenam chaves de longa duração. O aws sso login cacheia um token de acesso localmente, e a CLI/SDK o troca por credenciais de role de curta duração sob demanda. Ambas as camadas expiram: as credenciais de role após minutos-a-horas, e o token SSO após a duração de sessão configurada da sua organização. Quando o token está expirado (ou o refresh falha), toda chamada assinada — incluindo leituras e escritas do DynamoDB — falha com este erro antes de alcançar a AWS.
Por que acontece
- A sessão SSO simplesmente expirou — a duração de sessão é definida pelo seu administrador do Identity Center; expiração da noite para o dia é típica.
- Você entrou em um profile diferente —
aws sso loginrodou contra um profile enquanto seu app/ferramenta resolve outro (incompatibilidade deAWS_PROFILE, ou dois profiles apontando para configs desso_sessiondiferentes). - Cache de token obsoleto ou corrompido — os arquivos JSON sob
~/.aws/sso/cachenão correspondem mais à configuração SSO do profile (region/start URL mudou), então as ferramentas continuam vendo uma sessão "inválida" mesmo após o login. - Ferramentas de terceiros resolvendo credenciais elas mesmas — SDKs e ferramentas que leem o cache SSO diretamente podem discordar da CLI sobre a validade (algumas tratam tokens como expirados um pouco antes de sua expiração real).
Como corrigir
Reautentique o profile certo:
aws sso login --profile my-profile aws sts get-caller-identity --profile my-profile # confirm it workedCertifique-se de que seu código usa esse mesmo profile — defina
AWS_PROFILE=my-profilepara o processo que conversa com o DynamoDB, e verifique~/.aws/configpara definições de profile duplicadas/legadas.Ainda "expirado" após o login? Limpe o cache de token e entre do zero —
aws sso logouté a forma documentada de excluir as credenciais cacheadas (elas vivem sob~/.aws/sso/cache):aws sso logout rm -rf ~/.aws/sso/cache # only if a stale cache file still lingers aws sso login --profile my-profilePara cargas de longa duração ou headless, não use profiles SSO — um login interativo pelo browser não consegue atualizar sem supervisão. Use uma role IAM anexada à computação (role de instância/task/execução) ou uma role OIDC de CI em vez disso.
Sessões expirando irritantemente rápido? A duração de sessão é uma configuração do Identity Center — peça ao seu administrador para estendê-la.
Ferramentas desktop herdam a mesma correção: uma vez que aws sso login é bem-sucedido, o app desktop DynoTable capta seu profile SSO atualizado e reconecta às suas tabelas. Enquanto a sessão está ativa, o DynamoDB Expression Builder ajuda você a transformar o que quer consultar em uma requisição correta.
Erros relacionados
- The security token included in the request is expired — credenciais de role expiradas em vez da sessão SSO.
- The security token included in the request is invalid
- Unable to locate credentials (boto3)
Referências
- 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
Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.