Biztonságos titkait egy Ansible Vault segítségével



Ez az Ansible Vault blog elmagyarázza, hogy az érzékeny adatok (jelszavak / titkos kulcs / cert fájlok) hogyan vannak titkosított fájlokban tárolva és beágyazva az Ansible Playbooks-ba.

Magasabb szintű technológiahasználat, annál nagyobb veszély fenyegeti a biztonságot. Egy tipikus Ansible beállítás megköveteli a „Titkok” betáplálását. Ezek a titkok szó szerint bármi lehetnek, jelszavak, API tokenek, SSH nyilvános vagy magánkulcsok, SSL tanúsítványok stb. Hogyan tudjuk ezeket a titkokat biztonságban tartani? Az Ansible az Ansible Vault nevű funkcióval rendelkezik.

Ebben a blogban bemutatom az Ansible Vault használatát, és feltárom az adatok biztonságának megőrzésével kapcsolatos legjobb gyakorlatokat.





A blog témái:

Ha el akarod sajátítani a DevOps programot, ' természetesen a választási lehetőséged lenne.



Mi az Ansible Vault?

Az infrastruktúra kódként való használata azzal a fenyegetéssel járhat, hogy érzékeny adatait a világ elé tárja, ami nem kívánt biztonsági problémákhoz vezethet. Az Ansible Vault olyan funkció, amely lehetővé teszi, hogy minden titkát biztonságban tartsa. Titkosítani tudja a teljes fájlokat, a teljes YAML lejátszási könyveket vagy akár néhány változót. Ez egy olyan lehetőséget biztosít, ahol nemcsak érzékeny adatokat titkosíthat, hanem integrálhat is a játékkönyvekbe.

A Vault fájlszintű részletességgel valósul meg, ahol a fájlok teljesen titkosítottak vagy teljesen titkosítatlanok. Ugyanazt a jelszót használja a titkosításhoz, valamint a fájlok visszafejtéséhez, ami az Ansible Vault használatát nagyon felhasználóbaráttá teszi.

Miért érdemes használni az Ansible Vault szolgáltatást?

Mivel az Ansible-t automatizálásra használják, nagy a valószínűsége, hogy a playbookok tartalmaznak bizonyos hitelesítő adatokat, SSL-tanúsítványokat vagy más érzékeny adatokat. Az ilyen érzékeny adatok, például sima szöveg mentése rossz ötlet. A GitHub vagy laptop ellopása helytelen elkövetése hatalmas veszteséget okozhat egy szervezetnek. Itt jelenik meg a képen az Ansible Vault. Ez egy nagyszerű módja annak, hogy az infrastruktúra kódként szerepeljen, anélkül, hogy a biztonságot veszélyeztetné.



Tegyük fel, hogy van egy játékkönyvünk, amely az EC2 példányt biztosítja az AWS-en. Meg kell adnia az AWS hozzáférési kulcs azonosítóját és az AWS titkos kulcsát a játékkönyvben. Nyilvánvaló okokból nem osztja meg ezeket a kulcsokat másokkal. Hogyan tartsa őket szabadon? Kétféle módon lehet - vagy titkosítani ezt a két változót, és beágyazni őket a játékkönyvbe, vagy titkosítani a teljes játékkönyvet.

Ez csak egyike volt azoknak a forgatókönyveknek, ahol egy lehetséges boltozat használható. Vagy titkosíthatunk teljes fájlokat, vagy csak néhány változót, amelyek érzékeny adatokat tárolhatnak, majd az Ansible automatikusan visszafejteti őket futás közben. Most már biztonságosan elkötelezhetjük ezeket az értékeket a GitHub előtt.

Titkosított fájl létrehozása

Titkosított fájl létrehozásához használja a ansible-boltozat létrehozása parancsot, és adja át a fájlnevet.

$ ansible-vault létrehoz fájlnevet.yaml

A rendszer kéri, hogy hozzon létre egy jelszót, majd erősítse meg újra beírásával.

ansible boltozat létrehozása - Ansible Vault - Edureka

A jelszó megerősítése után új fájl jön létre, és megnyit egy szerkesztőablakot. Alapértelmezés szerint az Ansible Vault szerkesztője vi. Adatokat adhat hozzá, menthet és kiléphet.

ha utasítások sql lekérdezésekben

És a fájl titkosítva van.

Titkosított fájlok szerkesztése

Ha titkosított fájlt szeretne szerkeszteni, akkor a gombbal szerkesztheti ansible-boltozat szerkesztése parancs.

$ ansible-vault edit secrets.txt

Ahol a secrets.txt egy már létrehozott, titkosított fájl.

A rendszer kéri a tároló jelszavának beillesztését. A fájl (visszafejtett verzió) megnyílik a vi szerkesztőben, majd elvégezheti a szükséges módosításokat.

Ha bejelöli a kimenetet, látni fogja, hogy a szöveg automatikusan titkosításra kerül a mentés és bezáráskor.

Titkosított fájl megtekintése

Ha csak egy titkosított fájlt szeretne megtekinteni, használhatja a ansible boltozat nézet parancs.

$ ansible-boltozat nézet fájlnév.yml

Ismét jelszót fog kérni.

és hasonló kimenetet fog látni.

A Vault jelszó újbóli megadása

Természetesen előfordul, hogy meg akarja változtatni a tároló jelszavát. Használhatja a ansible-boltozat rekey parancs.

$ ansible-boltozat rekey titkok.txt

A rendszer kérni fogja a tároló jelenlegi jelszavát, majd az új jelszót, és végül az új jelszó megerősítésével végez.

Titkosítatlan fájlok titkosítása

Tegyük fel, hogy van egy fájlja, amelyet titkosítani szeretne, használhatja a ansible-boltozat titkosítása parancs.

$ ansible-vault titkosítja a fájlnév.txt fájlt

A rendszer kéri a jelszó beillesztését és megerősítését, és a fájl titkosítva van.

Most, hogy megnézi a fájl tartalmát, az mind titkosítva van.

Titkosított fájlok visszafejtése

Ha titkosított fájlt akar dekódolni, használhatja ansible-boltozat visszafejtése parancs.

$ ansible-Vault dekódolja a fájlnév.txt fájlt

Szokás szerint felszólítja a tároló jelszavának beillesztésére és megerősítésére.

Specifikus változók titkosítása

Az Ansible Vault használata során az a legjobb gyakorlat, ha csak a bizalmas adatokat titkosítja. A fent kifejtett példában a fejlesztőcsapat nem akarja megosztani jelszavát a produkcióval és az átmeneti csapattal, de a saját feladatuk elvégzéséhez szükségük lehet bizonyos adatokhoz való hozzáférésre. Ilyen esetekben csak azokat az adatokat kell titkosítania, amelyeket nem szeretne megosztani másokkal, a többit pedig hagyja.

Az Ansible Vault lehetővé teszi csak meghatározott változók titkosítását. Használhatja a ansible-vault encrypt_string parancsot erre.

$ ansible-vault encrypt_string

A rendszer felszólítja a tároló jelszavának beillesztésére, majd megerősítésére. Ezután elkezdheti beilleszteni a titkosítani kívánt karakterlánc értékét. A bevitel befejezéséhez nyomja meg a ctrl-d gombot. Most hozzárendelheti ezt a titkosítottatértéka játékkönyv húrjára.

Ugyanezt elérheti egyetlen sorban is.

$ ansible-vault encrypt_string 'string' - név 'változó_neve'

Titkosított fájlok visszafejtése futás közben

Ha futás közben szeretné visszafejteni a fájlt, használhatja –Kérés-boltozat-bérlet zászló.

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

Ez visszafejt minden olyan titkosított fájlt, amelyet a launch.yml playbook végrehajtásához használnak. Ez is csak akkor lehetséges, ha az összes fájlt ugyanazzal a jelszóval titkosítják.

A jelszóra vonatkozó kérések idegesítővé válhatnak. Az automatizálás célja értelmetlenné válik. Hogyan tehetnénk ezt jobbá? Az Ansible rendelkezik a „jelszófájl” nevű szolgáltatással, amely a jelszót tartalmazó fájlra hivatkozik. Ezután csak futás közben adhatja át ezt a jelszófájlt az automatizáláshoz.

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

A jelszavakat megadó külön szkript is lehetséges. Győződjön meg arról, hogy a parancsfájl futtatható, és a jelszó ki van nyomtatva a szabványos kimenetre, hogy bosszantó hibák nélkül működjön.

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

A Széf azonosítójának használata

A Vault Id azonosítót adhat egy adott boltozat jelszavának. A Vault ID segít különböző fájlok titkosításában, különböző jelszavakkal, amelyekre a játékkönyvben hivatkozni lehet. Az Ansible ezen szolgáltatása az Ansible 2.4 kiadásával jelent meg. A kiadás előtt csak egy tároló jelszavát lehetett használni minden lehetséges playbook végrehajtásnál.

Tehát most, ha egy Ansible playbookot akar végrehajtani, amely több, különböző jelszavakkal titkosított fájlt használ, használhatja a Vault azonosítóját.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 fájlnév.yml

Ezzel véget értünk ennek az Ansible Vault blognak. Elképesztő felzárkózni a technológiához, és a lehető legteljesebb mértékben kihasználni őket, de nem a biztonság megalkuvásával. Ez az egyik legjobb módszer az Infrastruktúra kódként (IaC) használatára.

Ha hasznosnak találja ezt a cikket, nézze meg a ' kínálta Edureka. Ez magában foglalja az összes eszközt, amelyek intelligensebbé tették az informatikai iparágat.

Van egy kérdésünk? Kérjük, tegye fel ide: és mi visszatérünk hozzád.