Kaip naudoti „Ansible Vault“ grojaraščiuose, kad apsaugotumėte neskelbtinus duomenis - 10 dalis
Kai naudojatės „Ansible“, jums gali tekti įvesti konfidencialią ar slaptą informaciją į grojaraščius. Tai apima SSH asmeninius ir viešuosius raktus, slaptažodžius ir SSL sertifikatus, kad paminėtume tik kelis. Kaip jau žinome, bloga praktika išsaugoti šią neskelbtiną informaciją paprastu tekstu dėl akivaizdžių priežasčių. Šią informaciją reikia laikyti neužrakinta, nes galime tik įsivaizduoti, kas nutiktų, jei įsilaužėliai ar neįgalioti vartotojai ją sulaikytų.
Laimei, „Ansible“ suteikia mums patogią funkciją, vadinamą „Ansible Vault“. Kaip rodo pavadinimas, „Ansible Vault“ padeda apsaugoti gyvybiškai svarbią slaptą informaciją, kaip aptarėme anksčiau. Kaip vėliau parodysime, „Ansible Vault“ gali užšifruoti kintamuosius ar net visus failus ir YAML grojaraščius. Tai labai patogus ir patogus naudoti įrankis, kuriam šifruojant ir iššifruojant failus reikia to paties slaptažodžio.
Dabar pasinerkime ir apžvelkime įvairias operacijas, kurias galima atlikti naudojant „Ansible Vault“.
Kaip sukurti šifruotą failą
Jei norite sukurti užšifruotą „Playbook“ failą, tiesiog naudokite komandą „ansible-vault create“ ir nurodykite failo pavadinimą, kaip parodyta.
# ansible-vault create filename
Pavyzdžiui, norėdami sukurti užkoduotą failą mysecrets.yml, vykdykite komandą.
# ansible-vault create mysecrets.yml
Po to jūsų bus paprašyta įvesti slaptažodį ir jį patvirtinus, bus atidarytas naujas langas naudojant „vi“ redaktorių, kuriame galėsite pradėti rašyti savo pjeses.
Žemiau pateikiamas tam tikros informacijos pavyzdys. Kai baigsite, tiesiog išsaugokite ir išeikite iš grojaraščio. Viskas apie tai kuriant užkoduotą failą.
Norėdami patikrinti failo šifravimą, naudokite katės komandą, kaip parodyta.
# cat mysecrets.yml
Kaip peržiūrėti užšifruotą failą
Jei norite peržiūrėti užšifruotą failą, tiesiog perduokite ansible-skliauto peržiūros komandą, kaip parodyta žemiau.
# ansible-vault view mysecrets.yml
Dar kartą būsite paraginti įvesti slaptažodį. Dar kartą turėsite prieigą prie savo informacijos.
Kaip redaguoti šifruotą failą
Norėdami atlikti šifruoto failo pakeitimus, naudokite „ansible-vault“ redagavimo komandą, kaip parodyta.
# ansible-vault edit mysecrets.yml
Kaip visada, pateikite slaptažodį ir toliau redaguokite failą.
Baigę redaguoti, išsaugokite ir išeikite iš „Vim“ redaktoriaus.
Kaip pakeisti Ansible Vault slaptažodį
Jei manote, kad reikia pakeisti „Ansible Vault“ slaptažodį, galite lengvai tai padaryti naudodami komandą „Ansible-Vault rekey“, kaip parodyta žemiau.
# ansible-vault rekey mysecrets.yml
Tai pareikalauja saugyklos slaptažodžio ir vėliau prašo įvesti naują slaptažodį ir vėliau jį patvirtinti.
Kaip užšifruoti nešifruotą failą
Tarkime, kad norite užšifruoti nešifruotą failą, galite tai padaryti paleisdami „ansible-vault“ šifravimo komandą, kaip parodyta.
# ansible-vault encrypt classified.txt
Vėliau galite peržiūrėti failą naudodami katės komandą, kaip nurodyta toliau.
Kaip iššifruoti užšifruotą failą
Norėdami peržiūrėti užšifruoto failo turinį, paprasčiausiai iššifruokite failą naudodami „ansible-vault“ šifravimą, kaip parodyta toliau pateiktame pavyzdyje.
# ansible-vault decrypt classified.txt
Kaip užšifruoti konkrečius kintamuosius programoje Ansible
Be to, „Ansible Vault“ suteikia galimybę užšifruoti tam tikrus kintamuosius. Tai atliekama naudojant komandą „ansible-vault encrypt_string“, kaip parodyta.
# ansible-vault encrypt_string
Galimas saugykla paprašys įvesti slaptažodį ir vėliau pareikalaus patvirtinti. Tada įveskite eilutės vertę, kurią norite užšifruoti. Galiausiai paspauskite ctrl+d
. Po to galite pradėti priskirti šifruotą vertę grojaraštyje.
Tai galima pasiekti vienoje eilutėje, kaip parodyta žemiau.
# ansible-vault encrypt_string 'string' --name 'variable_name'
Kaip iššifruoti „Playbook“ failą vykdymo metu
Jei turite grojaraščio failą ir norite jį iššifruoti vykdymo metu, naudokite parinktį --ask-vault-pass
, kaip parodyta.
# ansible-playbook deploy.yml --ask-vault-pass
Tai iššifruoja visus failus, kurie naudojami grojaraštyje, jei jie buvo užšifruoti naudojant tą patį slaptažodį.
Slaptažodžio raginimai kartais gali būti erzinantys. Dėl šių raginimų automatika tampa nepatvari, ypač kai automatika yra svarbiausia. Norint supaprastinti grojaraščių iššifravimą vykdymo metu, rekomenduojama turėti atskirą slaptažodžio failą, kuriame yra „Ansible Vault“ slaptažodis. Tada šį failą galima perduoti vykdymo metu, kaip parodyta.
# ansible-playbook deploy.yml --vault-password-file /home/tecmint/vault_pass.txt
Tai leidžia mums padaryti išvadą šia tema ir „Ansible“ automatikos serija. Tikimės, kad vadovėliai įgijo naudingų žinių apie tai, kaip galite automatizuoti užduotis keliuose serveriuose iš vienos centrinės sistemos.