Weboldal keresés

Az Ansible Vault használata a Playbooks-ban az érzékeny adatok védelmére – 10. rész


Az Ansible használata során előfordulhat, hogy be kell írnia néhány bizalmas vagy titkos információt a játékkönyvekbe. Ez magában foglalja az SSH privát és nyilvános kulcsait, jelszavait és SSL-tanúsítványait, hogy csak néhányat említsünk. Amint azt már tudjuk, nyilvánvaló okokból rossz gyakorlat, ha ezeket az érzékeny információkat egyszerű szövegben mentik. Ezeket az információkat zár alatt kell tartani, mert csak elképzelni tudjuk, mi történne, ha hackerek vagy jogosulatlan felhasználók hozzájutnának.

Szerencsére az Ansible az Ansible Vault néven ismert hasznos funkciót kínálja számunkra. Ahogy a neve is sugallja, az Ansible Vault segít megvédeni a létfontosságú titkos információkat, amint azt korábban megbeszéltük. Az Ansible Vault titkosíthat változókat, vagy akár teljes fájlokat és YAML-játékkönyveket is, amint azt később bemutatjuk. Ez egy nagyon praktikus és felhasználóbarát eszköz, amely ugyanazt a jelszót kéri a fájlok titkosításához és visszafejtéséhez.

Most merüljön el, és tekintse át az Ansible Vault használatával végrehajtható különféle műveleteket.

Hogyan hozzunk létre titkosított fájlt az Ansible-ben

Ha titkosított Playbook fájlt szeretne létrehozni, egyszerűen használja az ansible-vault create parancsot, és adja meg a fájlnevet a képen látható módon.

ansible-vault create filename

Például egy titkosított fájl létrehozásához mysecrets.yml hajtsa végre a parancsot.

ansible-vault create mysecrets.yml

Ezt követően a rendszer kéri a jelszó megadását, majd megerősítése után egy új ablak nyílik meg a vi szerkesztővel, ahol elkezdheti írni a darabjait.

Az alábbiakban egy minta látható néhány információból. Ha végzett, egyszerűen mentse el, és lépjen ki a forgatókönyvből. És ez csak arról szól, amikor titkosított fájlt hoz létre.

A fájl titkosításának ellenőrzéséhez használja a cat parancsot az ábrán látható módon.

cat mysecrets.yml

Titkosított fájl megtekintése az Ansible-ben

Ha titkosított fájlt szeretne megtekinteni, egyszerűen adja ki az ansible-vault view parancsot az alábbiak szerint.

ansible-vault view mysecrets.yml

A rendszer ismét jelszót kér. Ismét hozzáférhet az adataihoz.

Titkosított fájl szerkesztése az Ansible-ben

A titkosított fájl módosításához használja az ansible-vault edit parancsot az ábrán látható módon.

ansible-vault edit mysecrets.yml

Mint mindig, adja meg a jelszót, majd folytassa a fájl szerkesztését.

Miután végzett a szerkesztéssel, mentse el, és lépjen ki a vim szerkesztőből.

Az Ansible Vault jelszó megváltoztatása

Ha úgy érzi, meg kell változtatnia az Ansible Vault jelszavát, ezt könnyen megteheti az ansible-vault rekey paranccsal, az alábbiak szerint.

ansible-vault rekey mysecrets.yml

Ez kéri a tároló jelszavát, később pedig az új jelszó megadására, majd megerősítésére.

Titkosítatlan fájl titkosítása az Ansible-ben

Tegyük fel, hogy titkosítatlan fájlt szeretne titkosítani, ezt az ansible-vault encrypt parancs futtatásával teheti meg az ábrán látható módon.

ansible-vault encrypt classified.txt

Később megtekintheti a fájlt a cat paranccsal az alábbiak szerint.

Hogyan lehet visszafejteni egy titkosított fájlt

Egy titkosított fájl tartalmának megtekintéséhez egyszerűen fejtse vissza a fájl titkosítását az ansible-vault titkosítás használatával, az alábbi példában látható módon.

ansible-vault decrypt classified.txt

Specifikus változók titkosítása az Ansible-ben

Ezenkívül az Ansible vault lehetőséget biztosít bizonyos változók titkosítására. Ez az ansible-vault encrypt_string paranccsal történik, az ábrán látható módon.

ansible-vault encrypt_string 

Az Ansible Vault kérni fogja a jelszót, majd később meg kell erősítenie. Ezután írja be a titkosítani kívánt karakterlánc-értéket. Végül nyomja le a ctrl+d billentyűket. Ezt követően megkezdheti a titkosított érték hozzárendelését egy játékkönyvben.

Ez egyetlen sorban érhető el, az alábbiak szerint.

ansible-vault encrypt_string 'string' --name 'variable_name'

Playbook fájl visszafejtése futás közben

Ha van egy játékkönyv-fájlja, és futás közben szeretné visszafejteni a titkosítást, használja az ---ask-vault-pass opciót az ábra szerint.

ansible-playbook deploy.yml --ask-vault-pass

Ezzel visszafejti a játékfüzetben használt összes fájl titkosítását, feltéve, hogy ugyanazzal a jelszóval voltak titkosítva.

A jelszókérések időnként bosszantóak lehetnek. Ezek a felszólítások tarthatatlanná teszik az automatizálást, különösen akkor, ha az automatizálás kulcsfontosságú. A játékkönyvek futás közbeni visszafejtésének egyszerűsítéséhez ajánlott egy külön jelszófájlt, amely tartalmazza az Ansible Vault jelszavát. Ez a fájl ezután a képen látható módon továbbítható futás közben.

ansible-playbook deploy.yml --vault-password-file  /home/tecmint/vault_pass.txt

Ezzel el is érkeztünk a téma és az Ansible automatizálási sorozat végére. Reméljük, hogy az oktatóanyagok hasznos ismereteket adtak át arról, hogyan automatizálhatja a feladatokat több szerveren egyetlen központi rendszerből.