Missing Authentication Token

TL;DR — "Missing Authentication Token" は、リクエストが 認証情報を持たなかった**、または AWS が認識しないエンドポイント/メソッド に到達したことを意味します。存在しないパスやサポートされない HTTP メソッドへのリクエストは、404 ではなくこれを返します。DynamoDB では、ほぼ必ず 誤ったエンドポイント URL か、署名されなかったリクエストです。**

意味

{"message":"Missing Authentication Token"}

AWS の SigV4 トラブルシューティングガイドは最初の原因について率直です: API リクエストが署名されていない場合、Missing Authentication Token を受け取ることがあります。直感に反して、同じメッセージは、パスや HTTP メソッドがどのルートにも一致しないとき、API Gateway スタイルのエンドポイントからも返ってきます(HTTP 403)。AWS はルーティングできないリクエストで認証を探し、「見つからない」ではなく欠落したトークンを報告します。DynamoDB 自体が、認可ヘッダーが欠落または不正な形式のリクエストを拒否するとき、例外は MissingAuthenticationTokenException です — HTTP 400、リトライ不可、メッセージは "Request must contain a valid (registered) AWS Access Key ID."。

発生する理由

  • 誤ったエンドポイント URL — サービスルートへの適切に署名された SDK 呼び出しではなく、ブラウザや素の GET で https://dynamodb.<region>.amazonaws.com/some/path にアクセスしている。
  • 署名されていないリクエスト — SigV4 の Authorization ヘッダーのない生の curl/fetch(SDK は通常それを追加します)。
  • 誤った HTTP メソッド — DynamoDB の API は、操作を指定する X-Amz-Target ヘッダーとともに / への POST を期待します。他の形状は署名された操作として認識されません。
  • タイプミスのカスタムエンドポイント — DynamoDB サービスに対応しない URL を指している。
  • アクセスキーが設定されていない DynamoDB Local — SDK はローカルでもアクセスキーとリージョン値の設定を要求します(任意の値が機能します。Local はデータベースファイルの命名にのみ使用します)。

修正方法

  1. 生の HTTP 呼び出しではなく AWS SDK を使います。 SDK に正しい X-Amz-Target で署名済みの POST を組み立てさせ、URL を手作りしないでください。
  2. パスではなく サービスルートhttps://dynamodb.<region>.amazonaws.com)を指し、クライアントのリージョンを一致させます。
  3. SDK が実際にリクエストに署名するよう 認証情報が設定されていることを確認します(環境変数、プロファイル、またはロール)。
  4. DynamoDB Local では、エンドポイントを http://localhost:8000 に設定し、ダミーのアクセスキー/シークレット(英数字のみ)を設定して SDK が通常どおり署名するようにします。Local はそれらを検証しません。

関連するエラー

References

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynoTable は DynamoDB 向けの高速なデスクトップクライアントです — テーブルを閲覧し、SQL スタイルのクエリを実行し、アイテムをローカルで編集できます。