Szyfrowanie i deszyfrowanie Ansible Vault
Szyfruj i deszyfruj sekrety Ansible Vault bezpośrednio w przeglądarce przy użyciu AES-256
Wejście
Wyjście
Instrukcja
Co to jest Ansible Vault?
Ansible Vault to wbudowana funkcja Ansible, która szyfruje wrażliwe dane, takie jak hasła, klucze API i certyfikaty, aby mogły być bezpiecznie przechowywane wraz z playbookami i rolami w kontroli wersji. Wykorzystuje symetryczne szyfrowanie AES-256 z derywacją klucza PBKDF2, co oznacza, że jedno hasło jest używane zarówno do szyfrowania, jak i deszyfrowania. Zawartość zaszyfrowana przez Vault jest identyfikowana przez nagłówek $ANSIBLE_VAULT;1.1;AES256 następowany szesnastkowo zakodowanym tekstem zaszyfrowanym.
Ansible Vault rozwiązuje fundamentalne wyzwanie DevOps: jak przechowywać sekrety w tym samym repozytorium co kod infrastruktury bez ich ujawniania. Zamiast zarządzać oddzielnymi magazynami sekretów lub polegać na zmiennych środowiskowych, zespoły mogą zatwierdzać zaszyfrowane pliki bezpośrednio do Git i deszyfrować je w czasie wykonywania podczas uruchamiania playbooków.
Opis narzędzia
To narzędzie szyfruje i deszyfruje zawartość Ansible Vault bezpośrednio w przeglądarce. Wprowadź hasło vault i tekst jawny, aby wygenerować w pełni kompatybilny zaszyfrowany blob vault, lub wklej istniejący blob vault, aby ujawnić oryginalny sekret. Żadne dane nie opuszczają przeglądarki — wszystkie operacje kryptograficzne są wykonywane po stronie klienta.
Przykłady
Szyfrowanie tekstu jawnego:
Wejście (tekst jawny):
db_password: s3cur3P@ss!Wyjście (zaszyfrowany vault):
$ANSIBLE_VAULT;1.1;AES256
33383239333036363833303565653032383832663162356533343630623030613133623032636566
6536303436646561356461623866386133623462383832620a646363626137626635353462386430
34333937313366383038346135656563316236313139333933383139376333353266666436316536
6335376265313432610a313537363637383264646261303637646631346137393964386432313633
3666Deszyfrowanie zawartości vault:
Wklej zaszyfrowany blok powyżej z prawidłowym hasłem, aby odzyskać oryginalną wartość db_password: s3cur3P@ss!.
Funkcje
- Szyfrowanie AES-256 w pełni kompatybilne z formatem Ansible Vault 1.1
- Tylko po stronie klienta — żadne dane nie są wysyłane na żaden serwer
- Obsługuje zarówno szyfrowanie, jak i deszyfrowanie za pomocą jednego pola hasła
- Natychmiastowa konwersja z podglądem na żywo podczas pisania
- Działa z wieloliniowymi sekretami, fragmentami YAML i dowolnym tekstem
Przypadki użycia
- Szybkie szyfrowanie nowego sekretu przed zatwierdzeniem go do repozytorium Git zawierającego playbooki Ansible
- Deszyfrowanie i inspekcja zawartości vault podczas debugowania bez konieczności lokalnej instalacji Ansible
- Udostępnianie zaszyfrowanych sekretów kolegom z zespołu, którzy mogą je deszyfrować w przeglądarce za pomocą udostępnionego hasła vault
Jak to działa
Ansible Vault 1.1 wykorzystuje następujący proces:
- Derywacja klucza — PBKDF2-HMAC-SHA256 derywuje 80-bajtowy klucz z hasła i losowego salt (10 000 iteracji). Klucz jest podzielony na 32-bajtowy klucz szyfrowania, 32-bajtowy klucz HMAC i 16-bajtowy IV.
- Szyfrowanie — Tekst jawny jest szyfrowany za pomocą AES-256-CTR przy użyciu pochodnego klucza i IV.
- Uwierzytelnianie — HMAC-SHA256 jest obliczany nad tekstem zaszyfrowanym w celu zapewnienia integralności.
- Kodowanie — Salt, skrót HMAC i tekst zaszyfrowany są kodowane szesnastkowo i łączone pod nagłówkiem
$ANSIBLE_VAULT;1.1;AES256.
Deszyfrowanie odwraca proces: hasło ponownie derywuje te same klucze, weryfikuje HMAC i deszyfruje tekst zaszyfrowany.
Ograniczenia
- Obsługuje tylko format Ansible Vault 1.1 z szyfrowaniem AES-256
- Nie obsługuje etykiet vault ID dla konfiguracji wielohasłowych
- Duże pliki mogą powodować krótkie opóźnienia interfejsu użytkownika ze względu na intensywny obliczeniowo krok derywacji klucza