Missing Authentication Token
TL;DR — "Missing Authentication Token" significa que a requisição ou carregava nenhuma credencial ou atingiu um endpoint/método que a AWS não reconhece — uma requisição para um caminho inexistente ou um método HTTP não suportado retorna isto em vez de um 404. Para o DynamoDB é quase sempre uma URL de endpoint errada ou uma requisição que nunca foi assinada.
O que significa
{"message":"Missing Authentication Token"}O guia de troubleshooting de SigV4 da AWS é direto sobre a primeira causa: se a requisição de API não for assinada, você pode receber Missing Authentication Token. De forma contra-intuitiva, a mesma mensagem também volta de endpoints estilo API-Gateway (HTTP 403) quando o caminho ou método HTTP não corresponde a nenhuma rota — a AWS procura autenticação em uma requisição que não consegue rotear e reporta o token ausente em vez de um "not found". Quando o próprio DynamoDB rejeita uma requisição cujo cabeçalho de autorização está ausente ou malformado, a exceção é MissingAuthenticationTokenException — HTTP 400, não retentável, com a mensagem "Request must contain a valid (registered) AWS Access Key ID."
Por que acontece
- URL de endpoint errada — acessar
https://dynamodb.<region>.amazonaws.com/some/pathem um browser ou com um GET simples, em vez de uma chamada de SDK devidamente assinada para a raiz do serviço. - Requisição não assinada — um
curl/fetchcru sem cabeçalhoAuthorizationSigV4 (o SDK normalmente o adiciona). - Método HTTP errado — a API do DynamoDB espera
POSTpara/com um cabeçalhoX-Amz-Targetnomeando a operação; outras formas não são reconhecidas como operações assinadas. - Um endpoint customizado com erro de digitação — apontar para uma URL que não corresponde ao serviço DynamoDB.
- DynamoDB Local sem uma access key configurada — os SDKs exigem que uma access key e um valor de region sejam definidos mesmo localmente (quaisquer valores funcionam; o Local só os usa para nomear seu arquivo de banco de dados).
Como corrigir
- Use o AWS SDK, não uma chamada HTTP crua. Deixe o SDK construir o
POSTassinado com oX-Amz-Targetcorreto — não construa URLs à mão. - Aponte para a raiz do serviço (
https://dynamodb.<region>.amazonaws.com), não para um caminho, e defina a region do cliente para corresponder. - Confirme que as credenciais estão configuradas para que o SDK de fato assine a requisição (variáveis de ambiente, profile ou role).
- Para o DynamoDB Local, defina o endpoint para
http://localhost:8000e configure uma access key/secret dummy (apenas letras e números) para que o SDK assine normalmente — o Local não as valida.
Erros relacionados
- Unable to locate credentials — nenhuma credencial encontrada pelo SDK.
- The security token included in the request is invalid — credenciais presentes mas rejeitadas.
- Could not connect to the endpoint URL — um endpoint malformado ou inalcançável.
- Aprenda: Connect to DynamoDB Local & LocalStack
Referências
- 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 pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.