Zaistite svoje tajomstvá pomocou možného trezoru



Tento blog Ansible Vault vysvetľuje, ako sú citlivé dáta (heslá / súbory tajných kľúčov / cert) uložené v šifrovaných súboroch a vložené do Ansible Playbooks.

Čím vyššie je použitie technológie, tým väčšie je možné ohrozenie bezpečnosti. Typické nastavenie Možných vyžaduje, aby ste vložili „Tajomstvá“. Týmito tajomstvami môžu byť doslova čokoľvek, heslá, tokeny API, verejné alebo súkromné ​​kľúče SSH, certifikáty SSL atď. Ako môžeme tieto tajomstvá uchovať v bezpečí? Ansible poskytuje funkciu nazvanú Ansible Vault.

V tomto blogu ukážem, ako používať Ansible Vault, a preskúmam niektoré z najlepších postupov na zaistenie bezpečnosti údajov.





Témy zahrnuté v tomto blogu:

Ak chcete ovládať DevOps, ' samozrejme bude vaša voľba typu ísť na.



ako obrátiť reťazec python -

Čo je Ansible Vault?

Infraštruktúra ako kód môže predstavovať hrozbu vystavenia vašich citlivých údajov svetu, čo povedie k nežiaducim problémom so zabezpečením. Ansible Vault je funkcia, ktorá vám umožní uchovať všetky vaše tajomstvá v bezpečí. Môže šifrovať celé súbory, celé hracie knižky YAML alebo dokonca niekoľko premenných. Poskytuje zariadenie, kde môžete nielen šifrovanie citlivých údajov, ale aj ich integráciu do vašich kníh o hre.

Vault je implementovaný s granularitou na úrovni súborov, kde sú súbory buď úplne šifrované, alebo úplne nezašifrované. Používa rovnaké heslo na šifrovanie aj na dešifrovanie súborov, vďaka čomu je použitie Ansible Vault veľmi užívateľsky príjemné.

Prečo používať Ansible Vault?

Pretože sa Ansible používa na automatizáciu, existuje vysoká pravdepodobnosť, že príručky Playbook obsahujú určité poverenia, certifikáty SSL alebo iné citlivé údaje. Ukladať také citlivé údaje ako obyčajný text je zlý nápad. Jedno nesprávne spáchanie na krádeži GitHub alebo notebooku môže spôsobiť organizácii obrovské straty. To je miesto, kde prichádza do úvahy trezor Ansible. Je to vynikajúci spôsob, ako mať infraštruktúru ako kód bez toho, aby bola ohrozená bezpečnosť.



Predpokladajme, že máme príručku, ktorá poskytuje vašu inštanciu EC2 na AWS. V príručke musíte uviesť ID prístupového kľúča AWS a tajný kľúč AWS. Tieto kľúče nezdieľate s ostatnými zo zrejmých dôvodov. Ako ich držíte neexponované? Existujú dva spôsoby - Buď zašifrujete tieto dve premenné a vložíte ich do príručky, alebo zašifrujete celú príručku.

Toto bol iba jeden zo scenárov, keď sa dá použiť ansible trezor. Môžeme buď zašifrovať celé súbory, alebo len zašifrovať niekoľko premenných, ktoré by mohli obsahovať citlivé údaje, a potom ich program Ansible automaticky za behu dešifruje. Teraz môžeme tieto hodnoty bezpečne odovzdať GitHubu.

Vytvára sa šifrovaný súbor

Na vytvorenie šifrovaného súboru použite ansible-vault vytvoriť príkaz a odovzdať názov súboru.

$ ansible-vault vytvoriť názov súboru.yaml

Zobrazí sa výzva na vytvorenie hesla a jeho potvrdenie opätovným zadaním.

ansible vault create - Ansible Vault - Edureka

Po potvrdení hesla sa vytvorí nový súbor, ktorý otvorí okno úprav. Predvolene je editorom aplikácie Ansible Vault vi. Môžete pridávať údaje, ukladať a ukončovať.

A váš súbor je šifrovaný.

Úpravy šifrovaných súborov

Ak chcete upraviť šifrovaný súbor, môžete ho upraviť pomocou úprava ansible-vault príkaz.

$ ansible-vault upraviť secrets.txt

Kde secrets.txt je už vytvorený šifrovaný súbor.

Zobrazí sa výzva na vloženie hesla trezoru. Súbor (dešifrovaná verzia) sa otvorí v editore vi a potom môžete vykonať požadované zmeny.

Ak skontrolujete výstup, uvidíte, že sa váš text pri uložení a zatvorení automaticky zašifruje.

Prezeranie šifrovaného súboru

Ak si chcete iba pozrieť zašifrovaný súbor, môžete použiť pohľad zodpovednej klenby príkaz.

$ ansible-vault zobraziť názov súboru.yml

Opäť sa zobrazí výzva na zadanie hesla.

a uvidíte podobný výstup.

Opätovné zadanie hesla trezoru

Samozrejme, že niekedy budete chcieť zmeniť heslo trezoru. Môžete použiť ansible-vault rekey príkaz.

$ ansible-vault rekey secrets.txt

Zobrazí sa výzva na zadanie aktuálneho hesla a potom nového hesla. Nakoniec to urobíte potvrdením nového hesla.

Šifrovanie nezašifrovaných súborov

Predpokladajme, že máte súbor, ktorý chcete zašifrovať, môžete použiť šifrovanie ansible-vault príkaz.

$ ansible-vault šifruje názov súboru.txt

Zobrazí sa výzva na vloženie a potvrdenie hesla a váš súbor je šifrovaný.

Teraz, keď sa pozriete na obsah súboru, je všetko šifrované.

Dešifrovanie šifrovaných súborov

Ak chcete dešifrovať zašifrovaný súbor, môžete použiť dešifrovanie ansible-vault príkaz.

$ ansible-vault dešifrovať názov súboru.txt

Ako obvykle vás vyzve na vloženie a potvrdenie hesla trezoru.

Šifrovanie špecifických premenných

Osvedčeným postupom pri používaní Ansible Vault je šifrovanie iba citlivých údajov. V príklade vysvetlenom vyššie vývojový tím nechce zdieľať svoje heslo s produkčným a fázovacím tímom, ale na vykonanie svojej vlastnej úlohy môže potrebovať prístup k určitým údajom. V takýchto prípadoch by ste mali šifrovať iba údaje, ktoré nechcete zdieľať s ostatnými, a ostatné ponechajte tak, ako sú.

Ansible Vault umožňuje šifrovať iba konkrétne premenné. Môžete použiť ansible-vault encrypt_string príkaz pre toto.

$ ansible-vault encrypt_string

Zobrazí sa výzva na vloženie a potvrdenie hesla trezoru. Potom môžete začať vkladať hodnotu reťazca, ktorý chcete zašifrovať. Stlačením klávesov ctrl-d ukončíte zadávanie. Teraz to môžete priradiť šifrovanéhodnotuna strunu v playbooku.

To isté môžete dosiahnuť aj jedným riadkom.

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

Dešifrovanie šifrovaných súborov počas behu programu

Ak chcete dešifrovať súbor počas behu programu, môžete použiť –Ask-trezor-pass vlajka.

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

Týmto dešifrujete všetky šifrované súbory, ktoré sa používajú na vykonanie tejto príručky launch.yml. To je tiež možné, iba ak sú všetky súbory šifrované rovnakým heslom.

Výzvy na zadanie hesla môžu byť nepríjemné. Účel automatizácie sa stáva nezmyselným. Ako to vylepšíme? Ansible má funkciu nazvanú „súbor hesla“, ktorá odkazuje na súbor obsahujúci heslo. Tento súbor s heslom potom môžete za behu iba predať a automatizovať ho.

$ ansible-playbook launch.yml --vault-heslo-súbor ~ / .vault_pass.txt

Je tiež možné mať samostatný skript, ktorý určuje heslá. Musíte pracovať s tým, aby bol súbor skriptu spustiteľný a heslo bolo vytlačené na štandardný výstup, aby fungoval bez nepríjemných chýb.

$ ansible-playbook launch.yml --vault-heslo-súbor ~ / .vault_pass.py

Používanie ID úložiska

ID trezoru je spôsob poskytnutia identifikátora konkrétneho hesla trezoru. Vault ID pomáha pri šifrovaní rôznych súborov pomocou rôznych hesiel, na ktoré sa má odkazovať v príručke. Táto funkcia aplikácie Ansible vyšla s vydaním verzie Ansible 2.4. Pred týmto vydaním bolo možné v každom zodpovedajúcom spustení príručky použiť iba jedno heslo trezoru.

Takže teraz, ak chcete spustiť príručku Ansible, ktorá používa viac súborov šifrovaných rôznymi heslami, môžete použiť ID úložiska.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 názov súboru.yml

Týmto sa dostávame na koniec tohto blogu Ansible Vault. Je úžasné doháňať technológie a využívať ich naplno, ale nie kompromismi v oblasti bezpečnosti. Toto je jeden z najlepších spôsobov, ako mať infraštruktúru ako kód (IaC).

Ak považujete tento článok za užitočný, prečítajte si ' ponúka Edureka. Zahŕňa všetky nástroje, vďaka ktorým je IT priemysel inteligentnejší.

Máte na nás otázku? Zverejnite to prosím a ozveme sa vám.