Could not load credentials from any providers
TL;DR — Das AWS SDK for JavaScript v3 ist seine komplette Standard-Credential-Kette durchgegangen — Umgebungsvariablen, SSO, Profile aus Shared Config/Credentials, Web Identity und die Container-/Instanz-Metadaten-Endpunkte — und keine davon hat Anmeldedaten geliefert. Gib der Kette eine Quelle, die sie findet (Umgebungsvariablen, aws configure, eine angehängte Rolle), oder übergib dem Client credentials explizit — was für DynamoDB Local ohnehin Dummy-Werte sein sollten.
Was es bedeutet
CredentialsProviderError: Could not load credentials from any providersJede DynamoDB-Anfrage muss SigV4-signiert sein, also löst das SDK vor dem ersten Aufruf Credentials über seine Provider-Chain auf. Dieser Fehler ist das „nichts gefunden"-Ergebnis der Chain — er feuert vor jedem Netzwerkaufruf an DynamoDB und ist das JS-v3-Äquivalent zu boto3s Unable to locate credentials. Es ist kein Berechtigungsproblem (das wäre AccessDeniedException) — es gibt überhaupt keine Identität.
Warum es passiert
- Nirgendwo Credentials konfiguriert — kein
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYin der Umgebung, kein~/.aws/credentials, keine Rolle. - Das
[default]-Profil existiert nicht — du hast nur benannte Profile, aberAWS_PROFILEist nicht gesetzt, sodass die Chain nach[default]sucht und nichts findet. - Der Prozess sieht die Env deiner Shell nicht — ein Service-Manager, Cron-Job, Container oder IDE-Start, der die exportierten Variablen nicht erbt.
- Keine Rolle in der Runtime angehängt — ein ECS-Task, eine EC2-Instanz oder Lambda ohne die erwartete IAM-Rolle, sodass die Metadata-Provider nichts zurückgeben.
- Sporadisch unter Last: IMDS-Throttling — hochparallele Workloads, die den EC2-Instance-Metadata-Service hämmern, können Credential-Fetches sporadisch fehlschlagen lassen (eine bekannte Ursache, dass dieser Fehler „zufällig" auftritt).
- Browser-Code ohne Identitätsquelle — Frontend-Aufrufe brauchen Cognito-Identity-Pool- (oder ähnliche) Credentials; im Browser gibt es keine Umgebungs-Chain.
So behebst du es
Wähle eine Credential-Quelle und verifiziere sie durchgängig. Schnellster Check:
aws sts get-caller-identityin derselben Umgebung (gleicher User, gleicher Container), die deinen Code ausführt.Lokale Entwicklung:
aws configure(schreibt[default]), oder setzeAWS_PROFILE=myprofile, wenn du nur benannte Profile nutzt.DynamoDB Local / LocalStack: verlass dich nicht auf die Chain — übergib explizite Dummy-Credentials mit dem Endpoint:
import {DynamoDBClient} from '@aws-sdk/client-dynamodb'; const client = new DynamoDBClient({ region: 'local', endpoint: 'http://localhost:8000', credentials: {accessKeyId: 'local', secretAccessKey: 'local'} });In AWS-Runtimes hänge die Rolle an — ein Instance-Profile auf EC2, eine Task-Rolle auf ECS/Fargate, die Execution-Rolle auf Lambda — statt Keys auszuliefern.
Unter hoher Parallelität auf EC2 erstelle den Client einmal (Modul-Scope), sodass Credentials aufgelöst und gecacht statt pro Anfrage neu geholt werden; SDK-Retries plus ein gemeinsamer Client fangen IMDS-Aussetzer ab.
Mische keine SDK-v2- und v3-Credential-Setups — konfiguriere das SDK, das dein Code tatsächlich importiert.
Sobald Credentials aufgelöst sind, ist das Durchsuchen der Daten der schnellste Weg, die gesamte Pipeline zu bestätigen — DynoTable verbindet sich mit deinen AWS-Profilen (und DynamoDB Local) und zeigt deine Tabellen sofort, wobei es Credentials aus ~/.aws genauso auflöst wie die CLI.
In DynoTable prüfen
Wenn DynoTable lists your tables, credentials resolve — ist das Problem, welche Quelle dein Prozess liest. Füge dasselbe Profil unter Einstellungen → Profile, run Verbindung testen, und vergleiche mit aws sts get-caller-identity in derselben Shell, die deine App nutzt.
Für Local, setze Endpoint http://localhost:8000 mit Dummy-local/local-Credentials auf dem Profil. Siehe Mit AWS verbinden und Installation. Öffne Tabellen mit ⌘K nachdem connect. Führe eine Test-Query über den Query Builder um zu bestätigen, dass Signing funktioniert.
Quellen
- Set credentials in Node.js — AWS SDK for JavaScript v3 (verifiziert 2026-07-13)
- AWS SDKs and Tools standardized credential providers (verifiziert 2026-07-13)
Verwandte Fehler
- Unable to locate credentials (boto3) — derselbe Fehler in Python.
- The security token included in the request is invalid — Credentials gefunden, aber abgewiesen.
- Missing region in config
- Learn: Running DynamoDB Local
Referenzen
- Set credentials in Node.js — AWS SDK for JavaScript v3 Developer Guide (the default credential provider chain)
- AWS SDKs and Tools standardized credential providers — AWS SDKs and Tools Reference Guide
- AWS Signature Version 4 for API requests — IAM User Guide (why every request needs signed credentials)
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.