Osigurajte svoje tajne odgovornim trezorom



Ovaj blog o trezoru Ansible objašnjava kako se osjetljivi podaci (lozinke / tajni ključ / cert datoteke) pohranjuju u šifriranim datotekama i ugrađuju u Ansible Playbooks.

Što je veća upotreba tehnologije, to je veća moguća prijetnja sigurnosti. Tipično postavljanje Ansible zahtijeva da unesete 'Tajne'. Te tajne mogu biti doslovno bilo što, lozinke, API tokeni, SSH javni ili privatni ključevi, SSL certifikati itd. Kako čuvamo ove tajne? Ansible nudi značajku nazvanu Ansible Vault.

Na ovom blogu pokazat ću kako se koristi Ansible Vault i istražiti neke od najboljih praksi za zaštitu podataka.





Teme obrađene na ovom blogu:

Ako želite svladati DevOps, ' tečaj bi bio vaša opcija za pristup.



Što je Ansible Vault?

Imati infrastrukturu kao kod može predstavljati prijetnju izlaganju vaših osjetljivih podataka svijetu, što dovodi do neželjenih sigurnosnih problema. Ansible Vault značajka je koja vam omogućuje da zaštitite sve svoje tajne. Može šifrirati cijele datoteke, cijele YAML knjige za reprodukciju ili čak nekoliko varijabli. Pruža mogućnost u kojoj možete ne samo šifrirati osjetljive podatke, već ih i integrirati u svoje knjige.

Trezor je implementiran s granularnošću na razini datoteke, gdje su datoteke u potpunosti šifrirane ili potpuno nešifrirane. Koristi istu lozinku za šifriranje kao i za dešifriranje datoteka što upotrebu Ansible Vault čini vrlo jednostavnom za upotrebu.

Zašto koristiti Ansible Vault?

Kako se Ansible koristi za automatizaciju, postoji velika vjerojatnost da knjige sadrže određene vjerodajnice, SSL certifikate ili druge osjetljive podatke. Spremanje tako osjetljivih podataka kao što je običan tekst loša je ideja. Jedna pogrešna predaja GitHub-u ili krađa prijenosnog računala može nanijeti organizaciji ogroman gubitak. Ovdje se pojavljuje svod Ansible. To je sjajan način da se infrastruktura koristi kao kod, bez ugrožavanja sigurnosti.



Pretpostavimo da imamo knjigu priručnika koja pruža vašu instancu EC2 na AWS-u. Morate navesti svoj ID pristupnog ključa AWS-a i tajni ključ AWS-a u priručniku. Ove ključeve ne dijelite s drugima iz očitih razloga. Kako ih zadržati neeksponiranima? Postoje dva načina - ili šifrirajte ove dvije varijable i ugradite ih u knjižicu ili šifrirajte cijelu knjigu.

Ovo je bio samo jedan od scenarija u kojem se može koristiti ansible trezor. Možemo šifrirati cijele datoteke ili samo šifrirati nekoliko varijabli koje mogu sadržavati osjetljive podatke, a zatim ih Ansible automatski dešifrira tijekom izvođenja. Sada ove vrijednosti možemo sigurno predati GitHubu.

Stvaranje šifrirane datoteke

Da biste stvorili šifriranu datoteku, upotrijebite ansible-vault stvoriti naredbu i proslijedite naziv datoteke.

$ ansible-vault stvori ime datoteke.yaml

Od vas će se zatražiti da stvorite lozinku, a zatim je potvrdite ponovnim upisivanjem.

ansible vault create - Ansible Vault - Edureka

Nakon potvrde lozinke stvorit će se nova datoteka koja će otvoriti prozor za uređivanje. Prema zadanim postavkama uređivač za Ansible Vault je vi. Možete dodati podatke, spremiti i izaći.

I vaša je datoteka šifrirana.

Uređivanje šifriranih datoteka

Ako želite urediti šifriranu datoteku, možete je urediti pomoću ansible-vault uredi naredba.

$ ansible-vault uređivanje tajni.txt

Gdje je secrets.txt već stvorena, šifrirana datoteka.

Od vas će se zatražiti da unesete lozinku sefa. Datoteka (dešifrirana verzija) otvorit će se u uređivaču vi i tada možete unijeti potrebne promjene.

Ako provjerite izlaz, vidjet ćete da će se vaš tekst automatski šifrirati kada spremite i zatvorite.

Pregled šifrirane datoteke

Ako želite samo pregledati šifriranu datoteku, možete koristiti prikaz ansible-svod naredba.

$ ansible-vault prikaz imena datoteke.yml

Opet ćete zatražiti lozinku.

i vidjet ćete slične rezultate.

Ponovno unošenje lozinke trezora

Naravno, postoje trenuci kada ćete htjeti promijeniti lozinku sefa. Možete koristiti ansible-vault rekey naredba.

$ ansible-vault rekey secrets.txt

Zatražit će se trenutna lozinka trezora, a zatim nova lozinka i na kraju ćete to učiniti potvrđivanjem nove lozinke.

Šifriranje nešifriranih datoteka

Pretpostavimo da imate datoteku koju želite šifrirati, možete koristiti šifriranje ansible-vault naredba.

$ ansible-vault šifriranje filename.txt

Od vas će se zatražiti da unesete i potvrdite lozinku i vaša je datoteka šifrirana.

Sad kad pogledate sadržaj datoteke, sav je šifriran.

Dešifriranje šifriranih datoteka

Ako želite dešifrirati šifriranu datoteku, možete koristiti dešifriranje ansible-svod naredba.

$ ansible-vault dešifriranje ime datoteke.txt

Kao i obično, zatražit će od vas da umetnete i potvrdite lozinku sefa.

proći po vrijednosti i proći pored reference java

Šifriranje određenih varijabli

Najbolja praksa tijekom upotrebe Ansible Vault-a je šifriranje samo osjetljivih podataka. U gore objašnjenom primjeru, razvojni tim ne želi dijeliti svoju lozinku s produkcijskim i pripremnim timom, ali možda će im trebati pristup određenim podacima kako bi izvršili vlastiti zadatak. U takvim biste slučajevima trebali šifrirati samo podatke koje ne želite dijeliti s drugima, a ostatak ostavljajući takav kakav jest.

Ansible Vault omogućuje vam šifriranje samo određenih varijabli. Možete koristiti ansible-vault encrypt_string naredba za ovo.

$ ansible-vault encrypt_string

Od vas će se zatražiti da umetnete i potvrdite lozinku sefa. Zatim možete započeti s umetanjem vrijednosti niza koju želite šifrirati. Pritisnite ctrl-d za završetak unosa. Sada to možete dodijeliti šifriranomvrijednostna niz u knjizi za igru.

Također možete postići isto u jednom retku.

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

Dešifriranje šifriranih datoteka tijekom izvođenja

Ako želite dešifrirati datoteku tijekom izvođenja, možete koristiti –Ask-svod-prolaz zastava.

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

Ovo će dešifrirati sve šifrirane datoteke koje se koriste za izvršavanje ove knjige play.yml. Također, to je moguće samo ako su sve datoteke šifrirane istom lozinkom.

Upiti za lozinku mogu postati dosadni. Svrha automatizacije postaje besmislena. Kako to učiniti boljim? Ansible ima značajku koja se naziva 'datoteka lozinke' koja upućuje na datoteku koja sadrži lozinku. Tada ovu datoteku lozinke možete jednostavno proslijediti tijekom izvođenja da biste je automatizirali.

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

Moguće je imati i zasebnu skriptu koja navodi lozinke. Morate biti sigurni da je datoteka skripte izvršna i da se lozinka ispisuje na standardni izlaz da bi mogla raditi bez dosadnih pogrešaka.

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

Korištenjem trezora

Id trezora je način pružanja identifikatora određenoj lozinci trezora. Vault ID pomaže u šifriranju različitih datoteka s različitim lozinkama na koje se referencira unutar playbooka. Ova značajka Ansible-a izašla je izdavanjem Ansible 2.4. Prije ovog izdanja, samo se jedna lozinka trezora mogla koristiti u svakom izvršavanju knjige odgovora.

Dakle, ako želite izvršiti Ansible playbook koji koristi više datoteka šifriranih različitim lozinkama, možete koristiti Vault Id.

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

Ovim smo došli do kraja ovog bloga Ansible Vault. Nevjerojatno je sustići tehnologiju i iskoristiti je u potpunosti, ali ne kompromitirajući sigurnost. Ovo je jedan od najboljih načina da se infrastruktura koristi kao kôd (IaC).

Ako vam je ovaj članak koristan, pogledajte članak ' nudi Edureka. Obuhvaća sve alate koji su IT industriju učinili pametnijom.

Imate pitanje za nas? Molimo vas objavite na i javit ćemo vam se.