Estoy desarrollando una aplicación Node.js que se implementa en una instancia EC2. Estoy usando AWS SDK para JavaScript. He probado tanto v2 como v3. Mi problema es que cada vez que hago una llamada a cualquier servicio de AWS en mi aplicación, aparece un error que dice que faltan las credenciales. Sin embargo, según la documentación, la asignación de un rol de IAM a la instancia EC2 debería permitir que el SDK recupere automáticamente las credenciales: Documentación de AWS . Creo que he agregado correctamente el rol de IAM con permisos suficientes para la instancia de EC2, por lo que no entiendo por qué las solicitudes no se procesan. No quiero usar variables de entorno, ya que entonces tendría que usarlas manualmente en mi código. Cualquier sugerencia de cómo depurar este problema o ideas sobre cuál podría ser el problema, son muy apreciadas.
Por ejemplo, una llamada se realiza de la siguiente manera:
const client = new CloudFormationClient({ region: "eu-central-1" }); const params = { StackStatusFilter: [ "CREATE_IN_PROGRESS" ] }; const command = new ListStacksCommand(params); client.send(command).then( (data) => { console.log(data); }, (error) => { console.log(error); } );El error es simplemente: Error: Falta la credencial. Esto se origina en console.log (error).
He intentado con múltiples roles, pero incluso con AdministratorAccess ocurre el mismo error. Como referencia, los permisos son:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] }