Token keamanan yang disertakan dalam permintaan telah kedaluwarsa

TL;DR — Kredensial AWS sementara Anda habis waktunya. Ini hanya terjadi dengan kredensial STS/SSO/assumed-role (bukan kunci pengguna IAM yang berumur panjang). Segarkan sesi — jalankan kembali aws sso login atau ambil kembali peran tersebut — pastikan AWS_SESSION_TOKEN adalah yang baru, dan hapus semua token usang yang tersisa di lingkungan.

Apa artinya

ExpiredTokenException: The security token included in the request is expired

Mengapa itu terjadi

  • Sesi STS/SSO telah habis waktunya — kredensial peran yang diasumsikan akan habis masa berlakunya pada durasi sesi peran (defaultnya adalah 1 jam, dapat dikonfigurasi hingga 12 jam); sesi SSO juga akan berakhir.
  • AWS_SESSION_TOKEN basi di lingkungan — token sesi lama yang diekspor ke shell Anda (atau .env) terus digunakan setelah habis masa berlakunya; env vars tidak menyegarkan secara otomatis.
  • Proses yang berjalan lama yang mengambil kredensial sekali saat startup dan tidak pernah menyegarkannya.
  • Kredensial yang disimpan dalam cache di ~/.aws/cli/cache atau cache kredensial SDK yang masa berlakunya sudah habis.
  • Jam miring — jam mesin yang terlalu jauh dapat membuat kredensial yang valid terlihat kedaluwarsa.

Bagaimana cara memperbaikinya

  1. Segarkan sesi. Jalankan kembali aws sso login (untuk SSO) atau ambil kembali peran (aws sts assume-role …) untuk mendapatkan kunci akses, rahasia, dan token sesi baru.
  2. Perbarui ketiga nilai — id kunci akses, kunci akses rahasia, dan token sesi secara bersamaan. Kunci baru dengan token basi masih gagal.
  3. Hapus vars env basiunset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN, lalu sumberkan kembali kredensial baru atau beralih ke profil yang dapat disegarkan oleh SDK sendiri.
  4. Biarkan SDK mengelola siklus hidup — konfigurasikan penyedia profil/kredensial (SSO, assume_role, peran instance) sehingga SDK disegarkan secara otomatis sebelum masa berlakunya habis, bukannya menyematkan satu token.
  5. Verifikasi dengan aws sts get-caller-identity — jika berhasil, kredensial Anda masih berlaku.
  6. Periksa jam (NTP) apakah semuanya terlihat baru tetapi permintaan masih melaporkan kedaluwarsa.

Hubungkan dari DynoTable

DynoTable menyelesaikan profil Anda dengan segar di setiap koneksi — Sesi SSO dan peran yang dilindungi MFA disertakan — jadi begitu sesi tersebut diaktifkan diperbarui, tabel Anda kembali tanpa memulai ulang. Titik status chip profil berubah menjadi merah dengan Masuk (SSO) atau Sambungkan kembali saat kredensial sementara kedaluwarsa; klik atau jalankan kembali kueri untuk memicu alur penyegaran dalam aplikasi. Tekan ⌘P untuk mengonfirmasi bahwa Anda berada di profil yang Anda segarkan di terminal. Pembangun kueri adalah pemeriksaan kewarasan cepat pembacaan yang ditandatangani berhasil setelah penyegaran.

FAQ

Bagaimana cara memperbaiki "token keamanan yang disertakan dalam permintaan telah kedaluwarsa"? Kredensial sementara Anda sudah habis masa berlakunya. Segarkan semuanya — jalankan kembali aws sso login atau ambil kembali peran tersebut — dan perbarui kunci akses, rahasia, dan AWS_SESSION_TOKEN secara bersamaan. Hapus semua token usang yang tersisa di shell Anda sehingga token lama tidak digunakan kembali, dan pilih penyedia kredensial SDK yang menyegarkan secara otomatis.

Mengapa saya hanya mendapatkan ini dengan kredensial sementara? ExpiredTokenException berlaku untuk kredensial STS/SSO/assumed-role berbatas waktu, yang memiliki masa berlaku. Kunci akses pengguna IAM yang berumur panjang tidak akan kedaluwarsa dengan sendirinya, sehingga menimbulkan kesalahan kredensial karena alasan lain (/disabled tidak valid), bukan yang ini.

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.