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/pathen 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/fetchcrudo sin encabezadoAuthorizationde SigV4 (el SDK normalmente lo añade). - Método HTTP incorrecto — la API de DynamoDB espera
POSTa/con un encabezadoX-Amz-Targetque 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
- Usa el AWS SDK, no una llamada HTTP cruda. Deja que el SDK construya el
POSTfirmado con elX-Amz-Targetcorrecto — no elabores URLs a mano. - 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. - Confirma que las credenciales están configuradas para que el SDK firme realmente la solicitud (variables de entorno, perfil o rol).
- Para DynamoDB Local, establece el endpoint en
http://localhost:8000y 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
- Unable to locate credentials — el SDK no encuentra credenciales en absoluto.
- The security token included in the request is invalid — credenciales presentes pero rechazadas.
- Could not connect to the endpoint URL — un endpoint mal formado o inalcanzable.
- Aprende: Connect to DynamoDB Local & LocalStack
Referencias
- 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
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.