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/path em 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/fetch bruto sem cabeçalho SigV4 Authorization (o SDK normalmente o adiciona).
  • Método HTTP errado — O API do DynamoDB espera POST para / com um cabeçalho X-Amz-Target nomeando 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

  1. Use o SDK do AWS, não uma chamada HTTP bruta. Deixe o SDK construir o POST assinado com o X-Amz-Target correto — não crie URLs manualmente.
  2. 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.
  3. Confirme se as credenciais estão configuradas para que o SDK realmente assine a solicitação (env vars, perfil ou função).
  4. Para DynamoDB Local, defina o endpoint como http://localhost:8000 e 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

Fontes

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

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.