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/path in un browser o con una GET semplice, invece di una chiamata SDK correttamente firmata alla radice del servizio.
  • Richiesta non firmata — un curl/fetch grezzo senza header Authorization SigV4 (l'SDK normalmente lo aggiunge).
  • Metodo HTTP errato — l'API di DynamoDB si aspetta POST a / con un header X-Amz-Target che 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

  1. Usa l'AWS SDK, non una chiamata HTTP grezza. Lascia che l'SDK costruisca la POST firmata con il corretto X-Amz-Target — non costruire a mano gli URL.
  2. Punta alla radice del servizio (https://dynamodb.<region>.amazonaws.com), non a un percorso, e imposta la region del client perché corrisponda.
  3. Conferma che le credenziali siano configurate così l'SDK firmi effettivamente la richiesta (variabili d'ambiente, profilo o ruolo).
  4. Per DynamoDB Local, imposta l'endpoint su http://localhost:8000 e configura un access key/secret fittizio (solo lettere e numeri) così l'SDK firmi normalmente — Local non li valida.

Errori correlati

References

Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

DynoTable è un client desktop veloce per DynamoDB — sfoglia le tabelle, esegui query in stile SQL e modifica gli Item localmente.