Kako koristiti Ansible Vault u Playbooks za zaštitu osjetljivih podataka - 10. dio


Dok koristite Ansible, od vas će se možda tražiti da unesete neke povjerljive ili tajne informacije u priručnike. To uključuje SSH privatne i javne ključeve, lozinke i SSL certifikate da spomenemo samo neke. Kao što već znamo, loša je praksa spremati ove osjetljive informacije u običnom tekstu iz očitih razloga. Ove informacije moraju biti pod ključem jer možemo samo zamisliti što bi se dogodilo da do njih dođu hakeri ili neovlašteni korisnici.

Srećom, Ansible nam pruža praktičnu značajku poznatu kao Ansible Vault. Kao što naziv sugerira, Ansible Vault pomaže osigurati vitalne tajne podatke kao što smo ranije spomenuli. Ansible Vault može šifrirati varijable ili čak cijele datoteke i YAML playbooks kao što ćemo kasnije pokazati. To je vrlo praktičan i jednostavan alat koji zahtijeva istu lozinku prilikom šifriranja i dekriptiranja datoteka.

Zaronimo sada u pregled različitih operacija koje se mogu izvesti pomoću Ansible trezora.

Kako stvoriti šifriranu datoteku u Ansibleu

Ako želite stvoriti šifriranu datoteku Playbook jednostavno upotrijebite naredbu ansible-vault create i unesite naziv datoteke kao što je prikazano.

ansible-vault create filename

Na primjer, za stvaranje šifrirane datoteke mysecrets.yml izvršite naredbu.

ansible-vault create mysecrets.yml

Nakon toga ćete biti upitani za lozinku, a nakon što je potvrdite, otvorit će se novi prozor pomoću vi editora u kojem možete početi pisati svoje komade.

Ispod je uzorak nekih informacija. Nakon što završite jednostavno spremite i izađite iz playbooka. I to je otprilike sve kada stvarate šifriranu datoteku.

Za provjeru enkripcije datoteke upotrijebite naredbu cat kao što je prikazano.

cat mysecrets.yml

Kako pogledati šifriranu datoteku u Ansibleu

Ako želite vidjeti šifriranu datoteku, jednostavno proslijedite naredbu ansible-vault view kao što je prikazano u nastavku.

ansible-vault view mysecrets.yml

Još jednom ćete biti upitani za lozinku. Još jednom ćete imati pristup svojim podacima.

Kako urediti šifriranu datoteku u Ansibleu

Za izmjene šifrirane datoteke upotrijebite naredbu ansible-vault edit kao što je prikazano.

ansible-vault edit mysecrets.yml

Kao i uvijek, unesite lozinku i nakon toga nastavite s uređivanjem datoteke.

Nakon što završite s uređivanjem, spremite i izađite iz vim editora.

Kako promijeniti lozinku Ansible Vault

U slučaju da osjećate potrebu za promjenom lozinke Ansible trezora, to možete jednostavno učiniti pomoću naredbe ansible-vault rekey kao što je prikazano u nastavku.

ansible-vault rekey mysecrets.yml

Ovo od vas traži lozinku za trezor, a kasnije od vas traži da unesete novu lozinku i kasnije je potvrdite.

Kako šifrirati nešifriranu datoteku u Ansibleu

Pretpostavimo da želite šifrirati nekriptiranu datoteku, to možete učiniti pokretanjem naredbe ansible-vault encrypt kao što je prikazano.

ansible-vault encrypt classified.txt

Kasnije možete pregledati datoteku pomoću naredbe cat kao što je dolje navedeno.

Kako dešifrirati šifriranu datoteku

Da biste vidjeli sadržaj šifrirane datoteke, jednostavno dešifrirajte datoteku pomoću ansible-vault encrypt kao što je ilustrirano u primjeru u nastavku.

ansible-vault decrypt classified.txt

Kako šifrirati određene varijable u Ansibleu

Uz to, Ansible vault vam daje mogućnost šifriranja određenih varijabli. To se radi pomoću naredbe ansible-vault encrypt_string kao što je prikazano.

ansible-vault encrypt_string 

Ansible trezor će od vas zatražiti lozinku i kasnije je tražiti da je potvrdite. Zatim upišite vrijednost niza koju želite šifrirati. Na kraju pritisnite ctrl+d. Nakon toga možete početi dodjeljivati šifriranu vrijednost u priručniku.

To se može postići u jednom retku kao što je prikazano u nastavku.

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

Kako dešifrirati datoteku Playbooka tijekom izvođenja

Ako imate datoteku priručnika i želite je dešifrirati tijekom izvođenja, koristite opciju --ask-vault-pass kao što je prikazano.

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

Time se dešifriraju sve datoteke koje se koriste u priručniku pod uvjetom da su šifrirane istom lozinkom.

Upiti za lozinku ponekad mogu biti dosadni. Ovi promptovi čine automatizaciju neodrživom, posebno kada je automatizacija ključna. Kako biste pojednostavili proces dešifriranja igranih knjiga tijekom izvođenja, preporuča se imati zasebnu datoteku zaporke koja sadrži lozinku Ansible trezora. Ova se datoteka zatim može proslijediti tijekom izvođenja kao što je prikazano.

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

Ovo nas dovodi do zaključka ove teme i Ansible serije automatizacije. Nadamo se da su vam vodiči donijeli neka korisna znanja o tome kako možete automatizirati zadatke na više poslužitelja iz jednog središnjeg sustava.