Zabezpečte svá tajemství pomocí Ansible Vault



Tento blog Ansible Vault vysvětluje, jak jsou citlivá data (hesla / soubory tajného klíče / cert) uložena v šifrovaných souborech a vložena do Ansible Playbooks.

Čím vyšší je využití technologie, tím větší je možné ohrožení bezpečnosti. Typické nastavení Ansible vyžaduje, abyste vložili „tajemství“. Těmito tajemstvími mohou být doslova cokoli, hesla, tokeny API, veřejné nebo soukromé klíče SSH, certifikáty SSL atd. Jak tyto tajemství udržujeme v bezpečí? Ansible poskytuje funkci nazvanou Ansible Vault.

V tomto blogu ukážu, jak používat Ansible Vault, a prozkoumám některé z osvědčených postupů pro zajištění bezpečnosti dat.





Témata zahrnutá v tomto blogu:

Pokud chcete ovládat DevOps, ' samozřejmě by byla vaše volba.



jak převést dvojitý na int

Co je Ansible Vault?

Mít infrastrukturu jako kód může představovat hrozbu vystavení vašich citlivých dat světu, což povede k nežádoucím bezpečnostním problémům. Ansible Vault je funkce, která vám umožní uchovat všechna vaše tajemství v bezpečí. Může šifrovat celé soubory, celé hrací knížky YAML nebo dokonce několik proměnných. Poskytuje zařízení, kde můžete nejen šifrovat citlivá data, ale také je integrovat do svých příruček.

Vault je implementován s granularitou na úrovni souborů, kde jsou soubory buď zcela šifrované, nebo zcela nezašifrované. Pro šifrování i pro dešifrování souborů používá stejné heslo, díky čemuž je používání Ansible Vault velmi uživatelsky přívětivé.

Proč používat Ansible Vault?

Protože se Ansible používá k automatizaci, existuje vysoká možnost, že příručky obsahují určitá pověření, certifikáty SSL nebo jiná citlivá data. Ukládat tak citlivá data jako prostý text je špatný nápad. Jeden nesprávný závazek ke krádeži GitHubu nebo notebooku může organizaci způsobit obrovskou ztrátu. Tady přichází na scénu trezor Ansible. Je to skvělý způsob, jak mít infrastrukturu jako kód, aniž by byla ohrožena bezpečnost.



Předpokládejme, že máme příručku, která poskytuje vaši instanci EC2 na AWS. V příručce musíte uvést své ID přístupového klíče AWS a tajný klíč AWS. Tyto klíče ze zřejmých důvodů nesdílíte s ostatními. Jak je držíte neexponované? Existují dva způsoby - Buď zašifrujte tyto dvě proměnné a vložte je do příručky, nebo zašifrujte celou příručku.

To byl jen jeden ze scénářů, kdy lze použít ansible vault. Můžeme buď zašifrovat celé soubory, nebo jen zašifrovat několik proměnných, které mohou obsahovat citlivá data, a poté je Ansible za běhu automaticky dešifruje. Nyní můžeme tyto hodnoty bezpečně potvrdit na GitHub.

Vytváření šifrovaného souboru

Chcete-li vytvořit šifrovaný soubor, použijte ansible-vault vytvořit příkaz a předat název souboru.

$ ansible-vault vytvořit název souboru.yaml

Zobrazí se výzva k vytvoření hesla a jeho potvrzení opětovným zadáním.

ansible vault create - Ansible Vault - Edureka

Jakmile je vaše heslo potvrzeno, vytvoří se nový soubor a otevře se editační okno. Ve výchozím nastavení je editor pro Ansible Vault vi. Můžete přidat data, uložit a ukončit.

A váš soubor je šifrovaný.

Úpravy šifrovaných souborů

Pokud chcete upravit šifrovaný soubor, můžete jej upravit pomocí ansible-vault editovat příkaz.

$ ansible-vault editovat secrets.txt

Kde secrets.txt je již vytvořený šifrovaný soubor.

Zobrazí se výzva k vložení hesla trezoru. Soubor (dešifrovaná verze) se otevře v editoru vi a poté můžete provést požadované změny.

Pokud zkontrolujete výstup, uvidíte, že váš text bude při uložení a zavření automaticky šifrován.

Prohlížení šifrovaného souboru

Chcete-li pouze zobrazit zašifrovaný soubor, můžete použít pohled na klenbu ansible příkaz.

$ ansible-vault zobrazit název souboru.yml

Opět budete vyzváni k zadání hesla.

a uvidíte podobný výstup.

Rekeying Vault Password

Samozřejmě existují chvíle, kdy budete chtít změnit heslo trezoru. Můžete použít ansible-vault rekey příkaz.

$ ansible-vault rekey secrets.txt

Zobrazí se výzva k zadání aktuálního hesla trezoru a poté nového hesla. Nakonec to potvrdíte potvrzením nového hesla.

Šifrování nezašifrovaných souborů

Předpokládejme, že máte soubor, který chcete zašifrovat, můžete použít šifrování ansible-vault příkaz.

$ ansible-vault zašifrovat soubor.txt

Zobrazí se výzva k zadání a potvrzení hesla a váš soubor je šifrovaný.

Nyní, když se podíváte na obsah souboru, je vše zašifrováno.

Dešifrování šifrovaných souborů

Pokud chcete dešifrovat zašifrovaný soubor, můžete použít dešifrování ansible-vault příkaz.

$ ansible-vault dešifrovat soubor.txt

Jako obvykle vás vyzve k vložení a potvrzení hesla trezoru.

Šifrování konkrétních proměnných

Osvědčeným postupem při používání Ansible Vault je šifrování pouze citlivých dat. V příkladu vysvětleném výše nechce vývojový tým sdílet své heslo s produkčním a přípravným týmem, ale k provedení svých vlastních úkolů může potřebovat přístup k určitým datům. V takových případech byste měli šifrovat pouze data, která nechcete sdílet s ostatními, a zbytek ponechat tak, jak jsou.

Ansible Vault umožňuje šifrovat pouze konkrétní proměnné. Můžete použít ansible-vault encrypt_string příkaz pro toto.

$ ansible-vault encrypt_string

Zobrazí se výzva k vložení a potvrzení hesla trezoru. Poté můžete začít vložit hodnotu řetězce, kterou chcete zašifrovat. Stisknutím Ctrl-D ukončete zadávání. Nyní můžete přiřadit toto šifrovanéhodnotana řetězec v příručce.

Stejné věci můžete dosáhnout také v jednom řádku.

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

Dešifrování šifrovaných souborů za běhu

Chcete-li dešifrovat soubor za běhu, můžete použít –Ask-vault-pass vlajka.

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

Tím se dešifrují všechny šifrované soubory, které se používají pro spuštění této příručky launch.yml. To je také možné, pouze pokud jsou všechny soubory šifrovány stejným heslem.

Výzvy k zadání hesla mohou být otravné. Účel automatizace se stává zbytečným. Jak to vylepšíme? Ansible má funkci nazvanou „soubor hesla“, která odkazuje na soubor obsahující heslo. Tento soubor hesla pak můžete za běhu předat, abyste jej zautomatizovali.

$ ansible-playbook launch.yml --vault-heslo-soubor ~ / .vault_pass.txt

Je také možné mít samostatný skript, který určuje hesla. Musíte zajistit, aby byl soubor skriptu spustitelný a heslo bylo vytištěno na standardní výstup, aby fungoval bez nepříjemných chyb.

$ ansible-playbook launch.yml --vault-heslo-soubor ~ / .vault_pass.py

Používání ID úložiště

ID úložiště je způsob, jak poskytnout identifikátor konkrétního hesla úložiště. Vault ID pomáhá při šifrování různých souborů pomocí různých hesel, na která se bude odkazovat v příručce. Tato funkce Ansible vyšla s vydáním Ansible 2.4. Před vydáním tohoto vydání bylo možné v každém provedení ansible playbook použít pouze jedno heslo trezoru.

Takže pokud si nyní přejete spustit Anbook, který používá více souborů zašifrovaných různými hesly, můžete použít ID úložiště.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 název souboru.yml

S tímto se dostáváme na konec tohoto blogu Ansible Vault. Je úžasné dohnat technologii a využít ji naplno, ale ne kompromisem v oblasti bezpečnosti. Toto je jeden z nejlepších způsobů, jak mít infrastrukturu jako kód (IaC).

Pokud vám tento článek připadá užitečný, podívejte se na ' nabízí Edureka. Pokrývá všechny nástroje, díky nimž je IT průmysl chytřejší.

Máte na nás dotaz? Zveřejněte to prosím na a my se vám ozveme.