Odzyskiwanie po awarii zarządzanego modułu HSM

Możesz utworzyć dokładną replikę modułu HSM, jeśli oryginał zostanie utracony lub niedostępny z dowolnego z następujących powodów:

  • Został usunięty, a następnie przeczyszczone.
  • Katastrofalna awaria w regionie spowodowała zniszczenie wszystkich partycji członkowskich.

Możesz ponownie utworzyć wystąpienie modułu HSM w tym samym lub innym regionie, jeśli masz:

  • Domena zabezpieczeń źródłowego modułu HSM.
  • Klucze prywatne (co najmniej numer kworum), które szyfrują domenę zabezpieczeń.
  • Najnowsza pełna kopia zapasowa modułu HSM ze źródłowego modułu HSM.

Poniżej przedstawiono kroki procedury odzyskiwania po awarii:

  1. Utwórz nowe wystąpienie modułu HSM.
  2. Aktywuj "Odzyskiwanie domeny zabezpieczeń". Nowa para kluczy RSA (klucz wymiany domeny zabezpieczeń) zostanie wygenerowana na potrzeby transferu domeny zabezpieczeń i zostanie wysłana w odpowiedzi, która zostanie pobrana jako securityDomainExchangeKey (klucz publiczny).
  3. Utwórz plik "Security Domain Transfer File" (Plik transferu domeny zabezpieczeń). Potrzebne będą klucze prywatne szyfrujące domenę zabezpieczeń. Klucze prywatne są używane lokalnie i nigdy nie są przesyłane w dowolnym miejscu w tym procesie.
  4. Utwórz kopię zapasową nowego modułu HSM. Kopia zapasowa jest wymagana przed przywróceniem, nawet jeśli moduł HSM jest pusty. Kopie zapasowe umożliwiają łatwe wycofywanie.
  5. Przywróć najnowszą kopię zapasową modułu HSM ze źródłowego modułu HSM.

Te kroki umożliwiają ręczne replikowanie zawartości modułu HSM do innego regionu. Nazwa modułu HSM (i identyfikator URI punktu końcowego usługi) będzie inna, więc musisz zmienić konfigurację aplikacji, aby używać tych kluczy z innej lokalizacji.

Tworzenie nowego zarządzanego modułu HSM

Użyj polecenia , az keyvault create aby utworzyć zarządzany moduł HSM. Ten skrypt ma trzy obowiązkowe parametry: nazwę grupy zasobów, nazwę modułu HSM i lokalizację geograficzną.

Aby utworzyć zasób zarządzanego modułu HSM, należy podać następujące dane wejściowe:

  • Nazwa modułu HSM.
  • Grupa zasobów, w której zostanie umieszczona w subskrypcji.
  • Lokalizacja platformy Azure.
  • Lista początkowych administratorów.

Poniższy przykład tworzy moduł HSM o nazwie ContosoMHSM2 w grupie zasobów ContosoResourceGroup znajdującej się w lokalizacji Zachodnie stany USA 3 z bieżącym zalogowanym użytkownikiem jako jedyny administrator.

oid=$(az ad signed-in-user show --query objectId -o tsv)
az keyvault create --hsm-name "ContosoMHSM2" --resource-group "ContosoResourceGroup" --location "westus3" --administrators $oid

Uwaga

Polecenie create może potrwać kilka minut. Po pomyślnym powrocie możesz przystąpić do aktywowania modułu HSM.

Ostrzeżenie

Wystąpienia zarządzanego modułu HSM są uznawane za zawsze używane. Jeśli zdecydujesz się włączyć ochronę przed przeczyszczeniem --enable-purge-protection przy użyciu flagi, opłaty będą naliczane za cały okres przechowywania.

Dane wyjściowe tego polecenia pokazują właściwości utworzonego zarządzanego modułu HSM. Dwie najważniejsze właściwości to:

  • name: W tym przykładzie nazwa to ContosoMHSM. Użyjesz tej nazwy dla innych poleceń usługi Key Vault.
  • hsmUri: w przykładzie identyfikator URI to "https://contosomhsm2.managedhsm.azure.net." Aplikacje korzystające z modułu HSM za pośrednictwem interfejsu API REST muszą używać tego identyfikatora URI.

Twoje konto platformy Azure jest teraz autoryzowane do wykonywania jakichkolwiek operacji na tym zarządzanym module HSM. Od tej pory nikt inny nie jest autoryzowany.

Aktywowanie trybu odzyskiwania domeny zabezpieczeń

W tym momencie w normalnym procesie tworzenia zainicjujemy i pobierzemy nową domenę zabezpieczeń modułu HSM. Ponieważ jednak wykonujemy procedurę odzyskiwania po awarii, żądamy od modułu HSM wprowadzenia trybu odzyskiwania domeny zabezpieczeń i pobrania klucza wymiany domeny zabezpieczeń. Klucz wymiany domeny zabezpieczeń to klucz publiczny RSA, który będzie używany do szyfrowania domeny zabezpieczeń przed przekazaniem go do modułu HSM. Odpowiedni klucz prywatny jest chroniony wewnątrz modułu HSM, aby zachować bezpieczeństwo zawartości domeny zabezpieczeń podczas transferu.

az keyvault security-domain init-recovery --hsm-name ContosoMHSM2 --sd-exchange-key ContosoMHSM2-SDE.cer

Tworzenie obiektu blob przekazywania domeny zabezpieczeń źródłowego modułu HSM

W tym kroku potrzebne są następujące elementy:

  • Klucz wymiany domeny zabezpieczeń pobrany w poprzednim kroku.
  • Domena zabezpieczeń źródłowego modułu HSM.
  • Co najmniej liczba kworum kluczy prywatnych, które zostały użyte do szyfrowania domeny zabezpieczeń.

Polecenie az keyvault security-domain restore-blob wykonuje następujące operacje:

  • Odszyfruj domenę zabezpieczeń źródłowego modułu HSM przy użyciu kluczy prywatnych, które podajesz.
  • Tworzenie obiektu blob przekazywania domeny zabezpieczeń zaszyfrowane przy użyciu klucza exchange domeny zabezpieczeń pobranego w poprzednim kroku

Ten krok można wykonać w trybie offline.

W poniższym przykładzie użyjemy domeny zabezpieczeń z domeny ContosoMHSM, 3 odpowiednich kluczy prywatnych i klucza wymiany domeny zabezpieczeń, aby utworzyć i pobrać zaszyfrowany obiekt blob, którego użyjemy do przekazania do contosoMHSM2, który oczekuje na odebranie domeny zabezpieczeń.

az keyvault security-domain restore-blob --sd-exchange-key ContosoMHSM2-SDE.cer --sd-file ContosoMHSM-SD.json --sd-wrapping-keys cert_0.key cert_1.key cert_2.key --sd-file-restore-blob restore_blob.json 

Przekazywanie obiektu blob do docelowego modułu HSM w domenie zabezpieczeń

Teraz użyjemy obiektu blob Przekazywania domeny zabezpieczeń utworzonego w poprzednim kroku i przekażemy go do docelowego modułu HSM w celu ukończenia odzyskiwania domeny zabezpieczeń. Flaga --restore-blob służy do zapobiegania uwidacznianiu kluczy w środowisku online.

az keyvault security-domain upload --hsm-name ContosoMHSM2 --sd-file restore_blob.json --restore-blob

Teraz zarówno źródłowy moduł HSM (ContosoMHSM) jak i docelowy moduł HSM (ContosoMHSM2) mają tę samą domenę zabezpieczeń. Teraz można przywrócić pełną kopię zapasową ze źródłowego modułu HSM do docelowego modułu HSM.

Tworzenie kopii zapasowej i przywracanie

Zawsze dobrym pomysłem jest wykonanie pełnej kopii zapasowej przed wykonaniem pełnego przywracania modułu HSM, aby mieć punkt przywracania w przypadku, gdy coś pójdzie nie tak z przywracaniem. Można to zrobić przy użyciu jednej z dwóch metod: tożsamości zarządzanej przypisanej przez użytkownika lub tokenów SAS.

Tworzenie kopii zapasowej (jako punktu przywracania) nowego modułu HSM

Aby utworzyć kopię zapasową modułu HSM, potrzebne są następujące elementy:

  • Konto magazynu, na którym będzie przechowywana kopia zapasowa
  • Kontener magazynu obiektów blob na tym koncie magazynu, na którym proces tworzenia kopii zapasowej utworzy nowy folder do przechowywania zaszyfrowanej kopii zapasowej
  • Tożsamość zarządzana przypisana przez użytkownika z rolą Współautor danych obiektu blob usługi Storage na koncie magazynu LUB token sas kontenera magazynu z uprawnieniami "crdw"

Użyjemy polecenia az keyvault backup do kopii zapasowej modułu HSM w kontenerze magazynu mhsmbackupcontainer, który znajduje się na koncie magazynu mhsmdemobackup w poniższych przykładach.

Jeśli używasz metody tożsamości zarządzanej przypisanej przez użytkownika, określimy tożsamość zarządzaną przypisaną przez użytkownika za pomocą parametru --mi-user-assigned i skojarzymy je z zarządzanym modułem HSM przed zapisaniem kopii zapasowej w poniższym przykładzie.

az keyvault update-hsm --hsm-name ContosoMHSM2 --mi-user-assigned "/subscriptions/subid/resourcegroups/mhsmrgname/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userassignedidentityname"
az keyvault backup start --use-managed-identity true --hsm-name ContosoMHSM2 --storage-account-name mhsmdemobackup --blob-container-name mhsmbackupcontainer

Przywracanie kopii zapasowej ze źródłowego modułu HSM

W tym kroku potrzebne są następujące elementy:

  • Konto magazynu i kontener obiektów blob, w którym są przechowywane kopie zapasowe źródłowego modułu HSM.
  • Nazwa folderu, z którego chcesz przywrócić kopię zapasową. Jeśli tworzysz regularne kopie zapasowe, w tym kontenerze będzie znajdować się wiele folderów.

Do nowego modułu HSM ContosoMHSM2 używamy polecenia az keyvault restore, używając kopii zapasowej źródłowego MHSM, który próbujemy przywrócić, który znajduje się w nazwie folderu mhsm-ContosoMHSM-20200831201660 znalezionych w kontenerze magazynu mhsmdemobackupcontainer konta magazynu ContosoBackup w poniższym przykładzie.

Jeśli używasz metody tożsamości zarządzanej przypisanej przez użytkownika, ustawimy --use-managed-identity pramater na wartość "true".

az keyvault restore start --hsm-name ContosoMHSM2 --storage-account-name ContosoBackup --blob-container-name mhsmdemobackupcontainer --backup-folder mhsm-ContosoMHSM-2020083120161860 --use-managed-identity true

Teraz ukończono pełny proces odzyskiwania po awarii. Zawartość źródłowego modułu HSM podczas tworzenia kopii zapasowej jest kopiowana do docelowego modułu HSM, w tym wszystkich kluczy, wersji, atrybutów, tagów i przypisań ról.

Następne kroki