
En este artículo aprenderemos ¿Qué es Ansible Vault? y cómo Proteja los datos confidenciales del cuaderno de estrategias con Ansible Vault Cifrando datos en Linux.
¿Qué es Ansible Vault?
Bóveda de Ansible es una función de ansible que le permite Guarde datos confidenciales como contraseñas o claves en archivos cifradosen lugar de que los datos aparezcan en texto claro en el guión o el personaje.
La autenticación y la autorización son dos capas importantes que controlan la parte de acceso de una aplicación de software. Cuando trabaja en un entorno colaborativo, no todos los datos son visibles para usted.
Del mismo modo, cuando usas Ansiblees posible que desee proteger cierta información confidencial, como claves API, contraseñas de bases de datos y tokens de acceso.
Tener esta información visible para todos no es bueno para la seguridad, especialmente si la almacena en un repositorio público.
en la siguiente sección Tutorial de la bóveda de Ansibleaprenderemos a cifrar un archivo o una cadena con ansible Vault para que protege tus secretos seguridad y como Use Ansible Vault en playbooks para proteger datos confidenciales con comandos de ejemplo.
Uso de los comandos de Ansible Vault
Ansible-vault viene con ansible instalado de forma predeterminada. Encienda su terminal y ejecute el siguiente comando que le dará una lista de opciones que se pueden usar con el comando ansible bóveda.
$ ansible-vault --help
Cifrar archivos con Ansible Vault
Si desea crear un nuevo archivo, escriba algunos datos en él y cifre, luego ejecute el siguiente comando.aquí «secretkey
« es el nombre del archivo.
$ ansible-vault create secretkey
Comprendamos qué sucede cuando ejecutamos este comando.
- Dado que este archivo no está disponible, se creará un archivo y se abrirá para escritura.
- Se le pedirá una contraseña para este archivo, que debe mantenerse a salvo. Recuerde que sin la contraseña no podrá descifrar el archivo otra vez.

Una vez cerrado el archivo, el contenido se cifrará. Si intenta abrir un archivo cifrado con una aplicación de edición/visualización de texto, verá algunos datos aleatorios como se muestra en la imagen a continuación.

En la primera línea, hay algunos metadatos que ansible usará internamente para el cifrado y descifrado. Como se puede ver en la primera línea, Algoritmo AES256 Se utiliza para cifrar archivos.
También puede cifrar archivos existentes.
Para cifrar archivos existentes, ejecute el siguiente comando. Se le pedirá nuevamente la contraseña de la bóveda que se usará para descifrar los archivos más adelante.
$ echo "api_key: 'XUITZ89776XX'" > secretkey2 # Writing random data to file
$ ansible-vault encrypt secretkey2

Cómo cambiar la contraseña de la bóveda de Ansible
Puede establecer una nueva contraseña de bóveda para cualquier archivo cifrado existente ejecutando el siguiente comando. Aquí debe recordar su contraseña anterior, primero se le pedirá, luego la nueva contraseña de la bóveda.
$ ansible-vault rekey secretkey2

Cómo descifrar archivos cifrados
Si desea ver el contenido original del archivo, hay varias formas de hacerlo.La primera forma es correr decrypt
El comando pone el archivo en forma no cifrada.
$ ansible-vault decrypt secretkey2

También puede ver el contenido de un archivo cifrado sin descifrarlo ejecutando el siguiente comando «view
« reemplazar»decrypt
«.
$ ansible-vault view secretkey2

diferencia entre y decrypt
y view
Sí, el primero eliminará el cifrado para ver el contenido original, pero el segundo simplemente descifrará e imprimirá el contenido mientras mantiene el archivo original cifrado.
Modificar el contenido de los archivos cifrados
Suponga que desea editar el contenido de un archivo cifrado. En este caso, puede descifrar las ediciones del archivo o volver a cifrar el archivo.Como alternativa, puede utilizar «edit
« comando para editar el contenido.
$ ansible-vault edit secretkey2

y»edit
«El comando es que no necesita descifrar el archivo y cifrarlo nuevamente. Abrirá el archivo para editarlo y lo cifrará automáticamente una vez que cierre el archivo.
Cifrar contenido con Ansible Playbook
Hasta ahora, hemos visto cómo cifrar y descifrar datos a nivel de archivo. También puede cifrar cadenas. Tomemos un ejemplo.
Tengo algunas variables para conexiones remotas que también contienen una contraseña de conexión. Para cifrar la contraseña, ejecute el siguiente comando.Aquí uso la contraseña como «clave».
Recuerde la contraseña de la bóveda requerida para descifrar la cadena.
$ ansible-vault encrypt_string "password"
En el libro de jugadas a continuación, creo algunas variables que simulan los detalles de conexión y «connect_pwd
« Los datos cifrados se almacenarán. estoy imprimiendo»connection_pwd
» Use las variables del módulo de depuración en la tarea.
- name: "Test playbook for ansible vault" gather_facts: False hosts: local vars: remote_user: produser default_role: prodrole connect_pwd: << COPY PASTE THE ENCRYPTED PASSWORD HERE >> tasks: - name: print the password debug: msg: "{{ connect_pwd }}"

Al ejecutar el libro de jugadas, debe usar --ask-vault-password
o --ask-vault-pass
El letrero le pedirá la contraseña de la bóveda para descifrar la cadena.
$ ansible-playbook playbook.yml --ask-vault-pass

Si lo intentas sin --ask-vault-password
o --ask-vault-pass
bandera, la tarea fallará con el siguiente error.
fatal: [master.anslab.com]: FAILED! => {"msg": "Attempting to decrypt but no vault secrets found"}
También puede almacenar la contraseña de la bóveda en un archivo y pasarla como parámetro a --vault-password-file
o --vault-pass-file
debate.
Al almacenar la contraseña de la bóveda en un archivo, Asegúrese de que se hayan establecido los permisos adecuados De esta forma, solo el propietario del archivo puede leer el contenido del archivo.
$ echo "password" > .secretkey
$ chmod 600 .secretkey
Creé un archivo llamado .secretkey
y establecer los permisos para 600Ahora este archivo se puede usar para descifrar las cadenas en mi libro de jugadas.
$ ansible-playbook --vault-password-file .secretkey playbook.yml
Almacenar contraseñas de Vault en archivos de configuración de Ansible
También puede almacenar la contraseña de la bóveda en ansible.cfg
documento. En este caso, puede ejecutar el comando del libro de jugadas sin ningún indicador de bóveda adicional.
vault_password_file = .secretkey
También puede establecer las siguientes variables de entorno que se utilizarán para todos los descifrados.
export ANSIBLE_VAULT_PASSWORD_FILE="./.secretkey"
En conclusión
En este momento, debe tener una comprensión general de cómo usar Ansible Vault para proteger sus secretos. Cifrar contenido con Ansible Vault es muy simple y no requiere ninguna herramienta externa.
Practique todos los ejemplos proporcionados en el artículo, que lo ayudarán a obtener más información sobre cómo Ansible Vault puede ayudarlo a proteger los datos confidenciales de Playbook.
recurso:
Imagen destacada por Jagritte Parajulí de concentrarse en.