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


Аварийное восстановление управляемого устройства 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 с именем ContosoMHSM2 в группе ресурсов ContosoResourceGroup, размещенной в расположении "Западная часть США 3 ", с текущим вошедшим пользователем в качестве единственного администратора.

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

Замечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В следующем примере мы используем домен безопасности из ContosoMHSM, 3 из соответствующих закрытых ключей и ключ обмена для домена безопасности, чтобы создать и скачать зашифрованный бинарный объект, который будет использоваться для загрузки в 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

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

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

Теперь исходный HSM (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-2020083120161860 в контейнере хранилища mhsmdemobackupcontainer учетной записи хранения ContosoBackup в следующем примере.

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

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