Strona główna
» LINUX
»
Jak przechowywać poufne dane w systemie Linux za pomocą Vault
Jak przechowywać poufne dane w systemie Linux za pomocą Vault
HashiCorp Vault przechowuje statyczne sekrety w silniku klucz/wartość (KV) i umożliwia autoryzowanym użytkownikom pobieranie ich za pośrednictwem interfejsu internetowego lub interfejsu wiersza poleceń. Ten przewodnik demonstruje przepływ pracy na lokalnym komputerze z systemem Linux. System korzysta z silnika KV v2 i trybu programistycznego Vault, który jest celowo niebezpieczny, przechowuje dane tylko w pamięci i usuwa je po zatrzymaniu. Użyj tutaj wartości zastępczej; nie wprowadzaj prawdziwego hasła, klucza API ani prywatnych danych uwierzytelniających. W przypadku trwałych danych wrażliwych, wdróż Vault w trybie nieprogramistycznym z trwałym magazynem i odpowiednią kontrolą dostępu.
Zainstaluj Vault na Debianie lub Ubuntu
Użyj oficjalnego repozytorium pakietów HashiCorp zamiast starego, przypiętego do wersji linku do pobrania. Poniższe polecenia dodają klucz podpisu i repozytorium apt, a następnie zainstaluj Vault. Jeśli używasz RHEL, Fedory lub Amazon Linux, wybierz odpowiednie instrukcje dotyczące pakietów na oficjalnej stronie instalacji Vault .
Zachowaj ten proces w oknie terminala podczas wykonywania instrukcji. Powiąż go z adresem pętli zwrotnej, aby był dostępny tylko z Twojego komputera:
vault server -dev -dev-listen-address=127.0.0.1:8200
Vault automatycznie inicjuje i odblokowuje ten serwer deweloperski. Jego dane wyjściowe startowe zawierają token główny, który będzie potrzebny do zalogowania się do interfejsu użytkownika. Ten token ma szeroki dostęp administracyjny, dlatego należy go przechowywać na komputerze lokalnym i nigdy go nie udostępniać. Tryb deweloperski korzysta również z niebezpiecznych ustawień domyślnych i pamięci masowej. HashiCorp wyraźnie zaznacza, że jest on przeznaczony do celów eksperymentalnych, a nie produkcyjnych. Interfejs użytkownika jest dostępny pod adresem http://127.0.0.1:8200/ui. Wersja demonstracyjna korzysta z protokołu HTTP w pętli zwrotnej; nigdy nie udostępniaj tego portu sieci.
Aby uzyskać powtarzalny przykład, utwórz osobne mocowanie KV v2 o nazwie linux-kv. W drugim terminalu ustaw adres serwera i włącz mocowanie raz, gdy ta demonstracja jest aktywna:
Dzięki temu unikniesz polegania na domyślnej nazwie montowania, która może się różnić w zależności od przykładowej konfiguracji. Sekretne zapisy wersji montowania KV v2. Dokumentacja konfiguracji KV v2 w Vault opisuje polecenie montowania i przepływ pracy w interfejsie użytkownika.
Zapisz klucz testowy w interfejsie internetowym Vault
Otwórz http://127.0.0.1:8200/uiw przeglądarce. Wprowadź token główny wyświetlony w terminalu serwera i zaloguj się. Interfejs użytkownika Vault jest domyślnie włączony w trybie programistycznym; zapoznaj się z oficjalną dokumentacją interfejsu użytkownika .
Wybierz „Sekrety” , otwórz linux-kv/montowanie i wybierz opcję utworzenia sekretu. Strona silników powinna identyfikować to montowanie jako klucz/wartość w wersji 2.
W polu „Tajna ścieżka” wpisz linux-demo. W polach „klucz/wartość” wpisz api_keyklucz i test-valuewartość. Kliknij „Zapisz” . To są przykładowe ciągi znaków, a nie dane uwierzytelniające.
Montowanie i ścieżka razem identyfikują ten rekord jako linux-kv/linux-demo. Użyj neutralnych nazw ścieżek i kluczy: nazwy mogą pojawiać się w listach lub metadanych, więc nie umieszczaj w nich hasła ani innych poufnych informacji. W przypadku zwykłych rekordów klucz/wartość wielokrotnego użytku użyj KV. Silnik Cubbyhole w Vault ma zakres ograniczony do pojedynczego tokena i jest niszczony po jego wygaśnięciu.
Zapisz i pobierz sekret za pomocą CLI
Serwer programistyczny automatycznie uwierzytelnia lokalny interfejs wiersza poleceń Vault. W innym terminalu ustaw jego adres, jeśli to konieczne, a następnie użyj poniższej jawnej składni montowania:
export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put -mount=linux-kv linux-demo api_key=test-value
vault kv get -mount=linux-kv linux-demo
Polecenie getdrukuje wartość, dlatego przykład używa tylko symbolu zastępczego. Klucz KV v2 putzapisuje nową wersję i zastępuje bieżące dane klucza tajnego; uwzględnij każde pole, które chcesz zachować. Unikaj umieszczania prawdziwych danych uwierzytelniających bezpośrednio w poleceniach powłoki, gdzie mogą one pozostać w historii powłoki lub być widoczne dla inspekcji procesów lokalnych. Używaj tożsamości innej niż root i polityki ACL o wąskim zakresie dla prawdziwych użytkowników lub aplikacji.
Zatrzymaj wersję demonstracyjną i przygotuj Vault na prawdziwe dane
Wróć do terminala z uruchomionym serwerem i naciśnij Ctrl+C . Demo zostanie zatrzymane, a jego sekrety i token w pamięci zostaną utracone. Ponowne uruchomienie spowoduje utworzenie nowej instancji; poprzednie rekordy nie zostaną przywrócone.
Aby zachować prawdziwe sekrety, skonfiguruj serwer Vault (niebędący serwerem deweloperskim) z trwałym zapleczem pamięci masowej. HashiCorp zaleca rozwiązanie Integrated Storage do wielu wdrożeń zarządzanych samodzielnie; dokumentacja Raft wyjaśnia jego funkcje trwałości oraz tworzenia kopii zapasowych i przywracania. Zaplecze systemu plików to kolejna obsługiwana opcja do trwałego użytkowania na pojedynczym serwerze, ale nie zapewnia ono wysokiej dostępności.
Rzeczywiste wdrożenie wymaga również protokołu TLS do połączeń klienckich, uwierzytelniania w środowisku produkcyjnym, zasad minimalnych uprawnień, inicjalizacji chronionej i odpieczętowywania materiałów, ograniczonego dostępu do systemu plików oraz przetestowanych kopii zapasowych. Vault szyfruje przechowywane dane w stanie spoczynku, ale serwer, jego tokeny i kopie zapasowe nadal wymagają ochrony. Przed zapisaniem poświadczeń, na których Ci zależy, zapoznaj się z ostrzeżeniami HashiCorp dotyczącymi trybu deweloperskiego i wskazówkami dotyczącymi wdrażania w środowisku produkcyjnym.