Token di autenticazione mancante
TL;DR — "Token di autenticazione mancante" significa che la richiesta non conteneva credenziali o ha raggiunto un endpoint/metodo che AWS non riconosce: una richiesta a un percorso inesistente o un metodo HTTP non supportato restituisce questo anziché un 404. Per DynamoDB si tratta quasi sempre di un URL endpoint errato o di una richiesta che non è mai stata firmata.
Cosa significa
{"message":"Missing Authentication Token"}La guida alla risoluzione dei problemi SigV4 di AWS è schietta riguardo alla prima causa: se la richiesta API non è firmata, potresti ricevere "Token di autenticazione mancante". Controintuitivamente, lo stesso messaggio ritorna anche dagli endpoint in stile API-Gateway (HTTP 403) quando il percorso o il metodo HTTP non corrisponde a nessun percorso - AWS cerca l'autenticazione su una richiesta che non può instradare e segnala il token mancante invece di "non trovato". Quando DynamoDB stesso rifiuta una richiesta la cui intestazione di autorizzazione è mancante o non corretta, l'eccezione è MissingAuthenticationTokenException - HTTP 400, non ripetibile, con il messaggio "La richiesta deve contenere un ID chiave di accesso AWS valido (registrato)."
Perché succede
- URL endpoint errato: digitando
https://dynamodb.<region>.amazonaws.com/some/pathin un browser o con un semplice GET, invece di una chiamata SDK correttamente firmata alla root del servizio. - Richiesta non firmata: un
curl/fetchgrezzo senza intestazioneAuthorizationSigV4 (normalmente l'SDK lo aggiunge). - Metodo HTTP errato — DynamoDB API prevede che
POSTvenga/con un'intestazioneX-Amz-Targetche nomina l'operazione; altre forme non sono riconosciute come operazioni firmate. - Un endpoint personalizzato con un errore di battitura: punta a un URL che non corrisponde al servizio DynamoDB.
- DynamoDB Locale senza chiave di accesso configurata: gli SDK richiedono che una chiave di accesso e un valore della regione siano impostati anche localmente (qualsiasi valore funziona; Locale li utilizza solo per denominare il file di database).
Come risolverlo
- Utilizza l'AWS SDK, non una chiamata HTTP non elaborata. Lascia che l'SDK crei il
POSTfirmato con ilX-Amz-Targetcorretto: non creare URL manualmente. - Puntare alla radice del servizio (
https://dynamodb.<region>.amazonaws.com), non a un percorso, e impostare la regione del client in modo che corrisponda. - Confermare che le credenziali siano configurate in modo che l'SDK firmi effettivamente la richiesta (var env, profilo o ruolo).
- Per DynamoDB Local, imposta l'endpoint su
http://localhost:8000e configura una chiave di accesso/segreto fittizio (solo lettere e numeri) in modo che l'SDK firmi normalmente: Local non li convalida.
Riproducilo
Invia una richiesta DynamoDB ben formata senza alcuna intestazione Authorization:
import requests
requests.post(
'https://dynamodb.us-east-1.amazonaws.com',
headers={
'X-Amz-Target': 'DynamoDB_20120810.ListTables',
'Content-Type': 'application/x-amz-json-1.0',
},
data='{}',
)Produzione reale:
MissingAuthenticationTokenException: Request is missing Authentication Token
HTTP 400Vale la pena sapere quando questo ti arriva tramite un SDK: di solito significa che la richiesta non è mai stata firmata, non che una credenziale fosse sbagliata. Una richiesta non firmata è ciò che ottieni da una chiamata HTTP lanciata manualmente, un proxy che rimuove le intestazioni o un percorso gateway API che prevede l'autenticazione IAM, quindi guarda come è stata creata la richiesta piuttosto che la chiave.
DynoTable + Local
DynoTable firma ogni DynamoDB chiamata tramite l'AWS SDK: nessuna creazione manuale
Intestazioni "Autorizzazione" (Connetti un account AWS). Per
DynamoDB Locale, aggiungi un profilo con endpoint http://localhost:8000 e
credenziali segnaposto in modo che le richieste vengano firmate normalmente; Locale ignora la chiave
valori ma li richiede comunque (Running DynamoDB Local).
Se vedi questo rispetto al reale AWS, conferma i punti Impostazioni → Profili nel
endpoint regionale corretto e che il Test della connessione abbia esito positivo prima dell'apertura
tabelle. Il DynamoDB Generatore di espressioni
conferma che le richieste firmate funzionano una volta che l'endpoint è corretto.
Errori correlati
- Impossibile individuare le credenziali: nessuna credenziale trovata dall'SDK.
- Il token di sicurezza incluso nella richiesta non è valido: credenziali presenti ma rifiutate.
- Impossibile connettersi all'URL dell'endpoint: un endpoint non valido o irraggiungibile.
- Impara: Connetti a DynamoDB Locale e LocalStack
Fonti
- Risoluzione dei problemi relativi alla firma della versione 4 della firma per le richieste AWS API — Guida per l'utente IAM (verificato il 13-07-2026)
- Gestione degli errori con DynamoDB — Guida per sviluppatori di Amazon DynamoDB (verificato il 13-07-2026)
- Crea una richiesta firmata AWS API — IAM Guida per l'utente (verificato il 13-07-2026)
- DynamoDB note sull'utilizzo locale - Guida per sviluppatori Amazon DynamoDB (verificato il 13-07-2026)
Riprodotto il 26-07-2026 rispetto al servizio live DynamoDB in us-east-1: l'output sopra è letterale.