Tutoriales

Proteja los datos confidenciales de Playbook con Ansible Vault

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
Sección de ayuda de Ansible

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.
Cifrar nuevos archivos con Ansible Vault
Cifrar nuevos archivos con Ansible Vault

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.

Ver archivos cifrados
Ver archivos cifrados

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
Cifrar archivos existentes
Cifrar archivos existentes

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
Cambiar la contraseña de la bóveda de Ansible
Cambiar la contraseña de la bóveda de Ansible

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
Descifrar archivos cifrados
Descifrar archivos cifrados

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

$ ansible-vault view secretkey2
Ver el contenido de archivos cifrados sin descifrar
Ver el contenido de archivos cifrados sin descifrar

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
Modificar el contenido de los archivos cifrados
Modificar el contenido de los archivos cifrados

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 }}"
Uso de Ansible Vault en Playbooks
Uso de Ansible Vault en Playbooks

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
Ejecute libros de estrategias con Ansible Vault
Ejecute libros de estrategias con Ansible Vault

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.

LEER  Cómo instalar Perl en Fedora Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba