InvalidSignatureException: firma scaduta
TL;DR — Una richiesta AWS firmata deve raggiungere il servizio entro ~5 minuti dal timestamp inserito nella sua firma. Questo errore significa che l'orologio della tua macchina è troppo lontano dall'ora del server AWS (disallineamento dell'orologio), quindi la firma è "scaduta" o "non è ancora aggiornata". Correggi l'orologio del client: attiva la sincronizzazione dell'ora NTP.
Cosa significa
InvalidSignatureException: Signature expired: 20260712T101500Z is now earlier
than 20260712T101700Z (20260712T102200Z - 5 min.)Signature Version 4 firma ciascuna richiesta insieme a un timestamp. AWS convalida il timestamp rispetto al proprio orologio e rifiuta qualsiasi cosa al di fuori di una finestra di circa cinque minuti: "Firma scaduta" (orologio del client indietro) o "Firma non ancora attuale" (orologio del client avanti). È un HTTP 400, lato client; un tentativo cieco fallisce nuovamente finché l'orologio non viene corretto.
Perché succede
- Deriva dell'orologio del client: l'host che esegue la tua app ha un orologio impreciso (VM in pausa/ripresa, contenitore senza sincronizzazione dell'ora, dispositivo IoT/edge, runner CI).
- NTP non in esecuzione: nulla mantiene disciplinato l'orologio del sistema operativo, che quindi supera lentamente la tolleranza di 5 minuti.
- Gestione errata di fuso orario/UTC in un firmatario inserito manualmente che calcola erroneamente il timestamp della richiesta.
- Processo sospeso da tempo: un laptop o un ambiente in stile Lambda ripreso dopo una lunga pausa con un senso del tempo stantio.
Come risolverlo
- Abilitare la sincronizzazione dell'ora NTP sull'host (
chrony/systemd-timesyncd/w32time) e verificare che l'orologio sia entro un secondo dall'UTC reale. - Confronta gli orologi: controlla l'ora UTC del client rispetto a una fonte attendibile: se è sfasato di qualche minuto, questa è la causa.
- Riavviare il servizio di sincronizzazione dell'ora (o eseguire nuovamente la sincronizzazione manualmente) dopo il ripristino della VM o l'avvio del contenitore.
- Aggiorna l'AWS SDK: gli SDK moderni rilevano errori di disallineamento dell'orologio e riprovano automaticamente con un offset corretto; un vecchio SDK potrebbe non esserlo.
Preferisci gli AWS SDK ufficiali rispetto a un firmatario SigV4 scritto a mano in modo che il timestamp e la gestione dei tentativi di inclinazione vengano eseguiti per te.
In DynoTable
DynoTable si basa sull'AWS SDK per la firma, che include lo sfasamento dell'orologio correzione sulle build moderne (Connetti un account AWS). Se questo errore appare solo in uno script personalizzato ma DynoTable si connette correttamente, the il problema è isolato rispetto all'orologio o al firmatario del client: confrontare con Test Connessione sul profilo in Impostazioni → Profili. Su corridori CI o VM che sono in ibernazione, abilita NTP prima di eseguire l'app o i test.
I moderni AWS SDK rilevano errori di disallineamento dell'orologio e riprovano con un offset corretto; se tu visualizzalo solo in un firmatario creato manualmente, aggiorna l'SDK o abilita NTP sull'host prima di incolpare DynamoDB stesso. DynoTable utilizza esclusivamente il percorso SDK: no assemblaggio SigV4 personalizzato. Il generatore di query conferma le letture hanno esito positivo una volta che l'orologio e il profilo sono allineati.
Errori correlati
- Il token di sicurezza è scaduto: credenziali temporanee scadute (un diverso tipo di "scaduto").
- La firma della richiesta che abbiamo calcolato non corrisponde: mancata corrispondenza della firma da una chiave errata, non da un orologio.
- Le credenziali devono avere come ambito una regione valida: un errore SigV4 con ambito regionale.
Fonti
- AWS Signature Version 4 per richieste API — IAM Guida per l'utente (verificato il 13-07-2026 - finestra di riproduzione di cinque minuti)
- Risoluzione dei problemi relativi alla firma della versione 4 della firma per le richieste AWS API — IAM Guida per l'utente (verificato il 13-07-2026)
- Gestione degli errori con DynamoDB - Guida per sviluppatori di Amazon DynamoDB (verificato il 13-07-2026)
- Correzione del disallineamento dell'orologio - AWS Blog degli strumenti per sviluppatori (verificato il 13-07-2026)