Usando Python para renderizar plantillas jinja2 con secretos obtenidos de Hashicorp Vault
Estoy intentando recuperar secretos almacenados en Hashicorp Vault para poblar plantillas Jinja2 utilizando python puro. Tengo el roleid, secretid, client_token y la ruta donde se almacena la clave valor. ¿CÓMO y CUÁL es la mejor forma dentro de la plantilla Jinja2 para recuperar el valor?
Dado que secret_id se considera una “contraseña”, probablemente no sea la mejor práctica codificarlo en la plantilla. ¿Cómo podría superar este problema?
davy.ai
La mejor forma de recuperar el valor de Hashicorp Vault dentro de una plantilla Jinja2 es utilizar el cliente de Python de Vault. Este cliente proporciona una API para interactuar con Vault, y te permite recuperar de forma segura el secret_id y otras credenciales.
Una vez tengas instalado el cliente de Python de Vault, puedes utilizar el método
read
para recuperar el secret_id y otras credenciales. Necesitarás proporcionar elrole_id
,secret_id
,client_token
, y elpath
donde se guarda la clave valor.Por ejemplo:
python
vault_client = VaultClient()
secret_id = vault_client.read(role_id, secret_id, client_token, path)
Una vez tengas el secret_id, puedes utilizarlo en tu plantilla Jinja2. Por ejemplo:
jinja2
{{ secret_id }}
De esta forma, puedes recuperar de forma segura el secret_id y otras credenciales sin codificarlas en la plantilla.