Introducció a Ansible Vault

Ansible Vault és una eina que permet xifrar dades sensibles, com ara contrasenyes o claus SSH, dins dels fitxers de configuració d'Ansible. Això és especialment útil per mantenir la seguretat i la integritat de la informació confidencial quan es treballa en entorns col·laboratius o es comparteixen playbooks.

Conceptes Clau

  • Xifratge: Ansible Vault utilitza AES (Advanced Encryption Standard) per xifrar i desxifrar dades.
  • Fitxers Vault: Fitxers que contenen dades xifrades.
  • Paraula de pas (password): Utilitzada per xifrar i desxifrar els fitxers Vault.

Creant un Fitxer Vault

Per crear un fitxer Vault, utilitzem la comanda ansible-vault create. Aquesta comanda obrirà un editor de text on podem introduir les dades que volem xifrar.

Exemple

ansible-vault create secret.yml

Després d'executar aquesta comanda, se'ns demanarà una paraula de pas per xifrar el fitxer. Un cop introduïda, s'obrirà l'editor de text per afegir el contingut.

# secret.yml
db_password: "my_secret_password"

Editant un Fitxer Vault

Per editar un fitxer Vault existent, utilitzem la comanda ansible-vault edit.

Exemple

ansible-vault edit secret.yml

Se'ns demanarà la paraula de pas per desxifrar el fitxer i, a continuació, s'obrirà l'editor de text per fer les modificacions necessàries.

Xifrant Fitxers Existents

Si ja tenim un fitxer que volem xifrar, podem utilitzar la comanda ansible-vault encrypt.

Exemple

ansible-vault encrypt existing_file.yml

Després d'executar aquesta comanda, se'ns demanarà una paraula de pas per xifrar el fitxer.

Desxifrant Fitxers

Per desxifrar un fitxer Vault, utilitzem la comanda ansible-vault decrypt.

Exemple

ansible-vault decrypt secret.yml

Se'ns demanarà la paraula de pas per desxifrar el fitxer, i el contingut es desxifrarà i es guardarà en text pla.

Utilitzant Fitxers Vault en Playbooks

Podem utilitzar fitxers Vault en els nostres playbooks de la mateixa manera que utilitzem qualsevol altre fitxer de variables. Ansible gestionarà automàticament el desxifratge quan s'executi el playbook.

Exemple de Playbook

---
- name: Exemple d'ús de Vault
  hosts: localhost
  vars_files:
    - secret.yml
  tasks:
    - name: Mostra la contrasenya de la base de dades
      debug:
        msg: "La contrasenya de la base de dades és {{ db_password }}"

Canviant la Paraula de Pas

Si necessitem canviar la paraula de pas d'un fitxer Vault, utilitzem la comanda ansible-vault rekey.

Exemple

ansible-vault rekey secret.yml

Se'ns demanarà la paraula de pas actual i, a continuació, la nova paraula de pas.

Exercicis Pràctics

Exercici 1: Creació i Ús d'un Fitxer Vault

  1. Crea un fitxer Vault anomenat credentials.yml que contingui una variable api_key amb un valor fictici.
  2. Escriu un playbook que utilitzi aquest fitxer Vault i mostri el valor de api_key utilitzant el mòdul debug.

Solució

  1. Crear el fitxer Vault:
ansible-vault create credentials.yml

Contingut del fitxer:

# credentials.yml
api_key: "my_secret_api_key"
  1. Escriure el playbook:
---
- name: Exemple d'ús de Vault
  hosts: localhost
  vars_files:
    - credentials.yml
  tasks:
    - name: Mostra l'API Key
      debug:
        msg: "L'API Key és {{ api_key }}"

Exercici 2: Xifrar un Fitxer Existents

  1. Crea un fitxer anomenat config.yml amb una variable db_user i un valor fictici.
  2. Xifra el fitxer utilitzant Ansible Vault.

Solució

  1. Crear el fitxer config.yml:
# config.yml
db_user: "my_db_user"
  1. Xifrar el fitxer:
ansible-vault encrypt config.yml

Resum

En aquesta secció hem après a utilitzar Ansible Vault per xifrar i gestionar dades sensibles dins dels nostres playbooks. Hem vist com crear, editar, xifrar i desxifrar fitxers Vault, així com utilitzar-los en els nostres playbooks. També hem practicat aquests conceptes amb exercicis pràctics per reforçar l'aprenentatge.

© Copyright 2024. Tots els drets reservats