Token Otentikasi Hilang
TL;DR — "Token Otentikasi Hilang" berarti permintaan tidak membawa kredensial atau mengenai titik akhir yang tidak dikenali /method AWS — permintaan ke jalur yang tidak ada atau metode HTTP yang tidak didukung akan mengembalikan ini, bukan 404. Untuk DynamoDB hampir selalu merupakan titik akhir URL yang salah atau permintaan yang tidak pernah ditandatangani.
Apa artinya
{"message":"Missing Authentication Token"}Mengapa itu terjadi
- Titik akhir URL salah — mengenai
https://dynamodb.<region>.amazonaws.com/some/pathdi browser atau dengan GET biasa, alih-alih melakukan panggilan SDK yang ditandatangani dengan benar ke root layanan. - Permintaan yang tidak ditandatangani —
curl/fetchmentah tanpa header SigV4Authorization(SDK biasanya menambahkannya). - Metode HTTP salah — API DynamoDB mengharapkan
POSThingga/dengan headerX-Amz-Targetyang memberi nama operasi; bentuk lain tidak dikenali sebagai operasi yang ditandatangani. - Titik akhir khusus yang salah ketik — menunjuk ke URL yang tidak sesuai dengan layanan DynamoDB.
- DynamoDB Lokal tanpa konfigurasi kunci akses — SDK memerlukan kunci akses dan nilai wilayah untuk disetel bahkan secara lokal (nilai apa pun berfungsi; Lokal hanya menggunakannya untuk memberi nama file database-nya).
Bagaimana cara memperbaikinya
- Gunakan SDK AWS, bukan panggilan HTTP mentah. Biarkan SDK membuat
POSTyang ditandatangani denganX-Amz-Targetyang benar — jangan membuat URL secara manual. - Tunjuk akar layanan (
https://dynamodb.<region>.amazonaws.com), bukan jalur, dan atur wilayah klien agar cocok. - Konfirmasi kredensial telah dikonfigurasi sehingga SDK benar-benar menandatangani permintaan (env vars, profil, atau peran).
- Untuk DynamoDB Lokal, setel titik akhir ke
http://localhost:8000dan konfigurasikan kunci akses tiruan/secret (hanya huruf dan angka) sehingga SDK menandatangani secara normal — Lokal tidak memvalidasinya.
Cara mereproduksinya
Kirim permintaan DynamoDB yang dibuat dengan baik tanpa header Authorization sama sekali:
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='{}',
)Keluaran sebenarnya:
MissingAuthenticationTokenException: Request is missing Authentication Token
HTTP 400Yang perlu diketahui saat ini sampai ke Anda lewat sebuah SDK: biasanya artinya permintaannya tidak pernah ditandatangani, bukan bahwa ada kredensial yang salah. Permintaan tanpa tanda tangan adalah yang Anda dapatkan dari panggilan HTTP buatan tangan, dari proxy yang membuang header, atau dari route API Gateway yang mengharapkan autentikasi IAM — jadi periksa bagaimana permintaannya dibangun, bukan kuncinya.
DynoTable + Local
DynoTable menandatangani setiap panggilan DynamoDB melalui AWS SDK — tanpa buatan tangan
Header Authorization (Hubungkan akun AWS). Untuk
DynamoDB Lokal, tambahkan profil dengan titik akhir http://localhost:8000 dan
kredensial placeholder sehingga permintaan ditandatangani secara normal; Lokal mengabaikan kuncinya
nilai tetapi masih memerlukannya (Menjalankan DynamoDB Lokal).
Jika Anda melihat ini pada AWS asli, konfirmasikan titik Pengaturan → Profil di
titik akhir regional yang benar dan Uji Koneksi berhasil sebelum dibuka
tabel. Pembuat Ekspresi DynamoDB
mengonfirmasi permintaan yang ditandatangani berfungsi setelah titik akhir benar.
Kesalahan terkait
- Tidak dapat menemukan kredensial — tidak ada kredensial yang ditemukan oleh SDK sama sekali.
- Token keamanan yang disertakan dalam permintaan tidak valid — kredensial ada tetapi ditolak.
- Tidak dapat terhubung ke titik akhir URL — format titik akhir salah atau tidak dapat dijangkau.
- Pelajari: Hubungkan ke DynamoDB Local & LocalStack
Sumber
- Memecahkan Masalah penandatanganan Signature Version 4 untuk permintaan AWS API — Panduan Pengguna IAM (diverifikasi 13-07-2026)
- Penanganan kesalahan dengan DynamoDB — Panduan Pengembang Amazon DynamoDB (diverifikasi 13-07-2026)
- Buat permintaan AWS API yang ditandatangani — Panduan Pengguna IAM (diverifikasi 13-07-2026)
- Catatan penggunaan lokal DynamoDB — Panduan Pengembang Amazon DynamoDB (diverifikasi 13-07-2026)
Direproduksi 26-07-2026 terhadap layanan DynamoDB langsung di us-east-1 — keluaran di atas adalah kata demi kata.