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 providersCada 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_KEYen el entorno, sin~/.aws/credentials, sin rol. - El perfil
[default]no existe — solo tienes perfiles con nombre, peroAWS_PROFILEno 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
Elige una fuente de credenciales y verifícala de extremo a extremo. La comprobación más rápida:
aws sts get-caller-identityen el mismo entorno (mismo usuario, mismo contenedor) en el que se ejecuta tu código.Desarrollo local:
aws configure(escribe[default]), o defineAWS_PROFILE=myprofilecuando solo usas perfiles con nombre.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'} });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.
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.
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
- Set credentials in Node.js — AWS SDK for JavaScript v3 (verificado el 2026-07-13)
- AWS SDKs and Tools standardized credential providers (verificado el 2026-07-13)
Errores relacionados
- Unable to locate credentials (boto3) — el mismo fallo en Python.
- The security token included in the request is invalid — credenciales encontradas, pero rechazadas.
- Falta la región en la configuración
- Aprende: Ejecutar DynamoDB Local
Referencias
- 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 por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.