Could not load credentials from any providers
TL;DR — O AWS SDK para JavaScript v3 percorreu toda a sua cadeia de credenciais padrão — variáveis de ambiente, SSO, profiles de config/credentials compartilhados, web identity e os endpoints de metadata de contêiner/instância — e nenhum deles produziu credenciais. Dê à cadeia uma fonte que ela consiga encontrar (variáveis de ambiente, aws configure, uma role anexada), ou passe credentials ao cliente explicitamente — o que para o DynamoDB Local devem ser valores dummy de qualquer forma.
O que significa
CredentialsProviderError: Could not load credentials from any providersToda requisição do DynamoDB precisa ser assinada com SigV4, então antes da primeira chamada o SDK resolve as credenciais através da sua cadeia de providers. Este erro é o resultado "nada encontrado" da cadeia — ele dispara antes de qualquer chamada de rede ao DynamoDB, e é o equivalente no JS v3 do Unable to locate credentials do boto3. Não é um problema de permissões (isso seria AccessDeniedException) — não há identidade nenhuma.
Por que acontece
- Nenhuma credencial configurada em lugar nenhum — nem
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYno ambiente, nem~/.aws/credentials, nem role. - O profile
[default]não existe — você só tem profiles nomeados, masAWS_PROFILEnão está definido, então a cadeia procura por[default]e não encontra nada. - O processo não enxerga o ambiente do seu shell — um gerenciador de serviço, cron job, contêiner ou lançamento de IDE que não herda as variáveis que você exportou.
- Nenhuma role anexada no runtime — uma task ECS, instância EC2 ou Lambda sem a role IAM esperada, então os providers de metadata não retornam nada.
- Intermitente sob carga: throttling do IMDS — cargas de alta concorrência martelando o serviço de metadata da instância EC2 podem falhar buscas de credenciais esporadicamente (uma causa conhecida deste erro aparecer "aleatoriamente").
- Código de browser sem uma fonte de identidade — chamadas de frontend precisam de credenciais do Cognito Identity Pool (ou similar); não há cadeia ambiente em um browser.
Como corrigir
Escolha uma fonte de credencial e verifique-a de ponta a ponta. Verificação mais rápida:
aws sts get-caller-identityno mesmo ambiente (mesmo usuário, mesmo contêiner) que roda seu código.Desenvolvimento local:
aws configure(escreve[default]), ou definaAWS_PROFILE=myprofilequando você só usa profiles nomeados.DynamoDB Local / LocalStack: não confie na cadeia — passe credenciais dummy explícitas com o endpoint:
import {DynamoDBClient} from '@aws-sdk/client-dynamodb'; const client = new DynamoDBClient({ region: 'local', endpoint: 'http://localhost:8000', credentials: {accessKeyId: 'local', secretAccessKey: 'local'} });Em runtimes da AWS, anexe a role — um instance profile no EC2, uma task role no ECS/Fargate, a execution role no Lambda — em vez de enviar chaves.
Sob alta concorrência no EC2, crie o cliente uma vez (escopo de módulo) para que as credenciais sejam resolvidas e cacheadas em vez de rebuscadas por requisição; retries do SDK mais um cliente compartilhado absorvem soluços do IMDS.
Não misture setups de credenciais do SDK v2 e v3 — configure qualquer SDK que seu código realmente importa.
Depois que as credenciais resolvem, navegar pelos dados é a forma mais rápida de confirmar todo o pipeline — o app desktop DynoTable conecta-se com seus profiles da AWS (e o DynamoDB Local) e mostra suas tabelas imediatamente. Compondo a primeira consulta? Comece com o DynamoDB Expression Builder.
Erros relacionados
- Unable to locate credentials (boto3) — a mesma falha em Python.
- The security token included in the request is invalid — credenciais encontradas, mas rejeitadas.
- Missing region in config
- Aprenda: Running DynamoDB Local
Referências
- 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)
Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.