Proteggi i tuoi segreti con Ansible Vault



Questo blog Ansible Vault spiega come i dati sensibili (password / chiave segreta / file cert) vengono archiviati in file crittografati e incorporati in Ansible Playbook.

Maggiore è l'uso della tecnologia, maggiore è la possibile minaccia alla sicurezza. Una tipica configurazione Ansible richiede di inserire 'Segreti'. Questi segreti potrebbero essere letteralmente qualsiasi cosa, password, token API, chiavi pubbliche o private SSH, certificati SSL, ecc. Come manteniamo questi segreti al sicuro? Ansible fornisce una funzione chiamata Ansible Vault.

In questo blog, dimostrerò come utilizzare Ansible Vault ed esplorerò alcune delle migliori pratiche per mantenere i dati al sicuro.





Argomenti trattati in questo blog:

Se desideri padroneggiare DevOps, ' ovviamente sarebbe la tua opzione preferita.



Cos'è Ansible Vault?

Avere un'infrastruttura come codice può rappresentare la minaccia di esporre i tuoi dati sensibili al mondo, portando a problemi di sicurezza indesiderati. Ansible Vault è una funzionalità che ti consente di mantenere tutti i tuoi segreti al sicuro. Può crittografare interi file, interi playbook YAML o anche poche variabili. Fornisce una funzione in cui è possibile non solo crittografare i dati sensibili, ma anche integrarli nei propri playbook.

Vault è implementato con granularità a livello di file in cui i file sono completamente crittografati o completamente non crittografati. Utilizza la stessa password per crittografare e decrittografare i file, il che rende l'utilizzo di Ansible Vault molto intuitivo.

Perché utilizzare Ansible Vault?

Poiché Ansible viene utilizzato per l'automazione, esiste un'elevata possibilità che i playbook contengano determinate credenziali, certificati SSL o altri dati sensibili. Salvare dati così sensibili come testo normale è una cattiva idea. Un impegno sbagliato in GitHub o il furto di laptop possono causare enormi perdite a un'organizzazione. È qui che entra in gioco Ansible Vault. È un ottimo modo per avere l'infrastruttura come codice, senza compromettere la sicurezza.



Supponiamo di avere un playbook che fornisce la tua istanza EC2 su AWS. Devi fornire il tuo ID chiave di accesso AWS e la chiave segreta AWS nel playbook. Non condividi queste chiavi con altri per ovvi motivi. Come li mantieni non esposti? Ci sono due modi: crittografare queste due variabili e incorporarle nel playbook o crittografare l'intero playbook.

Questo era solo uno degli scenari in cui è possibile utilizzare il caveau ansible. Possiamo crittografare interi file o semplicemente crittografare poche variabili che potrebbero contenere dati sensibili e quindi Ansible li decrittografa automaticamente durante il runtime. Ora possiamo inviare in sicurezza questi valori a GitHub.

Creazione di file crittografati

Per creare un file crittografato, utilizza l'estensione ansible-vault create comando e passare il nome del file.

$ ansible-vault crea nomefile.yaml

Ti verrà chiesto di creare una password e di confermarla digitandola di nuovo.

Ansible Vault crea - Ansible Vault - Edureka

Una volta confermata la password, verrà creato un nuovo file e si aprirà una finestra di modifica. Per impostazione predefinita, l'editor per Ansible Vault è vi. È possibile aggiungere dati, salvare e uscire.

E il tuo file è crittografato.

Modifica di file crittografati

Se desideri modificare un file crittografato, puoi modificarlo utilizzando ansible-vault modifica comando.

$ ansible-vault modifica secrets.txt

Dove secrets.txt è un file crittografato già creato.

Ti verrà chiesto di inserire la password del vault. Il file (versione decrittografata) si aprirà in un editor vi e quindi potrai apportare le modifiche richieste.

Se controlli l'output, vedrai che il tuo testo verrà crittografato automaticamente quando salvi e chiudi.

differenza tra il sovraccarico del metodo e l'override in java

Visualizzazione del file crittografato

Se desideri visualizzare solo un file crittografato, puoi utilizzare l'estensione vista ansible-vault comando.

$ ansible-vault view nomefile.yml

Ancora una volta ti verrà richiesta una password.

e vedrai risultati simili.

Reimpostare la password del Vault

Naturalmente, ci sono momenti in cui vorrai cambiare la password del vault. Puoi usare il file rekey ansible-vault comando.

$ ansible-vault rekey secrets.txt

Ti verrà richiesta la password corrente del vault, quindi la nuova password e infine la conferma della nuova password.

Crittografia dei file non crittografati

Supponiamo che tu abbia un file che desideri crittografare, puoi usare l'estensione crittografia ansible-vault comando.

$ ansible-vault crittografa nomefile.txt

Ti verrà chiesto di inserire e confermare la password e il tuo file sarà crittografato.

Ora che guardi il contenuto del file, è tutto crittografato.

Decrittografia di file crittografati

Se vuoi decrittografare un file crittografato, puoi usare ansible-vault decrypt comando.

$ ansible-vault decrittografa nomefile.txt

Come al solito, ti verrà chiesto di inserire e confermare la password del vault.

Crittografia di variabili specifiche

La best practice durante l'utilizzo di Ansible Vault consiste nel crittografare solo i dati sensibili. Nell'esempio spiegato sopra, il team di sviluppo non desidera condividere la propria password con il team di produzione e di gestione temporanea, ma potrebbe aver bisogno dell'accesso a determinati dati per svolgere il proprio compito. In questi casi dovresti crittografare solo i dati che non desideri condividere con altri, lasciando il resto così com'è.

Ansible Vault consente di crittografare solo variabili specifiche. Puoi usare il file ansible-vault encrypt_string comando per questo.

$ ansible-vault encrypt_string

Ti verrà chiesto di inserire e quindi confermare la password del vault. È quindi possibile iniziare a inserire il valore della stringa che si desidera crittografare. Premere ctrl-d per terminare l'input. Ora puoi assegnare questo file crittografatovalorea una stringa nel playbook.

Puoi anche ottenere la stessa cosa in una singola riga.

$ ansible-vault stringa_crittografia 'stringa' --name 'nome_variabile'

Decrittografia dei file crittografati durante il runtime

Se desideri decrittografare un file durante il runtime, puoi usare –Ask-vault-pass bandiera.

$ ansible-playbook launch.yml --ask-vault-pass

Questo decifrerà tutti i file crittografati che vengono utilizzati per l'esecuzione di questo playbook launch.yml. Inoltre, questo è possibile solo se tutti i file sono crittografati con la stessa password.

Le richieste di password possono diventare fastidiose. Lo scopo dell'automazione diventa inutile. Come lo miglioriamo? Ansible ha una funzione chiamata 'file password' che fa riferimento a un file contenente la password. È quindi possibile passare questo file di password durante il runtime per automatizzarlo.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt

È anche possibile disporre di uno script separato che specifica le password. È necessario assicurarsi che il file di script sia eseguibile e che la password sia stampata sull'output standard affinché funzioni senza fastidiosi errori.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py

Utilizzo dell'ID Vault

L'ID del vault è un modo per fornire un identificatore a una particolare password del vault. Vault ID aiuta a crittografare diversi file con password diverse a cui fare riferimento all'interno di un playbook. Questa funzionalità di Ansible è stata rilasciata con il rilascio di Ansible 2.4. Prima di questa versione, era possibile utilizzare una sola password del vault in ciascuna esecuzione del playbook ansible.

Quindi ora se desideri eseguire un playbook Ansible che utilizza più file crittografati con password diverse, puoi utilizzare Vault Id.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 nomefile.yml

Con questo, arriviamo alla fine di questo blog di Ansible Vault. È incredibile mettersi al passo con la tecnologia e sfruttarla al massimo, ma non compromettendo la sicurezza. Questo è uno dei modi migliori per avere Infrastructure as code (IaC).

Se trovi utile questo articolo, controlla il ' offerto da Edureka. Copre tutti gli strumenti che hanno reso il settore IT più intelligente.

Hai domande per noi? Per favore, pubblicalo su e ti risponderemo.