Apsaugokite savo paslaptis naudodami „Ansible Vault“



Šiame tinklaraštyje „Ansible saugykla“ paaiškinama, kaip slapti duomenys (slaptažodžiai / slapto rakto / sertifikato failai) saugomi užšifruotuose failuose ir įterpiami į „Ansible Playbooks“.

Didesnis technologijų naudojimas, didesnis galimas pavojus saugumui. Norint nustatyti įprastą „Ansible“ sąranką, reikia pateikti „Secrets“. Šios paslaptys gali būti tiesiogine prasme, slaptažodžiai, API žetonai, SSH vieši ar privatūs raktai, SSL sertifikatai ir kt. Kaip mes saugome šias paslaptis? „Ansible“ suteikia galimybę vadinti „Ansible Vault“.

Šiame tinklaraštyje aš pademonstruosiu, kaip naudotis „Ansible Vault“, ir ištyrsiu keletą geriausių duomenų saugojimo praktikų.





Šiame tinklaraštyje aptariamos temos:

Jei norite įsisavinti „DevOps“, ' kursas būtų jūsų pasirinkimas.



Kas yra „Ansible Vault“?

Turint infrastruktūrą kaip kodą, gali kilti grėsmė, kad jūsų slapti duomenys bus atskleisti pasauliui, o tai gali sukelti nepageidaujamų saugumo problemų. „Ansible Vault“ yra funkcija, leidžianti saugoti visas savo paslaptis. Tai gali užšifruoti visus failus, visus YAML grojaraščius ar net keletą kintamųjų. Tai suteikia galimybę ne tik užšifruoti neskelbtinus duomenis, bet ir integruoti juos į savo grojaraščius.

„Vault“ yra įdiegtas failo lygiu, kai failai yra visiškai užšifruoti arba visiškai nešifruoti. Šifravimui ir failų iššifravimui naudojamas tas pats slaptažodis, kuris leidžia „Ansible Vault“ naudoti labai patogiai.

Kodėl naudoti Ansible Vault?

Kadangi „Ansible“ naudojama automatizavimui, yra didelė tikimybė, kad grojaraščiuose yra tam tikrų prisijungimo duomenų, SSL sertifikatų ar kitų neskelbtinų duomenų. Išsaugoti tokius neskelbtinus duomenis kaip paprastą tekstą yra bloga idėja. Vienas neteisingas įsipareigojimas „GitHub“ ar nešiojamojo kompiuterio vagystė gali sukelti organizacijai didžiulius nuostolius. Čia atsiranda „Ansible skliautas“. Tai puikus būdas turėti infrastruktūrą kaip kodą, nepakenkiant saugumui.



Tarkime, mes turime knygelę, kurioje pateikiama jūsų EC2 instancija AWS. „Playbook“ turite pateikti savo AWS prieigos rakto ID ir slaptą AWS raktą. Šių raktų nesidalijate su kitais dėl akivaizdžių priežasčių. Kaip juos išlaikyti neeksponuotus? Yra du būdai - arba užšifruoti šiuos du kintamuosius ir įterpti juos į pjesę, arba užšifruoti visą pjesę.

Tai buvo tik vienas iš scenarijų, kai galima naudoti pritaikomą saugyklą. Mes galime arba užšifruoti visus failus, arba tiesiog užšifruoti keletą kintamųjų, kuriuose gali būti slaptų duomenų, o tada „Ansible“ juos automatiškai iššifruoja vykdymo metu. Dabar galime saugiai priskirti šias vertybes „GitHub“.

Šifruoto failo kūrimas

Norėdami sukurti užšifruotą failą, naudokite ansible-skliautas sukurti komandą ir perduoti failo pavadinimą.

$ ansible-skliautas sukuria failo pavadinimą.yaml

Būsite paraginti sukurti slaptažodį ir tada jį patvirtinti iš naujo įvesdami.

„Ansible Vault“ - „Ansible Vault“ - „Edureka“

Patvirtinus slaptažodį, bus sukurtas naujas failas ir atidarytas redagavimo langas. Pagal numatytuosius nustatymus „Ansible Vault“ redaktorius yra vi. Galite pridėti duomenų, išsaugoti ir išeiti.

Ir jūsų failas yra užšifruotas.

Šifruotų failų redagavimas

Jei norite redaguoti užšifruotą failą, galite jį redaguoti naudodami ansible-skliauto redagavimas komandą.

$ ansible-skliautas redaguoti secrets.txt

Kur „secrets.txt“ yra jau sukurtas, užšifruotas failas.

Būsite paraginti įvesti saugyklos slaptažodį. Failas (iššifruota versija) bus atidarytas „vi“ redaktoriuje, tada galėsite atlikti reikiamus pakeitimus.

Jei patikrinsite išvestį, pamatysite, kad tekstas bus automatiškai užšifruotas, kai išsaugosite ir uždarysite.

susijungia į c ++

Šifruoto failo peržiūra

Jei norite tiesiog peržiūrėti užšifruotą failą, galite naudoti skliauto vaizdas komandą.

$ ansible-skliautas peržiūrėti failo pavadinimą.yml

Vėlgi būsite paraginti įvesti slaptažodį.

ir pamatysite panašią išvestį.

Atnaujinamas saugyklos slaptažodis

Žinoma, yra atvejų, kai norėsite pakeisti saugyklos slaptažodį. Galite naudoti ansible-skliautas rekey komandą.

$ ansible-skliautas atkuria paslaptis.txt

Jums bus pasiūlytas dabartinis saugyklos slaptažodis, tada naujas slaptažodis ir galiausiai tai bus padaryta patvirtinant naują slaptažodį.

Nešifruotų failų šifravimas

Tarkime, kad turite failą, kurį norite užšifruoti, galite naudoti šifruoti ansible skliautas komandą.

$ ansible-skliautas užšifruoti failo pavadinimą.txt

Būsite paraginti įvesti ir patvirtinti slaptažodį, o failas bus užšifruotas.

Dabar, kai peržiūrite failo turinį, jis yra užšifruotas.

Šifruotų failų iššifravimas

Jei norite iššifruoti užšifruotą failą, galite naudoti atšaukiamas skliautas komandą.

$ ansible-skliautas iššifruoti failo pavadinimą.txt

Kaip įprasta, jis paragins įterpti ir patvirtinti saugyklos slaptažodį.

Šifruoti konkrečius kintamuosius

Geriausia „Ansible Vault“ naudojimo praktika yra šifruoti tik neskelbtinus duomenis. Aukščiau paaiškintame pavyzdyje kūrėjų komanda nenori dalintis slaptažodžiu su gamybos ir pastatymo komanda, tačiau jiems gali prireikti prieigos prie tam tikrų duomenų, kad galėtų atlikti savo užduotį. Tokiais atvejais turėtumėte šifruoti tik tuos duomenis, kurių nenorite dalytis su kitais, o likusius palikite tokius, kokie jie yra.

„Ansible Vault“ leidžia užšifruoti tik konkrečius kintamuosius. Galite naudoti ansible-skliautas encrypt_string komandą tam.

$ ansible-vault encrypt_string

Būsite paraginti įterpti ir patvirtinti saugyklos slaptažodį. Tada galite pradėti įterpti eilutės vertę, kurią norite užšifruoti. Norėdami baigti įvestį, paspauskite „Ctrl-d“. Dabar galite priskirti šifruotąvertėprie pjesės pjesėje.

Jūs taip pat galite pasiekti tą patį dalyką vienoje eilutėje.

$ ansible-vault encrypt_string 'string' - vardas 'kintamas_vardas'

Šifruotų failų iššifravimas vykdymo metu

Jei norite iššifruoti failą vykdymo metu, galite naudoti –Klausa-skliautas-leidimas vėliava.

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

Tai iššifruos visus užšifruotus failus, kurie naudojami vykdant šį „launch.yml“ grojaraštį. Be to, tai įmanoma tik tuo atveju, jei visi failai yra užšifruoti tuo pačiu slaptažodžiu.

Slaptažodžio raginimai gali erzinti. Automatikos tikslas tampa beprasmis. Kaip tai padaryti geriau? „Ansible“ turi funkciją, vadinamą „slaptažodžio byla“, kuri nurodo failą, kuriame yra slaptažodis. Tada galite tiesiog perduoti šį slaptažodžio failą vykdymo metu, kad jį automatizuotumėte.

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

Taip pat galima turėti atskirą scenarijų, nurodantį slaptažodžius. Turite įsitikinti, kad scenarijaus failas yra vykdomas ir slaptažodis atspausdintas standartinėje išvestyje, kad jis veiktų be erzinančių klaidų.

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

Naudojant „Vault“ ID

„Vault“ ID yra būdas pateikti identifikatorių tam tikram saugyklos slaptažodžiui. „Vault“ ID padeda užšifruoti skirtingus failus su skirtingais slaptažodžiais, į kuriuos reikia nurodyti grojaraštyje. Ši „Ansible“ funkcija pasirodė išleidus „Ansible 2.4“. Iki šio leidimo kiekvienam galimai grojaraščio vykdymui buvo galima naudoti tik vieną saugyklos slaptažodį.

Taigi dabar, jei norite paleisti „Ansible playbook“, kuriame naudojami keli skirtingais slaptažodžiais užšifruoti failai, galite naudoti „Vault“ ID.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 failo pavadinimas.yml

Tuo mes baigiame šį „Ansible Vault“ tinklaraštį. Nuostabu pasivyti technologijas ir išnaudoti visas jų galimybes, bet ne kompromituojant saugumą. Tai yra vienas iš geriausių būdų, kaip naudoti „Infrastructure as Code“ (IaC).

Jei jums atrodo, kad šis straipsnis yra naudingas, patikrinkite ' pasiūlė Edureka. Ji apima visus įrankius, kurie pavertė IT pramonę protingesne.

Turite mums klausimą? Prašau paskelbti ir mes su jumis susisieksime.