Ricerca nel sito web

Come utilizzare Ansible Vault nei Playbook per proteggere i dati sensibili - Parte 10


Mentre utilizzi Ansible, ti potrebbe essere richiesto di inserire alcune informazioni riservate o segrete nei playbook. Ciò include chiavi pubbliche e private SSH, password e certificati SSL, per citarne solo alcuni. Come già sappiamo, è una cattiva pratica salvare queste informazioni sensibili in testo semplice per ovvi motivi. Queste informazioni devono essere tenute sotto chiave perché possiamo solo immaginare cosa accadrebbe se hacker o utenti non autorizzati ne venissero in possesso.

Per fortuna, Ansible ci fornisce una pratica funzionalità nota come Ansible Vault. Come suggerisce il nome, Ansible Vault aiuta a proteggere informazioni segrete vitali, come abbiamo discusso in precedenza. Ansible Vault può crittografare variabili o persino interi file e playbook YAML, come dimostreremo in seguito. È uno strumento molto pratico e facile da usare che richiede la stessa password durante la crittografia e la decrittografia dei file.

Entriamo ora e diamo una panoramica delle varie operazioni che possono essere eseguite utilizzando Ansible Vault.

Come creare un file crittografato in Ansible

Se desideri creare un file Playbook crittografato, utilizza semplicemente il comando ansible-vault create e fornisci il nome del file come mostrato.

ansible-vault create filename

Ad esempio, per creare un file crittografato mysecrets.yml esegui il comando.

ansible-vault create mysecrets.yml

Successivamente ti verrà richiesta una password e, dopo averla confermata, si aprirà una nuova finestra utilizzando l'editor vi in cui potrai iniziare a scrivere le tue opere teatrali.

Di seguito è riportato un esempio di alcune informazioni. Una volta terminato, salva ed esci dal playbook. E questo è tutto quando si crea un file crittografato.

Per verificare la crittografia del file, utilizzare il comando cat come mostrato.

cat mysecrets.yml

Come visualizzare un file crittografato in Ansible

Se desideri visualizzare un file crittografato, passa semplicemente il comando ansible-vault view come mostrato di seguito.

ansible-vault view mysecrets.yml

Ancora una volta, ti verrà richiesta una password. Ancora una volta, avrai accesso alle tue informazioni.

Come modificare un file crittografato in Ansible

Per apportare modifiche a un file crittografato, utilizzare il comando ansible-vault edit come mostrato.

ansible-vault edit mysecrets.yml

Come sempre, fornire la password e successivamente procedere alla modifica del file.

Dopo aver terminato la modifica, salva ed esci dall'editor vim.

Come modificare la password di Ansible Vault

Nel caso in cui senti la necessità di modificare la password di Ansible Vault, puoi farlo facilmente utilizzando il comando ansible-vault rekey come mostrato di seguito.

ansible-vault rekey mysecrets.yml

Questo ti richiede la password del vault e successivamente ti chiede di inserire la nuova password e successivamente di confermarla.

Come crittografare un file non crittografato in Ansible

Supponiamo che tu voglia crittografare un file non crittografato, puoi farlo eseguendo il comando ansible-vault encrypt come mostrato.

ansible-vault encrypt classified.txt

Successivamente sarà possibile visualizzare il file utilizzando il comando cat come indicato di seguito.

Come decifrare un file crittografato

Per visualizzare il contenuto di un file crittografato, decrittografa semplicemente il file utilizzando la crittografia ansible-vault come illustrato nell'esempio seguente.

ansible-vault decrypt classified.txt

Come crittografare variabili specifiche in Ansible

Inoltre, Ansible Vault ti garantisce la possibilità di crittografare determinate variabili. Questo viene fatto utilizzando il comando ansible-vault encrypt_string come mostrato.

ansible-vault encrypt_string 

Ansible Vault ti chiederà la password e successivamente ti chiederà di confermarla. Successivamente, digita il valore della stringa che desideri crittografare. Infine, premi ctrl+d. Successivamente, puoi iniziare ad assegnare il valore crittografato in un playbook.

Ciò può essere ottenuto in un'unica riga come mostrato di seguito.

ansible-vault encrypt_string 'string' --name 'variable_name'

Come decrittografare un file Playbook durante il runtime

Se disponi di un file playbook e desideri decrittografarlo durante il runtime, utilizza l'opzione --ask-vault-pass come illustrato.

ansible-playbook deploy.yml --ask-vault-pass

Ciò decrittografa tutti i file utilizzati nel playbook a condizione che siano stati crittografati utilizzando la stessa password.

Le richieste di password a volte possono essere fastidiose. Questi suggerimenti rendono l’automazione insostenibile, soprattutto quando l’automazione è fondamentale. Per semplificare il processo di decrittografia dei playbook durante il runtime, è consigliabile disporre di un file di password separato che contenga la password del vault Ansible. Questo file può quindi essere passato durante il runtime come mostrato.

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

Questo ci porta alla conclusione di questo argomento e della serie di automazione Ansible. Ci auguriamo che i tutorial abbiano fornito alcune conoscenze utili su come automatizzare le attività su più server da un sistema centrale.