Could not load credentials from any providers

TL;DR — JavaScript v3 için AWS SDK, tüm varsayılan kimlik bilgisi zincirini — ortam değişkenleri, SSO, paylaşılan config/credentials profilleri, web kimliği ve kapsayıcı/örnek meta veri uç noktalarını — dolaştı ve hiçbiri kimlik bilgisi üretmedi. Zincire bulabileceği bir kaynak verin (ortam değişkenleri, aws configure, ekli bir rol) ya da istemciye açıkça credentials iletin — ki bu DynamoDB Local için zaten kukla değerler olmalıdır.

Ne anlama gelir

CredentialsProviderError: Could not load credentials from any providers

Her DynamoDB isteği SigV4 ile imzalanmalıdır, bu yüzden ilk çağrıdan önce SDK, kimlik bilgilerini sağlayıcı zinciri aracılığıyla çözer. Bu hata, zincirin "hiçbir şey bulunamadı" sonucudur — DynamoDB'ye herhangi bir ağ çağrısından önce tetiklenir ve boto3'ün Unable to locate credentials hatasının JS v3 eşdeğeridir. Bir izin sorunu değildir (o AccessDeniedException olurdu) — hiç kimlik yoktur.

Neden olur

  • Hiçbir yerde yapılandırılmış kimlik bilgisi yok — ortamda AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY yok, ~/.aws/credentials yok, rol yok.
  • [default] profili yok — yalnızca adlandırılmış profilleriniz var ama AWS_PROFILE ayarlı değil, bu yüzden zincir [default] arar ve hiçbir şey bulamaz.
  • Süreç kabuğunuzun ortamını görmüyor — dışa aktardığınız değişkenleri devralmayan bir hizmet yöneticisi, cron işi, kapsayıcı veya IDE başlatması.
  • Çalışma zamanında ekli rol yok — beklenen IAM rolü olmayan bir ECS görevi, EC2 örneği veya Lambda, dolayısıyla meta veri sağlayıcıları hiçbir şey döndürmez.
  • Yük altında aralıklı: IMDS kısıtlaması — EC2 örnek meta veri hizmetini zorlayan yüksek eşzamanlılıklı iş yükleri, kimlik bilgisi getirmelerini ara sıra başarısızlığa uğratabilir (bu hatanın "rastgele" görünmesinin bilinen bir nedeni).
  • Kimlik kaynağı olmayan tarayıcı kodu — ön uç çağrıları Cognito Identity Pool (veya benzeri) kimlik bilgileri gerektirir; bir tarayıcıda ortam zinciri yoktur.

Nasıl düzeltilir

  1. Bir kimlik bilgisi kaynağı seçin ve onu baştan sona doğrulayın. En hızlı kontrol: kodunuzu çalıştıran aynı ortamda (aynı kullanıcı, aynı kapsayıcı) aws sts get-caller-identity.

  2. Yerel geliştirme: aws configure ([default] yazar) ya da yalnızca adlandırılmış profiller kullandığınızda AWS_PROFILE=myprofile ayarlayın.

  3. DynamoDB Local / LocalStack: zincire güvenmeyin — uç noktayla birlikte açık kukla kimlik bilgileri iletin:

    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    
    const client = new DynamoDBClient({
      region: 'local',
      endpoint: 'http://localhost:8000',
      credentials: {accessKeyId: 'local', secretAccessKey: 'local'}
    });
  4. AWS çalışma zamanlarında, rolü ekleyin — anahtar göndermek yerine EC2'de bir örnek profili, ECS/Fargate'te bir görev rolü, Lambda'da yürütme rolü.

  5. EC2'de yüksek eşzamanlılık altında, istemciyi bir kez oluşturun (modül kapsamı), böylece kimlik bilgileri istek başına yeniden getirilmek yerine çözülür ve önbelleğe alınır; SDK yeniden denemeleri artı paylaşılan bir istemci, IMDS aksaklıklarını soğurur.

  6. SDK v2 ve v3 kimlik bilgisi kurulumlarını karıştırmayın — kodunuzun gerçekten içe aktardığı SDK'yı yapılandırın.

Kimlik bilgileri çözüldüğünde, tüm hattı doğrulamanın en hızlı yolu veriye göz atmaktır — DynoTable AWS profillerinizle bağlanır (ve DynamoDB Local ile) ve tablolarınızı hemen gösterir; kimlik bilgilerini ~/.aws içinden tam olarak CLI'ın yaptığı gibi çözer.

DynoTable'da inceleyin

Tablolarınızı DynoTable listeliyorsa kimlik bilgileri çözülür; sorun, işleminizin hangi kaynağı okuduğundadır. Aynı profili Ayarlar → Profiller altına ekleyin, Bağlantıyı Test Et komutunu çalıştırın ve uygulamanızın kullandığı aynı kabuktaki aws sts get-caller-identity ile karşılaştırın.

Yerel için, profilde sahte local/local kimlik bilgileriyle http://localhost:8000 uç noktasını ayarlayın. Bkz. Connect to AWS ve Install. Bağlandıktan sonra tabloları ⌘K ile açın. İmzalamanın çalıştığını doğrulamak için Query Builder aracılığıyla bir test sorgusu çalıştırın.

Kaynaklar

İlgili hatalar

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.