Missing Authentication Token

TL;DR — "Missing Authentication Token" significa que la solicitud llevaba sin credenciales o llegó a un endpoint/método que AWS no reconoce: una solicitud a una ruta inexistente o con un método HTTP no soportado devuelve esto en lugar de un 404. Para DynamoDB casi siempre es una URL de endpoint incorrecta o una solicitud que nunca se firmó.

Qué significa

{"message":"Missing Authentication Token"}

La guía de resolución de problemas de SigV4 de AWS es contundente sobre la primera causa: si la solicitud a la API no está firmada, puede que recibas Missing Authentication Token. Contraintuitivamente, el mismo mensaje también lo devuelven los endpoints de estilo API Gateway (HTTP 403) cuando la ruta o el método HTTP no coinciden con ninguna ruta: AWS busca autenticación en una solicitud que no puede enrutar e informa del token que falta en lugar de un "not found". Cuando el propio DynamoDB rechaza una solicitud cuyo encabezado de autorización falta o está mal formado, la excepción es MissingAuthenticationTokenException — HTTP 400, no reintentable, con el mensaje "Request must contain a valid (registered) AWS Access Key ID."

Por qué ocurre

  • URL de endpoint incorrecta — acceder a https://dynamodb.<region>.amazonaws.com/some/path en un navegador o con un GET plano, en lugar de una llamada del SDK correctamente firmada a la raíz del servicio.
  • Solicitud sin firmar — un curl/fetch crudo sin encabezado Authorization de SigV4 (el SDK normalmente lo añade).
  • Método HTTP incorrecto — la API de DynamoDB espera POST a / con un encabezado X-Amz-Target que nombra la operación; otras formas no se reconocen como operaciones firmadas.
  • Un endpoint personalizado con una errata — apuntar a una URL que no corresponde al servicio de DynamoDB.
  • DynamoDB Local sin una clave de acceso configurada — los SDK requieren que se establezcan una clave de acceso y un valor de región incluso en local (cualquier valor sirve; Local solo los usa para nombrar su archivo de base de datos).

Cómo solucionarlo

  1. Usa el AWS SDK, no una llamada HTTP cruda. Deja que el SDK construya el POST firmado con el X-Amz-Target correcto — no elabores URLs a mano.
  2. Apunta a la raíz del servicio (https://dynamodb.<region>.amazonaws.com), no a una ruta, y configura la región del cliente para que coincida.
  3. Confirma que las credenciales están configuradas para que el SDK firme realmente la solicitud (variables de entorno, perfil o rol).
  4. Para DynamoDB Local, establece el endpoint en http://localhost:8000 y configura una clave de acceso/secreto ficticios (solo letras y números) para que el SDK firme con normalidad — Local no los valida.

Errores relacionados

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.