Tidak dapat memuat kredensial dari penyedia mana pun

TL;DR — AWS SDK untuk JavaScript v3 menjalankan seluruh rantai kredensial defaultnya — variabel lingkungan, SSO, profil config/credentials bersama, identitas web, dan titik akhir metadata container/instance — dan tidak ada satupun yang menghasilkan kredensial. Berikan rantai sumber yang dapat ditemukan (env vars, aws configure, peran terlampir), atau teruskan credentials ke klien secara eksplisit — yang mana untuk DynamoDB Lokal tetap harus berupa nilai dummy.

Apa artinya

CredentialsProviderError: Could not load credentials from any providers

Setiap permintaan DynamoDB harus ditandatangani SigV4, jadi sebelum panggilan pertama SDK menyelesaikan kredensial lewat rantai penyedianya. Kesalahan ini adalah hasil "tidak ada yang ditemukan" dari rantai tersebut — ia muncul sebelum ada panggilan jaringan apa pun ke DynamoDB, dan merupakan padanan JS v3 dari Unable to locate credentials milik boto3. Ini bukan masalah izin (itu akan menjadi AccessDeniedException) — memang tidak ada identitas sama sekali.

Mengapa itu terjadi

  • Tidak ada kredensial yang dikonfigurasi di mana pun — tidak ada AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY di lingkungan, tidak ada ~/.aws/credentials, tidak ada peran.
  • Profil [default] tidak ada — Anda hanya memiliki profil bernama, namun AWS_PROFILE tidak disetel, sehingga rantai mencari [default] dan tidak menemukan apa pun.
  • Proses tidak melihat env shell Anda — manajer layanan, tugas cron, container, atau peluncuran IDE yang tidak mewarisi variabel yang Anda ekspor.
  • Tidak ada peran yang dilampirkan saat runtime — tugas ECS, instans EC2, atau Lambda tanpa peran IAM yang diharapkan, sehingga penyedia metadata tidak mengembalikan apa pun.
  • Muat terputus-putus: Pembatasan IMDS — beban kerja konkurensi tinggi yang mengganggu layanan metadata instans EC2 dapat menggagalkan pengambilan kredensial secara sporadis (penyebab umum kesalahan ini muncul "secara acak").
  • Kode browser tanpa sumber identitas — panggilan frontend memerlukan kredensial Cognito Identity Pool (atau serupa); tidak ada rantai ambien di browser.

Bagaimana cara memperbaikinya

  1. Pilih satu sumber kredensial dan verifikasi secara menyeluruh. Pemeriksaan tercepat: aws sts get-caller-identity di lingkungan same (pengguna yang sama, kontainer yang sama) yang menjalankan kode Anda.

  2. Pengembangan lokal: aws configure (menulis [default]), atau atur AWS_PROFILE=myprofile saat Anda hanya menggunakan profil bernama.

  3. DynamoDB Local / LocalStack: jangan bergantung pada rantai — teruskan kredensial dummy eksplisit bersama endpoint:

    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    
    const client = new DynamoDBClient({
      region: 'local',
      endpoint: 'http://localhost:8000',
      credentials: {accessKeyId: 'local', secretAccessKey: 'local'}
    });
  4. Dalam runtime AWS, lampirkan peran — profil instans di EC2, peran tugas di ECS/Fargate, peran eksekusi di Lambda — alih-alih mengirimkan kunci.

  5. Dalam kondisi konkurensi tinggi di EC2, buat klien satu kali (cakupan modul) sehingga kredensial diselesaikan dan di-cache, bukan diambil ulang per permintaan; percobaan ulang SDK ditambah klien bersama menyerap gangguan IMDS.

  6. Jangan gabungkan penyiapan kredensial SDK v2 dan v3 — konfigurasikan SDK mana pun yang benar-benar diimpor oleh kode Anda.

Periksa di DynoTable

Jika DynoTable mencantumkan tabel Anda, kredensial akan teratasi — masalahnya adalah sumber mana yang dibaca oleh proses Anda. Tambahkan profil yang sama di bawah Pengaturan → Profil, jalankan Uji Koneksi, dan bandingkan dengan aws sts get-caller-identity di shell yang sama yang digunakan aplikasi Anda.

Untuk Lokal, tetapkan titik akhir http://localhost:8000 dengan kredensial dummy local/local di profil. Lihat Menghubungkan ke AWS dan Instal. Buka tabel dengan ⌘K setelah terhubung. Jalankan kueri pengujian melalui Pembuat Kueri untuk mengonfirmasi penandatanganan berhasil.

Sumber

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.

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.