Š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:
- Što je Ansible Vault?
- Zašto koristiti Ansible Vault?
- Stvaranje šifrirane datoteke
- Uređivanje šifriranih datoteka
- Pregled šifrirane datoteke
- Ponovno unošenje lozinke trezora
- Šifriranje nešifriranih datoteka
- Dešifriranje šifriranih datoteka
- Šifriranje određenih varijabli
- Dešifriranje šifriranih datoteka tijekom izvođenja
- Korištenjem trezora
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.
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.
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.