Bezpieczne podejście polega na traktowaniu procedury odzyskiwania, która chroni kluczowy materiał, bezpiecznie importuje dane, ładuje właściwy główny klucz szyfrowania i potwierdza oddzielne przywrócenie, jako sekwencji obserwowalnych etapów, a nie pojedynczego polecenia.
W przypadku zaszyfrowanego zbioru danych ZFS na domowym serwerze NAS praktyczne ryzyko polega na tym, że zaszyfrowany zbiór danych nie zostanie zamontowany albo jego migawki nie będą jeszcze godne zaufania jako dane możliwe do odzyskania. Zapisz bieżącą tożsamość i punkt odzyskiwania, zacznij od najmniej inwazyjnego testu rozróżniającego, zinterpretuj wyniki pozytywne i negatywne przed zmianą kolejnej zmiennej oraz przerwij, gdy pamięć masowa stanie się niestabilna lub jedyna możliwa do odzyskania kopia byłaby narażona. Poniższa procedura kończy się dopiero wtedy, gdy pierwotne obciążenie robocze zadziała albo dowody doprowadzą do granicy wymagającej eskalacji.
Chroń klucze i zarejestruj stan awarii
Wstrzymaj automatyczne importy, replikację, scrubowanie i zapisy aplikacji do czasu zrozumienia awarii. Zapisz pulę, hierarchię zbiorów danych, główny klucz szyfrowania, format i lokalizację klucza, ostatni znany punkt montowania, dokładny błąd oraz informację, czy klucz był kiedykolwiek testowany na innym hoście odzyskiwania.
Natywne szyfrowanie ZFS oddziela ładowanie klucza od montowania zbioru danych. Artykuł główne klucze szyfrowania ZFS i działanie kluczy opisuje główne klucze szyfrowania oraz klucze dziedziczone, dlatego podanie prawidłowego klucza do niewłaściwego zbioru potomnego lub założenie, że każdy zaszyfrowany zbiór danych ma niezależny klucz, może prowadzić do mylących prób odzyskiwania.
Twórz chronione kopie plików kluczy i notatek dotyczących odzyskiwania, nie umieszczając sekretów w historii terminala ani w dziennikach pomocy technicznej. Natychmiast przerwij, jeśli nie istnieje zweryfikowany klucz ani kopia zapasowa, urządzenia puli są niestabilne lub polecenie proponuje destrukcyjną naprawę.
Importuj pulę bez ujawniania ścieżek produkcyjnych
Na hoście odzyskiwania potwierdź tożsamość urządzeń i zaimportuj pulę z alternatywnym katalogiem głównym albo bez montowania zbiorów danych w aktywnych ścieżkach. Przed załadowaniem kluczy sprawdź stan puli i właściwości zbiorów danych. Pomyślny import puli dowodzi jedynie, że metadane puli są możliwe do odczytania, a nie że zaszyfrowana zawartość może zostać odszyfrowana.
Sprawdź rekurencyjnie właściwości encryptionroot, keystatus, keylocation, canmount i mountpoint. Załaduj klucz wyłącznie dla zamierzonego głównego klucza szyfrowania, a następnie upewnij się, że jego stan zmienił się na dostępny, zanim spróbujesz kontrolowanego montowania w odizolowanej ścieżce.
Jeśli ładowanie klucza się nie powiedzie, odróżnij nieprawidłowy materiał klucza, niedostępną lokalizację klucza i uszkodzone zaszyfrowane metadane od zwykłego konfliktu punktu montowania. Zachowaj dokładny błąd i ponów próbę dopiero po zmianie jednej znanej przyczyny; wielokrotne zgadywanie może pozbawić operatorów wiarygodnych dowodów.
Sprawdzaj migawki bez zmieniania źródła
Wyświetl migawki i potwierdź, że istnieje oczekiwany punkt odzyskiwania. Jeśli źródłowa pula jest wystarczająco sprawna, sklonuj wybraną migawkę lub zreplikuj ją do oddzielnej pamięci masowej zamiast montować produkcyjny zbiór danych z prawem do zapisu. Podczas badania zachowaj oryginalną migawkę jako niezmienną.
Surowa replikacja szyfrowana może zachować tekst zaszyfrowany i właściwości szyfrowania, ale strona odbierająca nadal potrzebuje odpowiedniej hierarchii kluczy. Niezależna surowa szyfrowana replikacja ZFS ilustruje różnicę między surowym wysyłaniem szyfrowanym a zwykłym strumieniem, dlatego wybierz rozwiązanie świadomie, zamiast zakładać, że każdy odebrany zbiór danych odblokuje się w ten sam sposób.
Skorzystaj z sąsiedniej procedury ZimaSpace dotyczącej przywracania migawki do mniejszego systemu plików, gdy pojemność celu różni się od pojemności źródła. Tutaj etap kontrolny jest prostszy: wybrana migawka musi być dostępna, klucz musi dać się załadować, a kopia testowa nie może zastępować istniejącego punktu montowania.
Przywróć dane do odizolowanego celu i potwierdź ich czytelność
Przywróć lub sklonuj wybrany punkt do oddzielnego zbioru danych z tymczasowym punktem montowania. Porównaj skróty reprezentatywnych plików, listy ACL, atrybuty rozszerzone, właścicieli, pliki rzadkie i dane aplikacji. W przypadku bazy danych przywróć jej natywną kopię zapasową lub uruchom skopiowaną instancję na odizolowanych portach zamiast otwierać pliki produkcyjne w miejscu.
Uruchom ponownie środowisko odzyskiwania albo wyeksportuj je i zaimportuj ponownie, załaduj klucz z udokumentowanej lokalizacji i powtórz montowanie. Dowodzi to, że powodzenie nie zależało od buforowanego klucza, jednorazowego stanu powłoki ani przypadkowego montowania odziedziczonego ze środowiska produkcyjnego.
Odzyskiwanie jest zakończone dopiero wtedy, gdy inny operator może wykonać procedurę z użyciem klucza, zamontować zamierzony zbiór danych i przywrócić zweryfikowane dane bez oryginalnego hosta. Przeprowadź eskalację, gdy klucze są niedostępne, odszyfrowywanie kończy się niepowodzeniem na każdej chronionej kopii lub pojawiają się błędy urządzeń; żadna naprawa systemu plików nie odtworzy brakujących kluczy szyfrowania.
Wsparcie i wskazówki
Więcej do przeczytania

Lista kontrolna migracji NFS dla przemianowanych zbiorów danych i stabilnych uchwytów plików
Załóż, że deskryptory plików mogą się zmienić, gdy zmieni się tożsamość pamięci masowej. Wstrzymaj klientów, celowo przełącz eksport, zamontuj ponownie i zweryfikuj otwarte oraz...

Przewodnik rozwiązywania problemów z klientem SMB dla systemów Windows, macOS i Linux
Używaj tego samego serwera, konta, udziału i operacji na plikach na każdym kliencie, aby nie mieszać problemów z wykrywaniem, poświadczeniami, zasadami ani pamięcią masową.

Lista kontrolna rotacji sekretów serwera domowego dla aplikacji, baz danych i kopii zapasowych
Potraktuj rotację jak migrację zależności: zmapuj każdego konsumenta, w miarę możliwości nakładaj dane uwierzytelniające, zweryfikuj nową wartość, a następnie unieważnij starą i przetestuj odzyskiwanie.

