Token de autenticação ausente
TL;DR — "Token de autenticação ausente" significa que a solicitação não continha credenciais ou atingiu um endpoint/method que o AWS não reconhece — uma solicitação para um caminho inexistente ou um método HTTP não suportado retorna isso em vez de um 404. Para DynamoDB é quase sempre um endpoint errado URL ou uma solicitação que nunca foi assinada.
O que significa
{"message":"Missing Authentication Token"}O guia de solução de problemas SigV4 do AWS é direto sobre a primeira causa: se a solicitação API não for assinada, você poderá receber Missing Authentication Token. Contra-intuitivamente, a mesma mensagem também retorna de endpoints estilo API-Gateway (HTTP 403) quando o caminho ou método HTTP não corresponde a nenhuma rota - AWS procura autenticação em uma solicitação que não pode rotear e relata o token ausente em vez de "não encontrado". Quando o próprio DynamoDB rejeita uma solicitação cujo cabeçalho de autorização está ausente ou malformado, a exceção é MissingAuthenticationTokenException — HTTP 400, não repetível, com a mensagem "A solicitação deve conter um ID de chave de acesso AWS válido (registrado)".
Por que isso acontece
- Endpoint errado URL — acessando
https://dynamodb.<region>.amazonaws.com/some/pathem um navegador ou com um GET simples, em vez de uma chamada SDK devidamente assinada para a raiz do serviço. - Solicitação não assinada — um
curl/fetchbruto sem cabeçalho SigV4Authorization(o SDK normalmente o adiciona). - Método HTTP errado — O 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 personalizado com erro de digitação — apontando para um URL que não corresponde ao serviço DynamoDB.
- DynamoDB Local sem uma chave de acesso configurada — os SDKs exigem que uma chave de acesso e um valor de região sejam definidos até mesmo localmente (quaisquer valores funcionam; o Local os usa apenas para nomear seu arquivo de banco de dados).
Como corrigir
- Use o SDK do AWS, não uma chamada HTTP bruta. Deixe o SDK construir o
POSTassinado com oX-Amz-Targetcorreto — não crie URLs manualmente. - Aponte para a raiz do serviço (
https://dynamodb.<region>.amazonaws.com), não para um caminho, e defina a região do cliente para corresponder. - Confirme se as credenciais estão configuradas para que o SDK realmente assine a solicitação (env vars, perfil ou função).
- Para DynamoDB Local, defina o endpoint como
http://localhost:8000e configure uma chave de acesso fictícia /secret (somente letras e números) para que o SDK assine normalmente — o Local não os valida.
Reproduza
Envie uma solicitação DynamoDB bem formada sem nenhum cabeçalho 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='{}',
)Vale a pena saber quando isso chega até você por meio de um SDK: geralmente significa que a solicitação nunca foi assinada, e não que uma credencial estava errada. Uma solicitação não assinada é o que você obtém de uma chamada HTTP rolada manualmente, um proxy que remove cabeçalhos ou uma rota de gateway API esperando autenticação IAM - portanto, observe como a solicitação foi construída e não na chave.
DynoTable + Local
O DynoTable assina todas as chamadas do DynamoDB por meio do SDK do AWS - sem necessidade de construção manual
Cabeçalhos Authorization (Conectar uma conta AWS). Para
DynamoDB Local, adicione um perfil com endpoint http://localhost:8000 e
credenciais de espaço reservado para que as solicitações sejam assinadas normalmente; Local ignora a chave
valores, mas ainda os requer (Executando DynamoDB Local).
Se você ver isso em relação ao AWS real, confirme os pontos Configurações → Perfis no
endpoint regional correto e que Test Connection seja bem-sucedido antes de abrir
tabelas. O Construtor de Expressões DynamoDB
confirma que as solicitações assinadas funcionam quando o endpoint está correto.
Erros relacionados
- Não é possível localizar credenciais — nenhuma credencial encontrada pelo SDK.
- O token de segurança incluído na solicitação é inválido — credenciais presentes, mas rejeitadas.
- Não foi possível conectar ao endpoint URL — um endpoint malformado ou inacessível.
- Aprenda: Conecte-se ao DynamoDB Local e LocalStack
Fontes
- Solucionar problemas de assinatura da versão 4 para solicitações AWS API - Guia do usuário IAM (verificado em 13/07/2026)
- Tratamento de erros com DynamoDB — Guia do desenvolvedor do Amazon DynamoDB (verificado em 13/07/2026)
- Criar uma solicitação AWS API assinada - Guia do usuário IAM (verificado em 13/07/2026)
- Notas de uso local do DynamoDB — Guia do desenvolvedor do Amazon DynamoDB (verificado em 13/07/2026)
Reproduzido em 26/07/2026 no serviço DynamoDB ativo em us-east-1 - a saída acima é literal.
MissingAuthenticationTokenException: Request is missing Authentication Token
HTTP 400