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.