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


Dok budete koristili Ansible, od vas će se možda tražiti da unesete neke povjerljive ili tajne informacije u playbooks. Ovo uključuje SSH privatne i javne ključeve, lozinke i SSL certifikate da spomenemo samo neke. Kao što već znamo, loša je praksa čuvati ove osjetljive informacije u običnom tekstu iz očiglednih razloga. Ove informacije treba držati pod ključem jer možemo samo zamisliti šta bi se dogodilo da ih hakeri ili neovlašteni korisnici dođu do njih.

Srećom, Ansible nam pruža zgodnu funkciju poznatu kao Ansible Vault. Kao što ime sugerira, Ansible Vault pomaže u osiguravanju vitalnih tajnih informacija kao što smo ranije raspravljali. Ansible Vault može šifrirati varijable, ili čak cijele datoteke i YAML playbooks kao što ćemo kasnije pokazati. To je vrlo zgodan i jednostavan alat koji zahtijeva istu lozinku prilikom šifriranja i dešifriranja datoteka.

Hajdemo sada uroniti i imati pregled različitih operacija koje se mogu izvesti pomoću Ansible trezora.

Kako kreirati šifriranu datoteku u Ansibleu

Ako želite da kreirate šifrovanu datoteku Playbook, jednostavno koristite naredbu ansible-vault create i unesite naziv datoteke kao što je prikazano.

ansible-vault create filename

Na primjer, da kreirate šifriranu datoteku mysecrets.yml, izvršite naredbu.

ansible-vault create mysecrets.yml

Nakon toga će vam biti zatraženo unos lozinke, a nakon što je potvrdite, otvorit će se novi prozor pomoću vi editora u kojem možete početi pisati svoje predstave.

Ispod je primjer nekih informacija. Kada završite, jednostavno sačuvajte i izađite iz playbook-a. I to je samo to kada kreirate šifriranu datoteku.

Da biste provjerili šifriranje datoteke, koristite naredbu cat kao što je prikazano.

cat mysecrets.yml

Kako pogledati šifriranu datoteku u Ansibleu

Ako želite da vidite šifrovanu datoteku, jednostavno prosledite naredbu ansible-vault view kao što je prikazano ispod.

ansible-vault view mysecrets.yml

Još jednom, od vas će se tražiti lozinka. Još jednom, imat ćete pristup svojim informacijama.

Kako urediti šifriranu datoteku u Ansibleu

Da izvršite promjene u šifriranoj datoteci koristite 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 sa uređivanjem, sačuvajte i izađite iz vim editora.

Kako promijeniti Ansible Vault lozinku

U slučaju da osjećate potrebu da promijenite Ansible trezorsku lozinku, to možete lako učiniti pomoću naredbe ansible-vault rekey kao što je prikazano ispod.

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šifrirani fajl u Ansibleu

Pretpostavimo da želite šifrirati nešifrirani fajl, to možete učiniti tako što ćete pokrenuti naredbu ansible-vault encrypt kao što je prikazano.

ansible-vault encrypt classified.txt

Kasnije možete pogledati datoteku koristeći komandu cat kao što je dolje navedeno.

Kako dešifrirati šifriranu datoteku

Da biste vidjeli sadržaj šifrirane datoteke, jednostavno dešifrirajte datoteku koristeći ansible-vault encrypt kao što je ilustrovano u primjeru ispod.

ansible-vault decrypt classified.txt

Kako šifrirati specifične varijable u Ansibleu

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

ansible-vault encrypt_string 

Ansible trezor će od vas tražiti lozinku i kasnije će zahtijevati da je potvrdite. Zatim upišite vrijednost stringa koju želite šifrirati. Na kraju, pritisnite ctrl+d. Nakon toga, možete započeti dodjeljivanje šifrirane vrijednosti u playbook-u.

Ovo se može postići u jednoj liniji kao što je prikazano ispod.

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

Kako dešifrirati Playbook datoteku tokom vremena rada

Ako imate playbook datoteku i želite da je dešifrujete tokom vremena rada, koristite opciju --ask-vault-pass kao što je prikazano.

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

Ovo dešifruje sve datoteke koje se koriste u playbook-u pod uslovom da su šifrovane pomoću iste lozinke.

Upit za lozinku ponekad može biti neugodan. Ovi upiti čine automatizaciju neodrživom, posebno kada je automatizacija ključna. Da biste pojednostavili proces dešifriranja playbook-a tokom vremena rada, preporučuje se da imate zasebnu datoteku lozinke koja sadrži lozinku za trezor Ansible. Ova datoteka se zatim može proslijediti tokom vremena rada 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 tutorijali pružili neko korisno znanje o tome kako možete automatizirati zadatke na više servera iz jednog centralnog sistema.