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/pathdi browser atau dengan GET biasa, alih-alih panggilan SDK yang ditandatangani dengan benar ke service root. - Permintaan tidak ditandatangani —
curl/fetchmentah tanpa header SigV4Authorization(SDK biasanya menambahkannya). - Metode HTTP salah — API DynamoDB mengharapkan
POSTke/dengan headerX-Amz-Targetyang 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
- Gunakan AWS SDK, bukan panggilan HTTP mentah. Biarkan SDK membangun
POSTyang ditandatangani denganX-Amz-Targetyang benar — jangan membuat URL secara manual. - Arahkan ke service root (
https://dynamodb.<region>.amazonaws.com), bukan path, dan atur region klien agar cocok. - Konfirmasi kredensial dikonfigurasi agar SDK benar-benar menandatangani permintaan (env var, profil, atau role).
- Untuk DynamoDB Local, atur endpoint ke
http://localhost:8000dan konfigurasikan access key/secret dummy (hanya huruf dan angka) agar SDK menandatangani secara normal — Local tidak memvalidasinya.
Kesalahan terkait
- Unable to locate credentials — tidak ada kredensial yang ditemukan SDK sama sekali.
- The security token included in the request is invalid — kredensial ada tetapi ditolak.
- Could not connect to the endpoint URL — endpoint salah bentuk atau tak terjangkau.
- Pelajari: Connect to DynamoDB Local & LocalStack
References
- 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
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.