Blog

Ansible-vault: gestión de datos sensibles

En su momento, cuando comenzamos a trabajar con Ansible como una de nuestras herramientas principales para la gestión de los sistemas y configuraciones de nuestros clientes, también implementamos el uso de repositorios para contener esta información. Así, nuestro equipo podría trabajar de forma dinámica con Ansible teniendo un control de versiones de los diferentes cambios que se iban realizando.

A pesar de ello, una parte importante de la información con la que trabajamos en nuestro día a día es delicada, ya sean contraseñas, certificados o ficheros con datos sensibles, y no podrían tratarse de cualquier forma.

A continuación vamos a enseñaros una forma fácil de gestionar esta información con la funcionalidad de Ansible-vault, disponible por defecto en Ansible desde la versión 1.5.

Los ejemplos que vamos a mostrar son básicos para empezar a trabajar con esta herramienta.

Tratamientos de ficheros

En esta primera parte veremos como cifrar, descifrar, visualizar y editar ficheros.

Crear un fichero cifrado

Para crear un fichero cifrado podemos utilizar el siguiente comando.

En este caso, nos solicitará que introduzcamos una contraseña de cifrado y nos abrirá nuestro editor de texto predeterminado. Una vez guardemos y salgamos del editor de texto se creará el fichero.

Ahora si visualizamos el contenido, por ejemplo con cat, veremos que el contenido está cifrado:

Debemos tener en cuenta que hasta la versión 2.4 de Ansible todas las tareas que se ejecuten juntas deben compartir la misma contraseña. Es decir, si tenemos varios ficheros cifrados que se usan de forma simultánea en el mismo playbook, se deben cifrar con la misma clave.

Cifrar un fichero que ya existe

Cuando necesitamos cifrar ficheros que ya existen podemos usar el siguiente comando:

Visualizar contenido de ficheros cifrados

En el caso de que necesitemos visualizar el contenido de un fichero que tenemos cifrado podemos utilizar:

Editar ficheros cifrados

Si lo que necesitamos es editar el contenido de alguno de los ficheros que ya tenemos cifrados podemos usar:

Descifrar ficheros

En el caso de que necesitemos descifrar alguno de los ficheros que tenemos cifrados podemos utilizar:

Cambiar clave de cifrado de ficheros

En el caso de que necesitemos modificar la clave de cifrado de alguno de nuestros ficheros podemos utilizar:

Tratamiento de variables

Aparte del tratamiento de ficheros, muchas veces necesitamos utilizar variables dentro de nuestro YAML que estén cifradas, pero no el contenido completo del YAML. Desde la versión de Ansible 2.3 nos permite hacer uso de variables cifradas.

En los siguientes apartados os enseñamos cómo cifrar y visualizar variables que podemos usar en nuestras configuraciones.

Cifrar variable

Para cifrar una variable utilizaremos encrypt_string dentro de Ansible-vault:

Visualizar variable cifrada

Si queremos visualizar alguna de las variables que tenemos cifradas podemos usar lo siguiente:

Ejecución de playbooks con contenido cifrado

Una vez tenemos nuestros ficheros cifrados y/o variables, ya podemos ejecutar nuestros playbooks de Ansible, pero tenemos que tener en cuenta que deberemos indicar la clave de cifrado.

Podemos indicarle esta contraseña de dos maneras:

  • Introduciendo la contraseña de forma interactiva.
  • Desde la versión 1.7 indicando un fichero donde está almacenada la contraseña.

Ejecución introduciendo contraseña de forma interactiva

Si queremos ejecutar un playbook que necesita hacer uso de ficheros y/o variables cifradas y que podamos indicar la contraseña de forma interactiva podemos usar:

Tened en cuenta que cada vez que sea necesario que el playbook consulte un fichero y/o contraseña cifrada, nos solicitará que introduzcamos la clave de cifrado.

Ejecución desatendida con contraseña almacenada en fichero

Si queremos ejecutar un playbook que necesita hacer uso de ficheros y/o variables cifradas, podemos indicarle un fichero donde está almacenada nuestra clave de cifrado:

Tened especial cuidado de que el fichero que almacena nuestras claves de cifrado tenga los permisos adecuados para que solo pueda ser utilizado por el usuario que ejecuta Ansible o usuarios autorizados.

Como podéis observar, es muy fácil mantener seguros las datos sensibles que tenemos dentro de nuestros repositorios.

Esperamos que os sea de utilidad esta guía de iniciación al uso de Ansible-vault.

 

Newsletter de STR Sistemas

Suscríbete a nuestra newsletter para recibir contenido interesante del mundo DevOps y artículos escritos por nuestros técnicos

¡Usamos cookies propias y de terceros para mejorar tu experiencia en esta web! Si sigues navegando, consientes y aceptas estas cookies en tu ordenador, móvil o tablet.

Más información sobre las cookies y cómo cambiar su configuración en tu navegador aquí.

x