InvalidSignatureException: Tanda tangan kedaluwarsa
TL;DR — Permintaan AWS yang ditandatangani harus mencapai layanan dalam waktu ~5 menit setelah stempel waktu dimasukkan ke dalam tanda tangannya. Kesalahan ini berarti jam mesin Anda terlalu jauh dari waktu server AWS (jam miring), sehingga tanda tangannya telah "kedaluwarsa" atau "belum terkini". Perbaiki jam klien — aktifkan sinkronisasi waktu NTP.
Apa artinya
InvalidSignatureException: Signature expired: 20260712T101500Z is now earlier
than 20260712T101700Z (20260712T102200Z - 5 min.)Mengapa itu terjadi
- Penyimpangan jam klien — host yang menjalankan aplikasi Anda memiliki jam yang tidak akurat (VM dijeda/resumed, kontainer tanpa sinkronisasi waktu, perangkat IoT/edge, pelari CI).
- NTP tidak berjalan — tidak ada yang membuat jam OS tetap disiplin, sehingga perlahan-lahan melewati toleransi 5 menit.
- Penanganan zona waktu/UTC salah pada penanda tangan yang salah menghitung stempel waktu permintaan.
- Proses yang tertunda lama — laptop atau lingkungan bergaya Lambda dilanjutkan setelah jeda yang lama dengan waktu yang terasa membosankan.
Bagaimana cara memperbaikinya
- Aktifkan sinkronisasi waktu NTP pada host (
chrony/systemd-timesyncd/w32time) dan konfirmasikan jam berada dalam satu detik dari UTC sebenarnya. - Bandingkan jam: periksa waktu UTC klien dengan sumber tepercaya — jika meleset beberapa menit, itulah penyebabnya.
- Mulai ulang layanan sinkronisasi waktu (atau sinkronkan ulang secara manual) setelah VM dilanjutkan atau container dimulai.
- Tingkatkan SDK AWS — SDK modern mendeteksi kesalahan kemiringan jam dan coba lagi secara otomatis dengan offset yang diperbaiki; SDK lama mungkin tidak.
Lebih suka SDK AWS resmi daripada penanda tangan SigV4 yang ditulis tangan sehingga stempel waktu dan penanganan coba lagi saat miring dilakukan untuk Anda.
Di DynoTable
DynoTable mengandalkan SDK AWS untuk penandatanganan, yang mencakup kemiringan jam koreksi pada versi modern (Hubungkan akun AWS). Jika kesalahan ini hanya muncul di skrip khusus tetapi DynoTable terhubung dengan baik masalah diisolasi pada jam atau penanda tangan klien tersebut — bandingkan dengan Test Koneksi pada profil di Pengaturan → Profil. Pada pelari CI atau VM yang hibernasi, aktifkan NTP sebelum menjalankan aplikasi atau pengujian Anda.
SDK AWS modern mendeteksi kesalahan kemiringan jam dan mencoba lagi dengan offset yang diperbaiki; jika kamu hanya melihat ini di penanda tangan, tingkatkan SDK atau aktifkan NTP di host sebelum menyalahkan DynamoDB itu sendiri. DynoTable menggunakan jalur SDK secara eksklusif — tidak perakitan SigV4 khusus. Pembuat kueri mengonfirmasi pembacaan berhasil setelah jam dan profil sejajar.
Kesalahan terkait
- Token keamanan kedaluwarsa — kredensial sementara sudah habis masa berlakunya (jenis lain dari "kedaluwarsa").
- Tanda tangan permintaan yang kami hitung tidak cocok — tanda tangan tidak cocok karena kunci yang buruk, bukan jam.
- Kredensial harus dicakup ke wilayah yang valid — kegagalan SigV4 cakupan wilayah.
Sumber
- AWS Signature Version 4 untuk permintaan API — Panduan Pengguna IAM (diverifikasi 13-07-2026 — jendela pemutaran ulang lima menit)
- 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)
- Koreksi kemiringan jam — Blog Alat Pengembang AWS (diverifikasi 13-07-2026)