Аварийное восстановление управляемого устройства HSM

Создание точной реплики HSM может потребоваться, если оригинал утрачен или стал недоступен по одной из следующих причин:

  • Устройство было удалено, а затем очищено.
  • Разрушительный сбой в регионе привел к уничтожению всех разделов в нем.

Вы можете повторно создать экземпляр HSM в том же или другом регионе, если у вас есть:

Ниже перечислены шаги процедуры аварийного восстановления.

  1. Создайте новый экземпляр HSM.
  2. Запустите процесс "Восстановление домена безопасности". Будет создана новая пара ключей RSA (ключи обмена доменами безопасности) для переноса домена безопасности, и в ответе службы вы получите открытый ключ SecurityDomainExchangeKey из этой пары.
  3. Создайте "файл переноса домена безопасности" и отправьте его в службу. Вам потребуются закрытые ключи, которые шифруют домен безопасности. Закрытые ключи при этом используются только локально и никогда никуда не передаются.
  4. Создайте резервную копию нового устройства HSM. Эта резервная копия является обязательной для любого восстановления, даже если устройство HSM пустое. Резервные копии позволяют легко выполнять откат.
  5. Восстановите свежую резервную копию исходного устройства HSM.

С помощью этих инструкций вы сможете вручную выполнить репликацию содержимого HSM в другой регион. Имя HSM (и URI конечной точки службы) будет отличаться, поэтому вам придется изменить конфигурацию приложения, чтобы использовать эти ключи из другого расположения.

Создание управляемого устройства HSM

С помощью команды az keyvault create создайте управляемое устройство HSM. Этот скрипт принимает три обязательных параметра: имя группы ресурсов, имя HSM и географическое расположение.

Для создания ресурса управляемого устройства HSM необходимо указать следующие входные данные:

  • имя устройства HSM;
  • группа ресурсов в вашей подписке, в которой этот ресурс будет размещен;
  • расположение Azure;
  • список первых администраторов.

В следующем примере создается HSM с именем ContosoMHSM2 в группе ресурсов ContosoResourceGroup, размещенной в расположении "Западная часть США 3", с текущим вошедшим пользователем в качестве единственного администратора.

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

Примечание.

Выполнение команды создания может занять несколько минут. После ее успешного завершения вы можете активировать новое устройство HSM.

Предупреждение

Экземпляры управляемого модуля HSM считаются постоянно используемыми. Если вы решили включить защиту от очистки с помощью флага --enable-purge-protection, счет будет выставлен за весь срок хранения.

В выходных данных команды вы увидите свойства созданного управляемого устройства HSM. Среди всех свойств есть два самых важных:

  • name. В этом примере используется имя ContosoMHSM. Вы будете использовать это имя для выполнения других команд хранилища ключей.
  • hsmUri. В этом примере универсальный код ресурса (URI) — https://contosomhsm2.managedhsm.azure.net. Приложения, использующие HSM через REST API, должны использовать именно этот универсальный код ресурса (URI).

Теперь ваша учетная запись Azure авторизована, и вы можете выполнять любые операции на этом управляемом устройстве HSM. Но пока никто другой не авторизован.

Перейдите в режим "Восстановление домена безопасности".

На этом этапе обычного процесса создания мы инициализируем и скачиваем новый домен безопасности HSM. Однако так как мы выполняем процедуру аварийного восстановления, мы запросим HSM ввести режим восстановления домена безопасности и скачать ключ exchange домена безопасности. Ключ обмена доменами безопасности представляет собой открытый ключ RSA, который будет применен для шифрования домена безопасности перед отправкой на устройство HSM. Соответствующий закрытый ключ безопасно хранится внутри HSM, гарантируя сохранность содержимого домена безопасности во время перемещения.

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

Создание большого двоичного объекта для отправки домена безопасности исходного HSM

Для этого шага вам потребуется:

  • ключ обмена доменами безопасности, скачанный на предыдущем шаге;
  • домен безопасности исходного устройства HSM;
  • один или несколько закрытых ключей (не меньше кворума), которые использовались для шифрования домена безопасности.

Команда az keyvault security-domain restore-blob выполняет следующие операции.

  • Расшифровывает домен безопасности исходного устройства HSM, используя предоставленные вами закрытые ключи.
  • Создание большого двоичного объекта для отправки домена безопасности, зашифрованного с помощью ключа exchange домена безопасности, который мы скачали на предыдущем шаге.

Этот шаг можно выполнить в автономном режиме.

В следующем примере мы используем домен безопасности из ContosoMHSM, 3 из соответствующих закрытых ключей и ключ exchange домена безопасности для создания и скачивания зашифрованного большого двоичного объекта, который будет использоваться для отправки в ContosoMHSM2, который ожидает получения домена безопасности.

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 

Отправка BLOB-объекта домена безопасности в целевой HSM

Теперь мы используем большой двоичный объект для отправки домена безопасности, созданный на предыдущем шаге, и отправьте его в целевой HSM, чтобы завершить восстановление домена безопасности. Флаг --restore-blob используется для предотвращения предоставления ключей в интерактивной среде.

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

Теперь исходное (ContosoMHSM) и целевое устройство HSM (ContosoMHSM2) содержат один и тот же домен безопасности. Это означает, что вы можете восстановить полную резервную копию исходного устройства HSM в целевое устройство HSM.

Резервное копирование и восстановление

Всегда рекомендуется выполнить полную резервную копию перед выполнением полного восстановления HSM, чтобы у вас была точка восстановления в случае, если с восстановлением происходит что-то не так. Это можно сделать с помощью одного из двух методов: назначаемого пользователем управляемого удостоверения или маркеров SAS.

Создание резервной копии (точки восстановления) нового устройства HSM

Чтобы создать резервную копию HSM, вам потребуется:

  • учетная запись хранения, где будет храниться резервная копия;
  • контейнер хранилища BLOB-объектов в этой учетной записи хранения, где процесс резервного копирования создаст новую папку для хранения зашифрованной резервной копии.
  • Назначаемое пользователем управляемое удостоверение с ролью участника данных BLOB-объектов служба хранилища в маркере SAS контейнера хранилища или учетной записи хранения с разрешениями crdw

Мы используем команду az keyvault backup для резервного копирования HSM в контейнере хранилища mhsmbackupcontainer, который находится в учетной записи хранения mhsmdemobackup в следующих примерах.

При использовании метода управляемого удостоверения, назначаемого пользователем, укажите управляемое удостоверение с параметром и свяжите его с --mi-user-assigned управляемым устройством HSM перед записью резервной копии в следующем примере.

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

Восстановление резервной копии исходного устройства HSM

Для этого шага вам нужно:

  • Учетная запись хранения и контейнер BLOB-объектов, в котором хранятся резервные копии исходного устройства HSM.
  • имя папки, из которой нужно восстановить резервную копию (если вы регулярно создавали резервные копии, в этом контейнере будет много папок).

Мы используем команду az keyvault restore для нового HSM ContosoMHSM2, используя резервную копию исходного MHSM, которую мы пытаемся восстановить, которая находится в имени папки mhsm-ContosoMHSM-20200831201860 , найденном в контейнере хранилища mhsmmdemobackupcontainer учетной записи хранения ContosoBackup в следующем примере.

При использовании метода управляемого удостоверения, назначаемого пользователем, установите --use-managed-identity для pramater значение 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

Теперь вы выполнили полный процесс аварийного восстановления. Теперь на целевом устройстве HSM восстановлено содержимое исходного устройства HSM на момент создания резервной копии, включая все ключи, версии, атрибуты, теги и назначения ролей.

Следующие шаги