Il token di sicurezza incluso nella richiesta è scaduto

TL;DR: le tue credenziali temporanee AWS sono scadute. Ciò si verifica solo con le credenziali STS/SSO/con ruolo presunto (non con chiavi utente IAM di lunga durata). Aggiorna la sessione: esegui nuovamente aws sso login o riassumi il ruolo: assicurati che AWS_SESSION_TOKEN sia quello nuovo e cancella eventuali token obsoleti rimasti nell'ambiente.

Cosa significa

ExpiredTokenException: The security token included in the request is expired

AWS ha rifiutato la tua richiesta perché le credenziali di sicurezza temporanee con cui è stata firmata sono scadute. Le credenziali temporanee di STS (AssumeRole, SSO, GetSessionToken, ruoli dell'istanza EC2/ECS) vivono per una finestra delimitata: le sessioni del ruolo durano da 15 minuti fino all'impostazione della durata massima della sessione del ruolo (tra 1 e 12 ore; 1 ora per impostazione predefinita) e le credenziali "GetSessionToken" per un utente di IAM durano per impostazione predefinita 12 ore e possono estendersi fino a 36. Una volta passata quella finestra, ogni la richiesta firmata con loro fallisce con "ExpiredTokenException". Il nuovo invio con lo stesso token scaduto non riesce di nuovo: vale la pena riprovare solo dopo l'aggiornamento.

Perché succede

  • La sessione STS/SSO è semplicemente scaduta: le credenziali del ruolo assunto scadono alla durata della sessione del ruolo (impostazione predefinita 1 ora, configurabile fino a 12); allo stesso modo scade una sessione SSO.
  • Un AWS_SESSION_TOKEN obsoleto nell'ambiente: un vecchio token di sessione esportato nella shell (o un .env) continua a essere utilizzato dopo la sua scadenza; le variabili env non si aggiornano automaticamente.
  • Un processo di lunga durata che recuperava le credenziali una volta all'avvio e non le aggiornava mai.
  • Credenziali memorizzate nella cache in ~/.aws/cli/cache o in una cache delle credenziali dell'SDK sopravvissute alla scadenza.
  • Disallineamento dell'orologio: un orologio della macchina sufficientemente lontano può far sembrare scadute le credenziali valide.

Come risolverlo

  1. Aggiorna la sessione. Esegui nuovamente "aws sso login" (per SSO) o riassumi il ruolo ("aws sts assume-role …") per ottenere una nuova chiave di accesso, un segreto e un token di sessione.
  2. Aggiorna tutti e tre i valori: ID chiave di accesso, chiave di accesso segreta e token di sessione insieme. Una nuova chiave con un token obsoleto continua a fallire.
  3. Cancella vars ambiente obsoletounset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN, quindi reimposta le nuove credenziali o passa a un profilo che l'SDK può aggiornare autonomamente.
  4. Consenti all'SDK di gestire il ciclo di vita: configura un profilo/provider di credenziali (SSO, assume_role, ruolo dell'istanza) in modo che l'SDK si aggiorni automaticamente prima della scadenza invece di bloccare un token.
  5. Verifica con aws sts get-caller-identity: se l'operazione ha esito positivo, le tue credenziali sono aggiornate.
  6. Controlla l'orologio (NTP) se tutto sembra fresco ma le richieste segnalano ancora la scadenza.

Connettiti da DynoTable

DynoTable risolve il tuo profilo ad ogni connessione — Sessioni SSO e ruolo di assunzione protetto da MFA inclusi, quindi una volta terminata la sessione rinnovato, le tue tabelle tornano senza riavvio. Il punto di stato del chip del profilo diventa rosso con Accedi (SSO) o Riconnetti quando si utilizzano credenziali temporanee scadere; fare clic su di esso o eseguire nuovamente una query per attivare il flusso di aggiornamento in-app. Premere ⌘P per confermare che sei sul profilo che hai aggiornato nel terminale. Il costruttore di query è un rapido controllo di integrità che le letture firmate hanno esito positivo dopo l'aggiornamento.

FAQ

Come posso risolvere il problema "il token di sicurezza incluso nella richiesta è scaduto"? Le tue credenziali temporanee sono scadute. Aggiornali — esegui nuovamente aws sso login o riassumi il ruolo — e aggiorna insieme la chiave di accesso, il segreto e AWS_SESSION_TOKEN. Cancella eventuali token obsoleti rimasti nella shell in modo che quello vecchio non venga riutilizzato e preferisci un provider di credenziali SDK che si aggiorni automaticamente.

Perché lo ottengo solo con credenziali temporanee? ExpiredTokenException si applica alle credenziali STS/SSO/con ruolo presunto con limite di tempo, che hanno una scadenza. Le chiavi di accesso utente IAM di lunga durata non scadono da sole, quindi sollevano errori di credenziali per altri motivi (non validi/disabilitati), non per questo.

Errori correlati

Fonti

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.