Missing Authentication Token
In breve — "Missing Authentication Token" significa che la richiesta o portava nessuna credenziale o ha raggiunto un endpoint/metodo che AWS non riconosce — una richiesta a un percorso inesistente o un metodo HTTP non supportato restituisce questo invece di un 404. Per DynamoDB è quasi sempre un endpoint URL errato o una richiesta che non è mai stata firmata.
Cosa significa
{"message":"Missing Authentication Token"}La guida al troubleshooting di SigV4 di AWS è categorica sulla prima causa: se la richiesta API non è firmata, potresti ricevere Missing Authentication Token. Contro-intuitivamente, lo stesso messaggio torna anche dagli endpoint in stile API-Gateway (HTTP 403) quando il percorso o il metodo HTTP non corrisponde ad alcuna route — AWS cerca l'auth su una richiesta che non può instradare e segnala il token mancante invece di un "not found". Quando DynamoDB stesso rifiuta una richiesta il cui header di autorizzazione è mancante o malformato, l'eccezione è MissingAuthenticationTokenException — HTTP 400, non ripetibile, con il messaggio "Request must contain a valid (registered) AWS Access Key ID."
Perché accade
- Endpoint URL errato — raggiungere
https://dynamodb.<region>.amazonaws.com/some/pathin un browser o con una GET semplice, invece di una chiamata SDK correttamente firmata alla radice del servizio. - Richiesta non firmata — un
curl/fetchgrezzo senza headerAuthorizationSigV4 (l'SDK normalmente lo aggiunge). - Metodo HTTP errato — l'API di DynamoDB si aspetta
POSTa/con un headerX-Amz-Targetche nomina l'operazione; altre forme non sono riconosciute come operazioni firmate. - Un endpoint personalizzato con refuso — puntare a un URL che non corrisponde al servizio DynamoDB.
- DynamoDB Local senza access key configurata — gli SDK richiedono che siano impostati un access key e un valore di region anche localmente (qualsiasi valore funziona; Local li usa solo per nominare il suo file di database).
Come correggerlo
- Usa l'AWS SDK, non una chiamata HTTP grezza. Lascia che l'SDK costruisca la
POSTfirmata con il correttoX-Amz-Target— non costruire a mano gli URL. - Punta alla radice del servizio (
https://dynamodb.<region>.amazonaws.com), non a un percorso, e imposta la region del client perché corrisponda. - Conferma che le credenziali siano configurate così l'SDK firmi effettivamente la richiesta (variabili d'ambiente, profilo o ruolo).
- Per DynamoDB Local, imposta l'endpoint su
http://localhost:8000e configura un access key/secret fittizio (solo lettere e numeri) così l'SDK firmi normalmente — Local non li valida.
Errori correlati
- Unable to locate credentials — nessuna credenziale trovata affatto dall'SDK.
- The security token included in the request is invalid — credenziali presenti ma rifiutate.
- Could not connect to the endpoint URL — un endpoint malformato o irraggiungibile.
- Impara: Connect to DynamoDB Local & LocalStack
References
- Troubleshoot Signature Version 4 signing for AWS API requests — IAM User Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Create a signed AWS API request — IAM User Guide
- DynamoDB local usage notes — Amazon DynamoDB Developer Guide
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.