Поделиться через


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

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

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

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

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

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

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

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

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

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

  • Название для HSM.
  • Группа ресурсов, в которой он размещен в вашей подписке.
  • Расположение Azure.
  • Список начальных администраторов.

В следующем примере создается модуль HSM с именем <destination-hsm-name>( в группе <resource-group>ресурсов), который находится в указанном расположении с текущим вошедшим пользователем в качестве единственного администратора.

oid=$(az ad signed-in-user show --query id -o tsv)
az keyvault create --hsm-name "<destination-hsm-name>" --resource-group "<resource-group>" --location "<location>" --administrators $oid

Замечание

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

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

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

В выходных данных этой команды отображаются свойства созданного управляемого модуля HSM. Два самых важных свойства это:

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

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

Активация режима восстановления домена безопасности

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

az keyvault security-domain init-recovery --hsm-name <destination-hsm-name> --sd-exchange-key <destination-hsm-name>-SDE.cer

Создать объект загрузки домена безопасности исходного HSM

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

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

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

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

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

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

az keyvault security-domain restore-blob --sd-exchange-key <destination-hsm-name>-SDE.cer --sd-file <source-hsm-name>-SD.json --sd-wrapping-keys cert_0.key cert_1.key cert_2.key --sd-file-restore-blob restore_blob.json 

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

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

az keyvault security-domain upload --hsm-name <destination-hsm-name> --sd-file restore_blob.json --restore-blob

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

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

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

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

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

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

Мы используем команду az keyvault backup для резервного копирования HSM в контейнере <container-name> хранилища, который находится в учетной записи хранения <storage-account-name> в следующих примерах.

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

az keyvault update-hsm --hsm-name <destination-hsm-name> --mi-user-assigned "/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>"
az keyvault backup start --use-managed-identity true --hsm-name <destination-hsm-name> --storage-account-name <storage-account-name> --blob-container-name <container-name>

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

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

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

Мы используем команду az keyvault restore для восстановления в целевой HSM, используя резервную копию исходного MHSM, которую мы пытаемся восстановить и которая находится в папке с именем <backup-folder>, помещенной в контейнер <container-name> учетной записи хранилища <storage-account-name>, показанную в следующем примере.

Если используется метод управляемого удостоверения, назначенного пользователем, мы устанавливаем параметр --use-managed-identity в значение "true".

az keyvault restore start --hsm-name <destination-hsm-name> --storage-account-name <storage-account-name> --blob-container-name <container-name> --backup-folder <backup-folder> --use-managed-identity true

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

Дальнейшие шаги