O token de segurança incluído na solicitação expirou

TL;DR — Suas credenciais temporárias do AWS expiraram. Isso acontece apenas com credenciais STS/SSO/assumed-role (não com chaves de usuário IAM de longa duração). Atualize a sessão – execute novamente aws sso login ou assuma novamente a função – certifique-se de que AWS_SESSION_TOKEN seja o novo e limpe qualquer token obsoleto deixado no ambiente.

O que significa

ExpiredTokenException: The security token included in the request is expired

AWS rejeitou sua solicitação porque as credenciais de segurança temporárias com as quais foi assinado expiraram. Credenciais temporárias de STS (funções de instância AssumeRole, SSO, GetSessionToken, EC2/ECS) ativas para uma janela limitada - as sessões de função são executadas de 15 minutos até a configuração de duração máxima da sessão da função (entre 1 e 12 horas; 1 hora por padrão), e as credenciais GetSessionToken para um usuário IAM são padronizadas para 12 horas e podem se estender até 36. Depois que essa janela passa, todas as solicitações assinadas com eles falham com ExpiredTokenException. O reenvio com o mesmo token expirado falha novamente – só vale a pena tentar novamente após a atualização.

Por que isso acontece

  • A sessão STS/SSO simplesmente expirou — as credenciais da função assumida expiram na duração da sessão da função (padrão 1 hora, configurável até 12); uma sessão SSO também expira.
  • Um AWS_SESSION_TOKEN obsoleto no ambiente — um token de sessão antigo exportado para seu shell (ou um .env) continua sendo usado após expirar; env vars não são atualizados automaticamente.
  • Um processo de longa duração que buscava credenciais uma vez na inicialização e nunca as atualizava.
  • Credenciais armazenadas em cache no ~/.aws/cli/cache ou em um cache de credenciais do SDK que tenha expirado.
  • Inclinação do relógio — um relógio de máquina suficientemente distante pode fazer com que credenciais válidas pareçam expiradas.

Como corrigir

  1. Atualize a sessão. Execute novamente o aws sso login (para SSO) ou assuma novamente a função (aws sts assume-role …) para obter uma nova chave de acesso, segredo e token de sessão.
  2. Atualize todos os três valores – ID da chave de acesso, chave de acesso secreta, e o token de sessão juntos. Uma nova chave com um token obsoleto ainda falha.
  3. Limpe env vars obsoletosunset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN e, em seguida, reencaminhe as novas credenciais ou mude para um perfil que o SDK possa atualizar por conta própria.
  4. Deixe o SDK gerenciar o ciclo de vida — configure um provedor de perfil/credencial (SSO, assume_role, função de instância) para que o SDK seja atualizado automaticamente antes de expirar, em vez de fixar um token.
  5. Verifique com aws sts get-caller-identity — se for bem-sucedido, suas credenciais estão atualizadas.
  6. Verifique o relógio (NTP) se tudo parece atualizado, mas as solicitações ainda informam a expiração.

Conecte pelo DynoTable

DynoTable resolve seu perfil de novo em todas as conexões — Sessões SSO e função de assunção protegida por MFA incluídas - assim que a sessão for renovadas, suas tabelas voltam sem reiniciar. O ponto de status do chip de perfil fica vermelho com Entrar (SSO) ou Reconectar quando credenciais temporárias expirar; clique nele ou execute novamente uma consulta para acionar o fluxo de atualização no aplicativo. Pressium ⌘P para confirmar que você está no perfil que atualizou no terminal. O construtor de consultas é uma verificação rápida de integridade que leituras assinadas são bem-sucedidas após a atualização.

FAQ

Como faço para corrigir "o token de segurança incluído na solicitação expirou"? Suas credenciais temporárias expiraram. Atualize-os - execute novamente o login do aws sso ou assuma novamente a função - e atualize a chave de acesso, o segredo e AWS_SESSION_TOKEN juntos. Limpe qualquer token obsoleto deixado em seu shell para que o antigo não seja reutilizado e prefira um provedor de credenciais SDK que seja atualizado automaticamente.

Por que só consigo isso com credenciais temporárias? ExpiredTokenException se aplica a credenciais STS/SSO/assumed-role com limite de tempo, que possuem uma expiração. As chaves de acesso do usuário IAM de longa duração não expiram por conta própria, portanto, geram erros de credencial por outros motivos (/disabled inválido), não este.

Erros relacionados

Fontes

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.