Cómo usar Ansible Vault en Playbooks para proteger datos confidenciales-Parte 10

Cómo usar Ansible Vault en Playbooks para proteger datos confidenciales-Parte 10

A medida que vayas usando Ansible, es posible que debas ingresar información confidencial o secreta en los libros de jugadas. Esto incluye claves públicas y privadas SSH, contraseñas y certificados SSL, por mencionar solo algunos. Como ya sabemos, es una mala práctica guardar esta información sensible en texto plano por razones obvias. Esta información debe mantenerse bajo llave porque solo podemos imaginar lo que sucedería si los piratas informáticos o usuarios no autorizados se apoderaran de ella.

Afortunadamente, Ansible nos proporciona una función útil conocida como Ansible Vault. Como su nombre indica, el Ansible Vault. ayuda a proteger información secreta vital, como hemos comentado anteriormente. Ansible Vault. puede cifrar variables, o incluso archivos completos y libros de jugadas YAML, como demostraremos más adelante. Es una herramienta muy útil y fácil de usar que requiere la misma contraseña para encriptar y desencriptar archivos.

Ahora profundicemos y tengamos una descripción general de las diversas operaciones que se pueden llevar a cabo usando Ansible Vault.

Cómo crear un archivo cifrado en Ansible

Si desea crear un archivo Playbook. cifrado, simplemente use el ansible-vault create. y proporcione el nombre de archivo como se muestra.

# ansible-vault create filename

Por ejemplo, para crear un archivo cifrado mysecrets.yml. ejecute el comando.

# ansible-vault create mysecrets.yml freestar.config.enabled_slots.push

A partir de entonces, se le pedirá una contraseña y después de confirmar, se abrirá una nueva ventana usando el editor vi donde puede comenzar a escribir sus obras.

 Cree un archivo cifrado en Ansible  Cree un archivo cifrado en Ansible Crear un archivo cifrado en Ansible

A continuación se muestra una muestra de información. Una vez que haya terminado, simplemente guarde y salga del libro de jugadas. Y eso es todo al crear un archivo cifrado.

 Archivo cifrado en Ansible  Archivo cifrado en Ansible Archivo cifrado en Ansible

Para verificar el cifrado del archivo, use el comando cat como se muestra.

# cat mysecrets.yml Verificar archivo cifrado en Ansible  Verificar archivo cifrado en Ansible Verificar archivo cifrado en Ansible

Cómo ver un archivo cifrado en Ansible

Si desea ver un archivo cifrado, simplemente pase el ansible-vault view. como se muestra a continuación.

# ansible-vault view mysecrets.yml

Una vez más, se le pedirá una contraseña. Una vez más, tendrá acceso a su información.

 Ver archivo cifrado en Ansible  Ver archivo cifrado en Ansible Ver Archivo cifrado en Ansible

Cómo editar un archivo cifrado en Ansible

Para realizar cambios en un archivo cifrado, utilice el comando ansible-vault edit. como se muestra.

# ansible-vault edit mysecrets.yml

Como siempre, proporcione la contraseña y luego proceda a editar el archivo.

 Editar archivo cifrado en Ansible  Editar archivo cifrado en Ansible Editar archivo cifrado en Ansible

Una vez que haya terminado editar, guardar y salir del editor de vim.

Cómo cambiar la contraseña de Ansible Vault

En caso de que sienta la necesidad de cambiar la contraseña de Ansible Vault, puede hacerlo fácilmente usando el ansible-vault rekey. como se muestra a continuación.

# ansible-vault rekey mysecrets.yml  Cambiar contraseña de Ansible Vault Cambiar la contraseña de la bóveda de Ansible Cambiar la contraseña de la bóveda de Ansible

Esto le solicita la contraseña de la bóveda y luego le solicita que ingrese la nueva contraseña y luego la confirme.

Cómo cifrar un archivo no cifrado en Ansible

Suponga que desea cifrar un archivo no cifrado, puede hacerlo ejecutando el comando ansible-vault encrypt. como se muestra .

# ansible-vault encrypt Classified.txt Encriptar un no encriptado Archivo  Cifrar un archivo sin cifrar Cifrar un archivo sin cifrar

Puede ver el archivo más tarde con la comando cat como se indica a continuación.

 Ver cifrado Archivo  Ver archivo cifrado Ver archivo cifrado

Cómo descifrar un archivo cifrado

Para ver el contenido de un archivo cifrado, simplemente descifre el archivo usando el cifrado de ansible-vault. como se ilustra en el ejemplo a continuación.

# ansible-vault descifrar Classified.txt  Descifrar un archivo cifrado  Descifrar un archivo cifrado Descifrar un archivo cifrado

Cómo cifrar variables específicas en Ansible

Además, la bóveda de Ansible le otorga la capacidad de cifrar ciertas variables. Esto se hace usando el comando ansible-vault encrypt_string. como se muestra.

# ansible-vault encrypt_string  Variables específicas cifradas en Ansible  Variables específicas cifradas en Ansible Variables específicas cifradas en Ansible

La bóveda de Ansible le pedirá la contraseña y luego le pedirá que la confirme. A continuación, escriba el valor de la cadena que desea cifrar. Finalmente, presione ctrl + d. A partir de entonces, puede comenzar a asignar el valor cifrado en un libro de jugadas.

Esto se puede lograr en una sola línea como se muestra a continuación.

# ansible-vault encrypt_string ‘string’–name ‘variable_name’  Asignar valor cifrado en Ansible Playbook Asignar valor cifrado en Ansible Playbook Asignar valor cifrado en Ansible Playbook

Cómo descifrar un archivo de Playbook durante el tiempo de ejecución

Si tiene un archivo de Playbook y desea descifrarlo durante el tiempo de ejecución, utilice el-opción ask-vault-pass como se ilustra.

# ansible-playbook deploy.yml–ask-vault-pass  Descifrar Archivo de libro de jugadas durante el tiempo de ejecución  Descifrar archivo de Playbook durante el tiempo de ejecución Descifrar archivo de Playbook durante el tiempo de ejecución

Este descifra todos los archivos que se utilizan en el libro de jugadas siempre que se hayan cifrado con la misma contraseña.

Las solicitudes de contraseña pueden resultar molestas en ocasiones. Estas indicaciones hacen que la automatización sea insostenible, especialmente cuando la automatización es clave. Para agilizar el proceso de descifrar los libros de jugadas durante el tiempo de ejecución, se recomienda tener un archivo de contraseña separado que contenga la contraseña de la bóveda de Ansible. Este archivo se puede pasar durante el tiempo de ejecución como se muestra.

# ansible-playbook deploy.yml–vault-password-file/home/tecmint/vault_pass.txt

Esto nos lleva a la conclusión de este tema y la serie de automatización Ansible. Esperamos que los tutoriales le hayan aportado conocimientos útiles sobre cómo puede automatizar tareas en varios servidores desde un sistema central.