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

  1. Aktifkan sinkronisasi waktu NTP pada host (chrony/systemd-timesyncd/w32time) dan konfirmasikan jam berada dalam satu detik dari UTC sebenarnya.
  2. Bandingkan jam: periksa waktu UTC klien dengan sumber tepercaya — jika meleset beberapa menit, itulah penyebabnya.
  3. Mulai ulang layanan sinkronisasi waktu (atau sinkronkan ulang secara manual) setelah VM dilanjutkan atau container dimulai.
  4. 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

Sumber

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.