Missing Authentication Token

En bref — "Missing Authentication Token" signifie que la requête ne portait aucune information d'identification ou a atteint un endpoint/méthode qu'AWS ne reconnaît pas — une requête vers un chemin inexistant ou une méthode HTTP non prise en charge renvoie ceci plutôt qu'un 404. Pour DynamoDB, c'est presque toujours une mauvaise URL d'endpoint ou une requête qui n'a jamais été signée.

Ce que ça signifie

{"message":"Missing Authentication Token"}

Le guide de dépannage SigV4 d'AWS est direct sur la première cause : si la requête API n'est pas signée, tu peux recevoir Missing Authentication Token. De façon contre-intuitive, le même message revient aussi des endpoints de type API Gateway (HTTP 403) lorsque le chemin ou la méthode HTTP ne correspond à aucune route — AWS cherche une authentification sur une requête qu'il ne peut pas router et signale le token manquant au lieu d'un « non trouvé ». Lorsque DynamoDB lui-même rejette une requête dont l'en-tête d'autorisation est absent ou malformé, l'exception est MissingAuthenticationTokenException — HTTP 400, non réessayable, avec le message « Request must contain a valid (registered) AWS Access Key ID. »

Pourquoi ça arrive

  • Mauvaise URL d'endpoint — atteindre https://dynamodb.<region>.amazonaws.com/some/path dans un navigateur ou avec un simple GET, au lieu d'un appel SDK correctement signé vers la racine du service.
  • Requête non signée — un curl/fetch brut sans en-tête Authorization SigV4 (le SDK l'ajoute normalement).
  • Mauvaise méthode HTTP — l'API de DynamoDB attend un POST sur / avec un en-tête X-Amz-Target nommant l'opération ; les autres formes ne sont pas reconnues comme des opérations signées.
  • Un endpoint personnalisé mal saisi — pointer vers une URL qui ne correspond pas au service DynamoDB.
  • DynamoDB Local sans clé d'accès configurée — les SDK exigent qu'une clé d'accès et une valeur de région soient définies même en local (n'importe quelles valeurs conviennent ; Local ne s'en sert que pour nommer son fichier de base de données).

Comment le corriger

  1. Utilise le SDK AWS, pas un appel HTTP brut. Laisse le SDK construire le POST signé avec le bon X-Amz-Target — ne fabrique pas les URL à la main.
  2. Pointe vers la racine du service (https://dynamodb.<region>.amazonaws.com), pas un chemin, et règle la région du client pour qu'elle corresponde.
  3. Vérifie que les informations d'identification sont configurées pour que le SDK signe réellement la requête (variables d'environnement, profil ou rôle).
  4. Pour DynamoDB Local, règle l'endpoint sur http://localhost:8000 et configure une clé d'accès/un secret factices (lettres et chiffres uniquement) pour que le SDK signe normalement — Local ne les valide pas.

Reproduire l'erreur

Envoie une requête DynamoDB bien formée, sans aucun en-tête 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='{}',
)

Sortie réelle :

MissingAuthenticationTokenException: Request is missing Authentication Token
HTTP 400

Bon à savoir quand elle te parvient via un SDK : elle signifie généralement que la requête n'a jamais été signée, pas qu'un identifiant était erroné. Une requête non signée, c'est ce que produisent un appel HTTP fait à la main, un proxy qui supprime des en-têtes, ou une route API Gateway qui attend une auth IAM — regarde donc comment la requête a été construite plutôt que la clé.

DynoTable + Local

DynoTable signe chaque appel DynamoDB via le SDK AWS — aucun en-tête Authorization fait main (Connecter un compte AWS). Pour DynamoDB Local, ajoute un profil avec l'endpoint http://localhost:8000 et des identifiants factices, pour que les requêtes soient signées normalement ; Local ignore la valeur des clés mais les exige quand même (Running DynamoDB Local). Si tu vois ça face au vrai AWS, confirme que Settings → Profiles pointe le bon endpoint régional et que Test Connection réussit avant d'ouvrir des tables. Le DynamoDB Expression Builder confirme que les requêtes signées passent une fois l'endpoint correct.

Erreurs liées

Sources

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Reproduit le 2026-07-26 sur le service DynamoDB réel dans us-east-1 — la sortie ci-dessus est reproduite telle quelle.

Travaille avec DynamoDB sans la Console

Un client de bureau rapide pour DynamoDB qui exécute le vrai SQL que DynamoDB ne peut pas — JOINs, GROUP BY, agrégations — avec édition visuelle et un agent IA sur tes propres clés Bedrock.

Essai gratuit de 30 jours, sans carte bancaire — ensuite la formule Gratuit, sans limite de durée.