Zavarujte svoje skrivnosti z Ansible Vault



V tem spletnem dnevniku Ansible vault je razloženo, kako se občutljivi podatki (gesla / skrivni ključ / datoteke cert) shranijo v šifrirane datoteke in vdelajo v Ansible Playbooks.

Večja uporaba tehnologije, večja možna nevarnost za varnost. Tipična nastavitev Ansible zahteva, da vnesete 'Skrivnosti'. Te skrivnosti so lahko dobesedno karkoli, gesla, žetoni API, javni ali zasebni ključi SSH, potrdila SSL itd. Kako te skrivnosti varujemo? Ansible ponuja funkcijo, imenovano Ansible Vault.

V tem blogu bom predstavil, kako uporabljati Ansible Vault, in raziskal nekaj najboljših praks za varovanje podatkov.





Teme, zajete v tem blogu:

Če želite obvladati DevOps, ' seveda bi bila vaša možnost obiska.



Kaj je Ansible Vault?

Če imate infrastrukturo kot kodo, lahko predstavljate nevarnost, da svoje občutljive podatke razkrijete svetu, kar povzroči neželene varnostne težave. Ansible Vault je funkcija, ki vam omogoča varovanje vseh vaših skrivnosti. Šifrira lahko celotne datoteke, celotne knjige YAML ali celo nekaj spremenljivk. Ponuja možnost, kjer lahko ne samo šifrirate občutljive podatke, temveč jih tudi vključite v svoje knjige iger.

Vault je implementiran z natančnostjo na ravni datotek, kjer so datoteke v celoti šifrirane ali popolnoma nešifrirane. Uporablja isto geslo za šifriranje kot tudi za dešifriranje datotek, zaradi česar je uporaba Ansible Vault zelo uporabniku prijazna.

Zakaj uporabljati Ansible Vault?

Ker se Ansible uporablja za avtomatizacijo, obstaja velika verjetnost, da playbook vsebuje določene poverilnice, SSL potrdila ali druge občutljive podatke. Shranjevanje tako občutljivih podatkov, kot je navadno besedilo, je slaba ideja. Ena napačna zaveza k GitHubu ali kraji prenosnega računalnika lahko organizaciji povzroči veliko izgubo. Tu nastopi slika Ansible vault. To je odličen način, da imamo infrastrukturo kot kodo, ne da bi pri tem ogrozili varnost.



Recimo, da imamo knjigo z navodili, ki zagotavlja vaš primerek EC2 na AWS. V knjigi predvajanja morate navesti svoj ID dostopnega ključa AWS in tajni ključ AWS. Teh ključev iz očitnih razlogov ne delite z drugimi. Kako jih obdržati neizpostavljene? Obstajata dva načina - bodisi šifrirajte ti dve spremenljivki in jih vdelajte v igro ali šifrirajte celotno igro.

To je bil le eden od scenarijev, kjer je mogoče uporabiti trezor ansible Šifriramo lahko celotne datoteke ali pa samo šifriramo nekaj spremenljivk, ki bi lahko vsebovale občutljive podatke, nato pa jih Ansible samodejno dešifrira med izvajanjem. Zdaj lahko te vrednosti varno dodelimo GitHubu.

Ustvarjanje šifrirane datoteke

Če želite ustvariti šifrirano datoteko, uporabite ansible-vault ustvari in posredujte ime datoteke.

$ ansible-vault ustvari ime datoteke.yaml

Pozvani boste, da ustvarite geslo in ga nato potrdite s ponovnim vpisom.

ansible vault create - Ansible Vault - Edureka

Po potrditvi gesla bo ustvarjena nova datoteka, ki bo odprla okno za urejanje. Privzeto je urejevalnik za Ansible Vault vi. Lahko dodate podatke, jih shranite in zaprete.

Vaša datoteka je šifrirana.

Urejanje šifriranih datotek

Če želite urediti šifrirano datoteko, jo lahko uredite s pomočjo ansible-vault edit ukaz.

$ ansible-vault edit secrets.txt

Kjer je secrets.txt že ustvarjena, šifrirana datoteka.

Pozvani boste, da vstavite geslo za sef. Datoteka (dešifrirana različica) se bo odprla v urejevalniku vi in ​​nato boste lahko naredili potrebne spremembe.

Če preverite izhod, boste videli, da bo besedilo samodejno šifrirano, ko ga shranite in zaprete.

Ogled šifrirane datoteke

Če si želite samo ogledati šifrirano datoteko, lahko uporabite pogled ansible-trezor ukaz.

$ ansible-vault pogled filename.yml

Spet boste pozvani k vnosu gesla.

in videli boste podobne rezultate.

Ponovno vnašanje gesla za sef

Seveda so časi, ko boste želeli spremeniti geslo za sef. Lahko uporabite ansible-vault rekey ukaz.

$ ansible-vault rekey secrets.txt

Pozvani boste s trenutnim geslom trezorja, nato z novim geslom in na koncu s potrditvijo novega gesla.

Šifriranje nešifriranih datotek

Recimo, da imate datoteko, ki jo želite šifrirati, lahko uporabite šifriranje ansible-vault ukaz.

$ ansible-vault šifrira ime datoteke.txt

Pozvani boste, da vstavite in potrdite geslo, datoteka pa je šifrirana.

Zdaj, ko pogledate vsebino datoteke, je vsa šifrirana.

Dešifriranje šifriranih datotek

Če želite dešifrirati šifrirano datoteko, lahko uporabite dešifriranje ansible-vault ukaz.

$ ansible-vault dešifriraj ime datoteke.txt

Kot običajno vas bo pozval, da vstavite in potrdite geslo za sef.

tabela, kako ustvariti niz

Šifriranje določenih spremenljivk

Najboljša praksa pri uporabi Ansible Vault je šifriranje samo občutljivih podatkov. V zgoraj pojasnjenem primeru razvojna skupina ne želi deliti svojega gesla s produkcijsko in uprizoritveno ekipo, vendar bo morda za izvajanje svoje naloge potrebovala dostop do določenih podatkov. V takih primerih bi morali šifrirati samo podatke, ki jih ne želite deliti z drugimi, ostale pa pustite takšne, kot so.

Ansible Vault vam omogoča šifriranje samo določenih spremenljivk. Lahko uporabite ansible-vault encrypt_string ukaz za to.

$ ansible-vault encrypt_string

Pozvani boste, da vstavite in potrdite geslo za sef. Nato lahko začnete vstavljati vrednost niza, ki ga želite šifrirati. Pritisnite ctrl-d, da končate vnos. Zdaj lahko dodelite to šifriranovrednostna niz v knjigi iger.

V eni vrstici lahko dosežete isto stvar.

$ ansible-vault encrypt_string 'string' --name 'ime_premenljivke'

Dešifriranje šifriranih datotek med izvajanjem

Če želite datoteko med izvajanjem dešifrirati, lahko uporabite –Ask-trezor-prelaz zastavo.

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

S tem bodo dešifrirane vse šifrirane datoteke, ki se uporabljajo za izvajanje te knjige play.yml. To je mogoče tudi samo, če so vse datoteke šifrirane z istim geslom.

Ukazi za geslo so lahko moteči. Namen avtomatizacije postane nesmiseln. Kako naj to izboljšamo? Ansible ima funkcijo, imenovano »datoteka z geslom«, ki se sklicuje na datoteko, ki vsebuje geslo. Nato lahko datoteko z geslom preprosto prenesete med izvajanjem, da jo avtomatizirate.

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

Možen je tudi ločen skript, ki določa gesla. Prepričajte se, da je datoteka skripta izvedljiva in da je geslo natisnjeno na standardni izhod, da bo delovalo brez nadležnih napak.

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

Uporaba ID-ja trezorja

ID trezorja je način, kako določiti geslo za trezor. Vault ID pomaga pri šifriranju različnih datotek z različnimi gesli, na katera se lahko sklicujete v knjigi predvajanja. Ta funkcija Ansible je izšla z izdajo Ansible 2.4. Pred to izdajo je bilo pri izvedbi vsake igre ansible mogoče uporabiti samo eno geslo za trezor.

Torej, če želite zagnati Ansible playbook, ki uporablja več datotek, šifriranih z različnimi gesli, lahko uporabite Vault Id.

$ ansible-playbook --vault-id trezor-pass1 --vault-id trezor-pass2 ime datoteke.yml

S tem smo prišli do konca tega spletnega dnevnika Ansible Vault. Neverjetno je dohitevati tehnologijo in jih kar najbolje izkoristiti, vendar ne s kompromisom glede varnosti. To je eden najboljših načinov, kako imeti infrastrukturo kot kodo (IaC).

Če se vam zdi ta članek koristen, si oglejte ' ponuja Edureka. Zajema vsa orodja, s katerimi je IT-industrija postala pametnejša.

Imate vprašanje za nas? Prosim, objavite na in se bomo oglasili pri vas.