Linux E X P R E S

Facebook

Vault – spravujte svá tajemství

zamek_klic.png

Ať už potřebujete bezpečně ukládat přihlašovací údaje, API klíče, přístupové údaje k databázi nebo třeba tajný recept na koláč vaší babičky, hodí se mít jednotné úložiště, kde tato data bezpečně zašifrujete a znepřístupníte tak nezvaným hostům. K tomu slouží software Vault, který vám v tomto článku představím. Projdeme si i nejzákladnější operace s tímto softwarem.


Vault je open-source projekt společnosti HashiCorp, která se zabývá primárně systémy pro automatizaci při vývoji a nasazování softwaru (určitě znáte třeba Vagrant nebo Consul). Vzhledem k zaměření HashiCorpu je tak logické vytvořit nástroj, který umožní jednotný přístup k údajům, které by měly být „běžnému smrtelníkovi“ nedostupné.

Poznámka šéfredaktora: Pod názvem Vault najdete další dva softwary, konkrétně systém Vault pro správu verzí a systém správy dokumentů Autodesk Vault. S Vaultem od fimy HashiCorp nemají nic společného.

Vault nabízí přesně toto – jednotný přístup k citlivým údajům. Data jsou šifrována silnou šifrou už v paměti a na disk se dostávají až (a jedině v) zašifrované podobě. Navíc je možné data ukládat i na jiné druhy úložišť nebo třeba i do zmíněného Consulu. Vault ani nemusí data přimo ukládat, může sloužit jen jako prostředník pro šifrování a dešifrování dat v jiných úložištích, takže není potřeba programovat vlastní řešení. HashiCorp pak dále nabízí možnost používat Vault v cloudu na svých serverech.

Kdo využije Vault?

Na tuto otázku není možné snadno odpovědět, záleží na konkrétních požadavcích. Obecně se dá říci, že Vault se hodí všude, kde je potřeba ukládat bezpečně citlivá data a přístup k těmto datům řídit a sledovat.

Příklad z firemního prostředí – každý zaměstnanec má vlastní přihlašovací údaje do systému. Ty je možné ve Vaultu bezpečně ukládat nebo s jeho pomocí šifrovat a ukládat do databáze.



Instalace Vaultu

Instalace je velmi jednoduchá, stačí stáhnout patřičný soubor na webu vaultproject.io. Nejsou dostupné balíčky pro jednotlivé distribuce, pouze jeden společný ZIP archiv pro danou architekturu, přičemž podporovány jsou x86, x86_64 a ARM procesory.

Poznámka autora: Instalaci jsem prováděl na stroji s Ubuntu, ale stejně probíhá i na jiných distribucích. Uživatelé Windows, OS X a BSD budou postupovat lehce odlišně.

Archiv obsahuje binární soubor vault. Tento soubor lze po extrakci spustit z terminálu, osobně ale doporučuji jej přesunout do adresáře /usr/sbin (nebo spíše /usr/local/sbin a ohlídat si nastavení proměnné PATH – je to čistší řešení, konformní s FHS; pozn. šéfredaktora), aby byl příkaz vault dostupný odkudkoli. Instalace je tímto dokončena.

Základní práce s Vaultem

Vault staví na klient-server architektuře, proto musíme server spustit. To provedeme pomocí příkazu vault server v libovolném oknu terminálu. Pro testování na „pískovišti“ je doporučeno použít přepínač -dev, kvůli výpisu do terminálu. Vault běží na popředí, takže terminál nebude možno využívat. To se ale hodí kvůli dalším nastavením.

Ve výpisu serveru se skrývá pro nás podstatná adresa Ve výpisu serveru se skrývá pro nás podstatná adresa

Pro práci s Vaultem si otevřeme druhé okno terminálu, ve kterém spustíme příkaz export VAULT_ADDR=adresa, přičemž právě adresa je uvedena ve výpisu v prvním okně terminálu se zbytkem příkazu. Ve druhém okně dále spustíme příkaz vault status, který nás informuje o stavu serveru. Z výpisu si pod exportem zkopírujme a uložme stranou unseal key. Protože jen testujeme, není nutné řešit bezpečnost, postačí textový soubor na ploše nebo kdekoliv jinde.

Vše jsme provedli správně, server běží Vše jsme provedli správně, server běží

Pokud vše funguje, budeme nadále pracovat jen s druhým oknem terminálu.

Ukrýváme tajemství

V tuto chvíli nebudeme řešit zabezpečení a zkusíme si jednoduše něco uložit do Vaultu. K tomu je určen příkaz vault write, kterým je možno zapisovat i konfiguraci. Pro uložení libovolného tajemství použijeme příkaz:

vault write secret/nazev_klice value="Ultra tajná informace"

O našem malém úspěchu nás pak informuje hláška:

Success! Data written to: secret/nazev_klice

Můžeme uložit více informací na jednou. value v příkazu je pouze název klíče, můžeme jich v příkazu zadat třeba deset různě pojmenovaných najednou.

vault write secret/profil jmeno=Jan prijmeni=Novak povolani=ucitel

Pomocí příkazů vault readvault delete můžeme klíč s hodnotou vypsat, resp. vymazat z paměti.

Trezor potřebuje klíč

Teď si povíme něco o tokenech. To je základní (ale ne jediná) metoda, jak data zabezpečit. Jeden token jsme již získali od serveru (a uložili si jej do textového dokumentu). Vault nás autentifikoval již na začátku a my tak můžeme přistupovat k uloženým tajemstvím. Když ale zadáme příkaz vault auth a nepředáme validní token, přístup ztratíme.

Tak tohle je nemilé... Tak tohle je nemilé...

Zkusme nyní příkaz zadat znovu, ale tentokrát s tokenem, který máme od začátku.

Hned lepší Hned lepší

Najednou můžeme provádět zase všechny operace. Tokeny je možno i generovat, nově generované získají práva rodiče (funguje zde princip dědičnosti). To je ale prozatím nad rámec.

Jako ochutnávka to stačí...

Dnes jsme si představili systém Vault a prošli opravdu ty maximální základy práce, na čemž byla krásně demonstrována jednoduchost ovládání – stačí znalost příkazové řádky. Bude-li ze strany čtenářů zájem, naváži pokračováním, kdy si vytvoříme nový server a projdeme podrobněji rozsáhlé možnosti, které nám Vault nabízí.

Diskuze (6) Nahoru