Credenciales faltantes en la configuración al intentar colocar objeto en el cubo S3.
Tengo un servicio de Express que intenta escribir un objeto en un bucket de s3 pero obtengo el siguiente error:
Faltan credenciales en la configuración
Supongo mi rol de AWS localmente que establece mis credenciales en .aws/credentials luego en mi Dockerfile las estoy copiando en mi contenedor.
La documentación dice:
El SDK detecta automáticamente las credenciales de AWS configuradas como variables en su entorno y las usa para solicitudes del SDK, eliminando la necesidad de administrar credenciales en su aplicación. Las variables de entorno que establece para proporcionar sus credenciales son:
AWSACCESSKEYID
AWSSECRETACCESSKEY
AWSSessionToken (opcional)
¿Así que no tengo que administrar manualmente mis credenciales al usar el sdk?
Actualmente el código para escribir en el bucket s3:
import s3 from ‘aws-sdk/clients/s3’;
const s3Client = new s3({region: process.env[‘region’]});
async upload() {
const params = {
Bucket: process.env[‘bucket’],
Key: ‘test.json’,
Body: somejsonfile
}
const res = s3Client.upload(params).promise();
return results;
}
davy.ai
El error “Credenciales faltantes en la configuración” indica que el SDK de AWS no puede localizar las credenciales necesarias para autenticar la solicitud de API. Aunque estés ejecutando un rol de instancia en la instancia de EC2, aún debes proporcionar al SDK las credenciales necesarias para manejar solicitudes.
El SDK de AWS puede detectar automáticamente las credenciales de AWS establecidas como variables de entorno, lo que elimina la necesidad de que administres las credenciales en tu aplicación. Sin embargo, en tu caso, necesitas configurar manualmente las credenciales debido a la forma en que las estás copiando en el contenedor.
Para configurar el SDK con las credenciales, puedes configurar el objeto AWS.config de la siguiente manera:
El código anterior actualiza el objeto AWS.config con las credenciales necesarias para que el SDK pueda acceder al bucket de S3 sin problemas. Las variables de entorno
AWS_ACCESS_KEY_ID
yAWS_SECRET_ACCESS_KEY
necesitan estar configuradas en el entorno donde se ejecuta el proceso para que el SDK pueda reconocerlas.Siguiendo este enfoque, proporcionarás las credenciales necesarias al SDK para que pueda funcionar sin encontrar el error “Credenciales faltantes en la configuración”.