¿Alguien sabe si hay una buena biblioteca de NodeJS para conectarse a la bóveda de hashicorp desde un AWS Lambda usando la autenticación IAM?
Algo similar a HVAC para Python sería bueno.
Intenté usar node-vault-client pero no hay buenos ejemplos de autenticación de IAM y no parece haber tenido una actualización desde 2019, por lo que no estoy seguro de si se mantiene activamente.
Logré que funcionara usando node-vault-client pero tuve que hacer cambios en la biblioteca porque no te permite pasar un encabezado de espacio de nombres. He planteado un PR que agrega un nuevo campo para resolver el problema.
Aquí hay una muestra de mi código:
const VaultClient = require('node-vault-client'); const vaultClient = VaultClient.boot('main', { api: { url: 'https://my-vault-url.com' }, auth: { type: 'iam', config: { role: 'my-role', iam_server_id_header_value: 'my-vault-url.com', namespace: 'my-namespace', // new option added in my pull request credentials: new AWS.Credentials({ accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, sessionToken: process.env.AWS_SESSION_TOKEN, }), }, }, }); vaultClient .read('secrets/data/path/to/secret') .then((secrets: any) => { console.log(`MY SECRET IS ${secrets.__data.data['MY_SECRET_KEY']}`); }) .catch((e: Error) => { console.error('Error connecting to vault .....'); console.error(e); });