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 providers

Toda 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 isso acontece

  • Nenhuma credencial configurada em lugar nenhum — nem AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY no ambiente, nem ~/.aws/credentials, nem role.
  • O profile [default] não existe — você só tem profiles nomeados, mas AWS_PROFILE nã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

  1. Escolha uma fonte de credencial e verifique-a de ponta a ponta. Verificação mais rápida: aws sts get-caller-identity no mesmo ambiente (mesmo usuário, mesmo contêiner) que roda seu código.

  2. Desenvolvimento local: aws configure (escreve [default]), ou defina AWS_PROFILE=myprofile quando você só usa profiles nomeados.

  3. 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'}
    });
  4. 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.

  5. 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.

  6. Não misture setups de credenciais do SDK v2 e v3 — configure o SDK que seu código realmente importa.

Inspecione no DynoTable

Se o DynoTable lista suas tabelas, as credenciais resolvem — o problema é qual fonte o seu processo lê. Adicione o mesmo profile em Configurações → Perfis, execute Testar conexão e compare com aws sts get-caller-identity no mesmo shell que seu app usa.

Para o Local, defina o endpoint http://localhost:8000 com credenciais dummy local/local no profile. Consulte Conectar ao AWS e Instalar. Abra as tabelas com ⌘K depois de conectar. Rode uma consulta de teste pelo Query Builder para confirmar que a assinatura funciona.

Fontes

Erros relacionados

Referências

Última verificação em 13/07/2026 em relação à documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.