No se pudieron cargar las credenciales de ningún proveedor

TL;DR: El AWS SDK para JavaScript v3 recorrió toda su cadena de credenciales predeterminada: variables de entorno, SSO, perfiles de configuración/credenciales compartidos, identidad web y metadatos de contenedor/instancia. endpoints, y ninguno de ellos presentó credenciales. Proporcione a la cadena una fuente que pueda encontrar (env vars, aws configure, un rol adjunto), o pase credentials al client explícitamente, que para DynamoDB Local deberían ser valores ficticios de todos modos.

Qué significa

CredentialsProviderError: Could not load credentials from any providers

Cada solicitud a DynamoDB debe ir firmada con SigV4, así que antes de la primera llamada el SDK resuelve las credenciales a través de su cadena de proveedores. Este error es el resultado "no se encontró nada" de la cadena — se dispara antes de cualquier llamada de red a DynamoDB, y es el equivalente en JS v3 del Unable to locate credentials de boto3. No es un problema de permisos (eso sería AccessDeniedException) — no hay ninguna identidad en absoluto.

Por qué ocurre

  • No hay credenciales configuradas en ninguna parte — sin AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY en el entorno, sin ~/.aws/credentials, sin rol.
  • El perfil [default] no existe — solo tienes perfiles con nombre, pero AWS_PROFILE no está definido, así que la cadena busca [default] y no encuentra nada.
  • El proceso no ve el entorno de tu shell — un gestor de servicios, un cron, un contenedor o un IDE que se lanza sin heredar las variables que exportaste.
  • Ningún rol adjunto en el runtime — una tarea de ECS, una instancia de EC2 o una Lambda sin el rol IAM esperado, así que los proveedores de metadatos no devuelven nada.
  • Intermitente bajo carga: throttling de IMDS — las cargas de trabajo de alta concurrencia que machacan el servicio de metadatos de instancia de EC2 pueden fallar al obtener credenciales de forma esporádica (una causa conocida de que este error aparezca "aleatoriamente").
  • Código de navegador sin fuente de identidad — las llamadas desde el frontend necesitan credenciales de un Cognito Identity Pool (o similar); en un navegador no hay cadena de ambiente.

Cómo solucionarlo

  1. Elige una fuente de credenciales y verifícala de extremo a extremo. La comprobación más rápida: aws sts get-caller-identity en el mismo entorno (mismo usuario, mismo contenedor) en el que se ejecuta tu código.

  2. Desarrollo local: aws configure (escribe [default]), o define AWS_PROFILE=myprofile cuando solo usas perfiles con nombre.

  3. DynamoDB Local / LocalStack: no dependas de la cadena — pasa credenciales ficticias explícitas junto con el endpoint:

    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    
    const client = new DynamoDBClient({
      region: 'local',
      endpoint: 'http://localhost:8000',
      credentials: {accessKeyId: 'local', secretAccessKey: 'local'}
    });
  4. En runtimes de AWS, adjunta el rol — un perfil de instancia en EC2, un rol de tarea en ECS/Fargate, el rol de ejecución en Lambda — en lugar de enviar claves.

  5. Bajo alta concurrencia en EC2, crea el cliente una sola vez (ámbito de módulo) para que las credenciales se resuelvan y se cacheen en lugar de volver a obtenerse en cada solicitud; los reintentos del SDK más un cliente compartido absorben los tropiezos de IMDS.

  6. No mezcles configuraciones de credenciales de SDK v2 y v3 — configura el SDK que tu código realmente importa.

Inspecciónalo en DynoTable

Si DynoTable lista tus tablas, las credenciales resuelven — el problema es qué fuente lee tu proceso. Añade el mismo perfil en Settings → Profiles, ejecuta Test Connection y compáralo con aws sts get-caller-identity en la misma shell que usa tu aplicación.

Para Local, pon el endpoint http://localhost:8000 con credenciales ficticias local/local en el perfil. Consulta Conectar con AWS e Instalación. Abre tablas con ⌘K tras conectar. Lanza una consulta de prueba desde el Query Builder para confirmar que la firma funciona.

Fuentes

Errores relacionados

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

Un cliente de escritorio rápido para DynamoDB que ejecuta el SQL real que DynamoDB no puede — JOINs, GROUP BY, agregaciones — con edición visual y un agente de IA con tus propias claves de Bedrock.

Prueba gratuita de 30 días, sin tarjeta — después, el plan Free sin límite de tiempo.