Could not load credentials from any providers
TL;DR — El AWS SDK for JavaScript v3 recorrió toda su cadena de credenciales por defecto — variables de entorno, SSO, perfiles de config/credenciales compartidos, identidad web y los endpoints de metadatos del contenedor/instancia — y ninguno produjo credenciales. Dale a la cadena una fuente que pueda encontrar (variables de entorno, aws configure, un rol adjunto), o pasa credentials al cliente de forma explícita — que para DynamoDB Local deberían ser valores ficticios de todas formas.
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.
Una vez que las credenciales resuelven, explorar los datos es la forma más rápida de confirmar toda la tubería — la aplicación de escritorio DynoTable conecta con tus perfiles de AWS (y con DynamoDB Local) y muestra tus tablas de inmediato. ¿Componiendo la primera consulta? Empieza con el DynamoDB Expression Builder.
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.
- Missing region in config
- 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.