Kako uporabiti Ansible Vault v Playbooks za zaščito občutljivih podatkov - 10. del


Ko uporabljate Ansible, boste morda morali v knjige za igro vnesti nekatere zaupne ali tajne podatke. Sem spadajo zasebni in javni ključi SSH, gesla in potrdila SSL, če omenimo le nekatere. Kot že vemo, je slaba praksa, da se iz občutljivih razlogov shranjujejo te občutljive informacije v golem besedilu. Te podatke je treba hraniti pod ključem, saj si lahko samo predstavljamo, kaj bi se zgodilo, če bi jih dobili hekerji ali nepooblaščeni uporabniki.

Na srečo nam Ansible nudi priročno funkcijo, imenovano Ansible Vault. Kot že ime pove, Ansible Vault pomaga varovati ključne tajne podatke, kot smo že omenili. Ansible Vault lahko šifrira spremenljivke ali celo celotne datoteke in YAML playbooks, kot bomo kasneje pokazali. Je zelo priročno in uporabniku prijazno orodje, ki pri šifriranju in dešifriranju datotek zahteva enako geslo.

Potopimo se zdaj in si oglejte pregled različnih operacij, ki jih je mogoče izvesti s pomočjo trezorja Ansible.

Kako ustvariti šifrirano datoteko v programu Ansible

Če želite ustvariti šifrirano datoteko Playbook, preprosto uporabite ukaz ansible-vault create in vnesite ime datoteke, kot je prikazano.

# ansible-vault create filename

Če želite na primer ustvariti šifrirano datoteko mysecrets.yml, izvedite ukaz.

# ansible-vault create mysecrets.yml

Nato boste pozvani k vnosu gesla in po potrditvi se bo odprlo novo okno z urejevalnikom vi, kjer lahko začnete pisati svoje igre.

Spodaj je vzorec nekaterih informacij. Ko končate, preprosto shranite in zapustite knjigo iger. In to je približno to pri ustvarjanju šifrirane datoteke.

Če želite preveriti šifriranje datoteke, uporabite ukaz cat, kot je prikazano.

# cat mysecrets.yml

Kako si ogledati šifrirano datoteko v programu Ansible

Če si želite ogledati šifrirano datoteko, preprosto podajte ukaz ansible-vault view, kot je prikazano spodaj.

# ansible-vault view mysecrets.yml

Še enkrat boste pozvani k vnosu gesla. Še enkrat boste imeli dostop do svojih podatkov.

Kako urediti šifrirano datoteko v programu Ansible

Če želite spremeniti šifrirano datoteko, uporabite ukaz ansible-vault edit, kot je prikazano.

# ansible-vault edit mysecrets.yml

Kot vedno navedite geslo in nato nadaljujte z urejanjem datoteke.

Ko končate z urejanjem, shranite in zapustite urejevalnik vim.

Kako spremeniti odgovorno geslo za trezor

Če želite spremeniti geslo za shrambo Ansible, lahko to enostavno storite z ukazom ansible-vault rekey, kot je prikazano spodaj.

# ansible-vault rekey mysecrets.yml

To vas pozove za geslo trezorja in pozneje zahteva, da vnesete novo geslo in ga kasneje potrdite.

Kako šifrirati nešifrirano datoteko v Ansible

Recimo, da želite šifrirati nešifrirano datoteko, lahko to storite tako, da zaženete ukaz za šifriranje ansible-vault, kot je prikazano.

# ansible-vault encrypt classified.txt

Datoteko si lahko kasneje ogledate z ukazom cat, kot je navedeno spodaj.

Kako dešifrirati šifrirano datoteko

Če si želite ogledati vsebino šifrirane datoteke, jo preprosto dešifrirajte s pomočjo šifriranja ansible-vault, kot je prikazano v spodnjem primeru.

# ansible-vault decrypt classified.txt

Kako šifrirati določene spremenljivke v Ansible

Poleg tega vam Ansible trezor omogoča šifriranje določenih spremenljivk. To se naredi z uporabo ukaza ansible-vault encrypt_string, kot je prikazano.

# ansible-vault encrypt_string 

Ansible trezor vas bo pozval k vnosu gesla in ga pozneje potrdil. Nato vnesite vrednost niza, ki ga želite šifrirati. Na koncu pritisnite ctrl+d . Nato lahko začnete z dodeljevanjem šifrirane vrednosti v knjigi iger.

To je mogoče doseči v eni vrstici, kot je prikazano spodaj.

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

Kako dešifrirati datoteko Playbook med izvajanjem

Če imate datoteko playbook in jo želite med izvajanjem dešifrirati, uporabite možnost --ask-vault-pass , kot je prikazano.

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

S tem se dešifrirajo vse datoteke, ki se uporabljajo v knjigi predvajanja, pod pogojem, da so bile šifrirane z istim geslom.

Zahteve za geslo so včasih moteče. Ti pozivi naredijo avtomatizacijo nevzdržno, zlasti kadar je avtomatizacija ključnega pomena. Če želite poenostaviti postopek dešifriranja knjig predvajanja med izvajanjem, je priporočljivo imeti ločeno datoteko z geslom, ki vsebuje geslo za shrambo Ansible. To datoteko lahko nato prenesete med izvajanjem, kot je prikazano.

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

S tem pridemo do zaključka te teme in avtomatizacijske serije Ansible. Upamo, da so vadnice vnesle nekaj koristnega znanja o tem, kako lahko avtomatizirate naloge v več strežnikih iz enega centralnega sistema.