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.