Missing Authentication Token

TL;DR — "Missing Authentication Token" berarti permintaan entah membawa tidak ada kredensial atau mengenai endpoint/metode yang tidak dikenali AWS — permintaan ke path yang tidak ada atau metode HTTP yang tidak didukung mengembalikan ini alih-alih 404. Untuk DynamoDB ini hampir selalu URL endpoint yang salah atau permintaan yang tidak pernah ditandatangani.

Apa artinya

{"message":"Missing Authentication Token"}

Panduan pemecahan masalah SigV4 AWS blak-blakan tentang penyebab pertama: jika permintaan API tidak ditandatangani, Anda mungkin menerima Missing Authentication Token. Berlawanan intuisi, pesan yang sama juga kembali dari endpoint gaya API-Gateway (HTTP 403) ketika path atau metode HTTP tidak cocok dengan route mana pun — AWS mencari auth pada permintaan yang tidak dapat di-route dan melaporkan token yang hilang alih-alih "not found". Ketika DynamoDB sendiri menolak permintaan yang header authorization-nya hilang atau salah bentuk, exception-nya adalah MissingAuthenticationTokenException — HTTP 400, tidak dapat dicoba ulang, dengan pesan "Request must contain a valid (registered) AWS Access Key ID."

Mengapa terjadi

  • URL endpoint salah — mengenai https://dynamodb.<region>.amazonaws.com/some/path di browser atau dengan GET biasa, alih-alih panggilan SDK yang ditandatangani dengan benar ke service root.
  • Permintaan tidak ditandatanganicurl/fetch mentah tanpa header SigV4 Authorization (SDK biasanya menambahkannya).
  • Metode HTTP salah — API DynamoDB mengharapkan POST ke / dengan header X-Amz-Target yang menamai operasi; bentuk lain tidak dikenali sebagai operasi yang ditandatangani.
  • Endpoint kustom salah ketik — menunjuk ke URL yang tidak sesuai dengan layanan DynamoDB.
  • DynamoDB Local tanpa access key dikonfigurasi — SDK mensyaratkan access key dan nilai region diatur bahkan secara lokal (nilai apa pun berfungsi; Local hanya menggunakannya untuk menamai file database-nya).

Cara memperbaikinya

  1. Gunakan AWS SDK, bukan panggilan HTTP mentah. Biarkan SDK membangun POST yang ditandatangani dengan X-Amz-Target yang benar — jangan membuat URL secara manual.
  2. Arahkan ke service root (https://dynamodb.<region>.amazonaws.com), bukan path, dan atur region klien agar cocok.
  3. Konfirmasi kredensial dikonfigurasi agar SDK benar-benar menandatangani permintaan (env var, profil, atau role).
  4. Untuk DynamoDB Local, atur endpoint ke http://localhost:8000 dan konfigurasikan access key/secret dummy (hanya huruf dan angka) agar SDK menandatangani secara normal — Local tidak memvalidasinya.

Kesalahan terkait

References

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

DynoTable adalah klien desktop yang cepat untuk DynamoDB — jelajahi tabel, jalankan query gaya SQL, dan edit Item secara lokal.