Kredensial harus mencakup wilayah yang valid
TL;DR — Signature Version 4 memasukkan wilayah ke dalam cakupan kredensial setiap permintaan. Kesalahan ini berarti wilayah dalam cakupan tersebut tidak cocok dengan wilayah titik akhir yang sebenarnya Anda temukan — Anda masuk ke satu wilayah dan mengirim permintaan ke wilayah lain (atau menggunakan kode wilayah yang tidak valid). Jadikan wilayah klien yang dikonfigurasi cocok dengan titik akhir yang Anda panggil.
Apa artinya
InvalidSignatureException: Credential should be scoped to a valid region, not 'us-west-1'.Mengapa itu terjadi
- Ditandatangani untuk satu wilayah, dikirim ke wilayah lain —
regionyang dikonfigurasi SDK berbeda dariendpointyang di-hardcode atau diganti yang menunjuk ke wilayah lain. - Titik akhir khusus tanpa wilayah yang cocok — Anda menyetel
endpoint: https://dynamodb.eu-west-2.amazonaws.comtetapi meninggalkan wilayah klien dieu-west-1. - String wilayah yang tidak valid atau kosong — kesalahan ketik atau env var yang tidak disetel menghasilkan cakupan yang tidak dapat diterima oleh AWS sebagai valid.
- Proxy atau gateway yang meneruskan permintaan ke titik akhir regional yang berbeda dari titik akhir yang ditandatangani.
Bagaimana cara memperbaikinya
- Cocokkan wilayah klien dengan titik akhir. Jika Anda menunjuk ke
dynamodb.<region>.amazonaws.com, setelregionklien ke<region>yang sama. - Pilih pengaturan wilayah saja dan biarkan SDK membangun titik akhir — hapus penggantian
endpointmanual kecuali Anda benar-benar membutuhkannya (misalnya DynamoDB Lokal). - Pastikan kode wilayah valid (
us-east-1,eu-west-2, …) dan benar-benar disetel — periksaAWS_REGION/AWS_DEFAULT_REGIONdan file konfigurasi apa pun. - Untuk pengaturan peran yang diasumsikan atau lintas wilayah, konfirmasikan bahwa permintaan ditandatangani dengan wilayah tujuan pengirimannya, bukan default yang diwarisi di tempat lain.
Untuk DynamoDB Lokal, arahkan titik akhir ke http://localhost:8000 dan berikan wilayah yang konsisten kepada klien — wilayah tersebut hanya harus cocok dengan apa yang ditandatangani oleh klien.
Cek dulu di DynoTable
DynoTable menandatangani setiap permintaan dengan wilayah yang disimpan di profil aktif. Pengaturan → Profil memperlihatkan wilayah dan titik akhir kustom opsional pada satu formulir — ubah keduanya, lalu Uji Koneksi. Itu menghilangkan mode kegagalan SDK klasik di mana endpoint menunjuk pada eu-west-2 sementara region tetap eu-west-1.
Tekan ⌘P untuk mengonfirmasi profil mana (dan cakupan kredensial mana) yang aktif sebelum Anda men-debug kode aplikasi. Untuk Lokal, pertahankan titik akhir http://localhost:8000 dan wilayah mana pun yang cocok di profil yang sama. Setelah profil terhubung, gunakan pembuat kueri untuk membuktikan keberhasilan pembacaan dengan cakupan tersebut.
Sumber
- Memecahkan Masalah penandatanganan Signature Version 4 (diverifikasi 13-07-2026)
- Buat permintaan AWS API yang ditandatangani (diverifikasi 13-07-2026)
Kesalahan terkait
- Tanda tangan permintaan yang kami hitung tidak cocok — ketidakcocokan tanda tangan SigV4 yang lebih luas (kunci rahasia buruk atau kanonikalisasi).
- Token keamanan yang disertakan dalam permintaan tidak valid — kredensial buruk atau kedaluwarsa, bukan cakupan wilayah.
- Anda harus menentukan wilayah — tidak ada wilayah yang dikonfigurasi sama sekali.
- Pelajari: Hubungkan ke DynamoDB Lokal & LocalStack
Referensi
- Memecahkan Masalah penandatanganan Signature Version 4 untuk permintaan AWS API — Panduan Pengguna IAM (kesalahan cakupan kredensial)
- Buat permintaan AWS API yang ditandatangani — Panduan Pengguna IAM (format cakupan kredensial)
- Elemen tanda tangan permintaan AWS API — Panduan Pengguna IAM
- Penanganan kesalahan dengan DynamoDB — Panduan Pengembang Amazon DynamoDB
Terakhir diverifikasi 13-07-2026 terhadap dokumentasi resmi AWS yang ditautkan di atas.