Vyhledávání na webu

Jak používat Ansible Vault v Playbooks k ochraně citlivých dat – část 10


Při používání Ansible můžete být požádáni o zadání některých důvěrných nebo tajných informací v příručkách. To zahrnuje soukromé a veřejné klíče SSH, hesla a certifikáty SSL, abychom zmínili jen několik. Jak již víme, je špatné ukládat tyto citlivé informace v prostém textu ze zřejmých důvodů. Tyto informace je třeba uchovávat pod zámkem, protože si můžeme jen představit, co by se stalo, kdyby se jich zmocnili hackeři nebo neoprávnění uživatelé.

Naštěstí nám Ansible poskytuje praktickou funkci známou jako Ansible Vault. Jak již název napovídá, Ansible Vault pomáhá zabezpečit životně důležité tajné informace, jak jsme diskutovali dříve. Ansible Vault dokáže šifrovat proměnné nebo dokonce celé soubory a příručky YAML, jak si později ukážeme. Je to velmi praktický a uživatelsky přívětivý nástroj, který vyžaduje stejné heslo při šifrování a dešifrování souborů.

Pojďme se nyní ponořit a získat přehled o různých operacích, které lze provádět pomocí Ansible vault.

Jak vytvořit šifrovaný soubor v Ansible

Pokud chcete vytvořit zašifrovaný soubor Playbook, jednoduše použijte příkaz ansible-vault create a zadejte název souboru, jak je znázorněno.

ansible-vault create filename

Chcete-li například vytvořit zašifrovaný soubor mysecrets.yml, spusťte příkaz.

ansible-vault create mysecrets.yml

Poté budete vyzváni k zadání hesla a po jeho potvrzení se otevře nové okno pomocí editoru vi, kde můžete začít psát své hry.

Níže je ukázka některých informací. Jakmile budete hotovi, jednoduše uložte a ukončete playbook. A to je právě o tom při vytváření šifrovaného souboru.

Chcete-li ověřit šifrování souboru, použijte příkaz cat podle obrázku.

cat mysecrets.yml

Jak zobrazit šifrovaný soubor v Ansible

Pokud chcete zobrazit zašifrovaný soubor, jednoduše předejte příkaz ansible-vault view, jak je znázorněno níže.

ansible-vault view mysecrets.yml

Znovu budete vyzváni k zadání hesla. Opět budete mít přístup ke svým informacím.

Jak upravit zašifrovaný soubor v Ansible

Chcete-li provést změny v zašifrovaném souboru, použijte příkaz ansible-vault edit, jak je znázorněno na obrázku.

ansible-vault edit mysecrets.yml

Jako vždy zadejte heslo a poté pokračujte v úpravě souboru.

Po dokončení úprav uložte a ukončete editor vim.

Jak změnit heslo Ansible Vault

V případě, že cítíte potřebu změnit heslo k trezoru Ansible, můžete to snadno udělat pomocí příkazu ansible-vault rekey, jak je znázorněno níže.

ansible-vault rekey mysecrets.yml

To vás vyzve k zadání hesla trezoru a později vás požádá o zadání nového hesla a jeho pozdější potvrzení.

Jak zašifrovat nezašifrovaný soubor v Ansible

Předpokládejme, že chcete zašifrovat nezašifrovaný soubor, můžete to provést spuštěním příkazu ansible-vault encrypt, jak je znázorněno.

ansible-vault encrypt classified.txt

Později můžete soubor zobrazit pomocí příkazu cat, jak je uvedeno níže.

Jak dešifrovat zašifrovaný soubor

Chcete-li zobrazit obsah zašifrovaného souboru, jednoduše jej dešifrujte pomocí ansible-vault encrypt, jak je znázorněno v příkladu níže.

ansible-vault decrypt classified.txt

Jak šifrovat konkrétní proměnné v Ansible

Vault Ansible vám navíc poskytuje možnost šifrovat určité proměnné. To se provádí pomocí příkazu ansible-vault encrypt_string, jak je znázorněno na obrázku.

ansible-vault encrypt_string 

Ansible vault vás vyzve k zadání hesla a později bude vyžadovat jeho potvrzení. Dále zadejte hodnotu řetězce, kterou chcete zašifrovat. Nakonec stiskněte ctrl+d. Poté můžete začít přiřazovat zašifrovanou hodnotu v playbooku.

Toho lze dosáhnout v jediném řádku, jak je znázorněno níže.

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

Jak dešifrovat soubor Playbook za běhu

Pokud máte soubor playbooku a chcete jej za běhu dešifrovat, použijte volbu --ask-vault-pass, jak je znázorněno na obrázku.

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

Tím se dešifrují všechny soubory, které jsou použity v playbooku, za předpokladu, že byly zašifrovány pomocí stejného hesla.

Výzvy k zadání hesla mohou být občas nepříjemné. Tyto výzvy činí automatizaci neudržitelnou, zvláště když je automatizace klíčová. Pro zefektivnění procesu dešifrování playbooků za běhu se doporučuje mít samostatný soubor s hesly, který obsahuje heslo úložiště Ansible. Tento soubor pak může být předán za běhu, jak je znázorněno.

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

Tím se dostáváme k závěru tohoto tématu a automatizační řady Ansible. Doufáme, že výukové programy přinesly užitečné znalosti o tom, jak můžete automatizovat úlohy na více serverech z jednoho centrálního systému.