Impossibile caricare le credenziali da nessun provider

TL;DR: l'AWS SDK per JavaScript v3 ha percorso l'intera catena di credenziali predefinite (variabili di ambiente, SSO, profili di configurazione/credenziali condivisi, identità web ed endpoint di metadati contenitore/istanza) e nessuno di essi ha prodotto credenziali. Fornisci alla catena una fonte che possa trovare (var env, aws configure, un ruolo collegato) o passa esplicitamente le credenziali al client, che per DynamoDB Local dovrebbero comunque essere valori fittizi.

Cosa significa

CredentialsProviderError: Could not load credentials from any providers

Ogni DynamoDB richiesta deve essere firmata SigV4, quindi prima della prima chiamata l'SDK risolve le credenziali attraverso la sua catena di provider. Questo errore è il risultato "niente trovato" della catena: si attiva prima di qualsiasi chiamata di rete a DynamoDB ed è l'equivalente JS v3 di Impossibile individuare credenziali di boto3. Non è un problema di permessi (sarebbe AccessDeniedException) — non esiste alcuna identità.

Perché succede

  • Nessuna credenziale configurata ovunque — nessun AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY nell'ambiente, nessun ~/.aws/credentials, nessun ruolo.
  • Il profilo [default] non esiste: hai solo profili con nome, ma AWS_PROFILE non è impostato, quindi la catena cerca [default] e non trova nulla.
  • Il processo non vede l'ambiente della tua shell: un gestore di servizi, un lavoro cron, un contenitore o un avvio IDE che non eredita le variabili che hai esportato.
  • Nessun ruolo associato nel runtime: un'attività ECS, un'istanza EC2 o Lambda senza il ruolo IAM previsto, quindi i fornitori di metadati non restituiscono nulla.
  • Intermittente sotto carico: limitazione IMDS: i carichi di lavoro ad alta concorrenza che martellano il servizio di metadati dell'istanza EC2 possono non riuscire sporadicamente nel recupero delle credenziali (una causa nota della visualizzazione "casuale" di questo errore).
  • Codice del browser senza un'origine identità: le chiamate frontend richiedono credenziali Cognito Identity Pool (o simili); non esiste una catena ambientale in un browser.

Come risolverlo

  1. Scegli un'origine credenziale e verificala end-to-end. Controllo più rapido: aws sts get-caller-identity nello stesso ambiente (stesso utente, stesso contenitore) che esegue il tuo codice.

  2. Sviluppo locale: aws configure (scrive [default]) o imposta AWS_PROFILE=myprofile quando utilizzi solo profili denominati.

  3. DynamoDB Locale/LocalStack: non fare affidamento sulla catena: passa credenziali fittizie esplicite con l'endpoint:

    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    
    const client = new DynamoDBClient({
      region: 'local',
      endpoint: 'http://localhost:8000',
      credentials: {accessKeyId: 'local', secretAccessKey: 'local'}
    });
  4. Nei runtime AWS, allega il ruolo: un profilo di istanza su EC2, un ruolo di attività su ECS/Fargate, il ruolo di esecuzione su Lambda, invece di spedire le chiavi.

  5. In condizioni di concorrenza elevata su EC2, creare il client una volta (ambito del modulo) in modo che le credenziali vengano risolte e memorizzate nella cache anziché recuperate nuovamente per richiesta; I tentativi dell'SDK e un client condiviso assorbono i singhiozzi IMDS.

  6. Non mischiare le configurazioni delle credenziali SDK v2 e v3: configura l'SDK effettivamente importato dal tuo codice.

Ispeziona in DynoTable

Se DynoTable elenca le tue tabelle, le credenziali si risolvono: il problema è quale fonte legge il tuo processo. Aggiungi lo stesso profilo in Impostazioni → Profili, esegui Test connessione e confrontalo con "aws sts get-caller-identity" nella stessa shell utilizzata dalla tua app.

Per Locale, imposta l'endpoint http://localhost:8000 con credenziali fittizie local/local sul profilo. Consulta Connetti a AWS e Installa. Apri le tabelle con ⌘K dopo la connessione. Esegui una query di prova tramite il Query Builder per confermare il funzionamento della firma.

Fonti

Errori correlati

Riferimenti

Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.