Аварийное восстановление управляемого устройства HSM
Создание точной реплики HSM может потребоваться, если оригинал утрачен или стал недоступен по одной из следующих причин:
- Устройство было удалено, а затем очищено.
- Разрушительный сбой в регионе привел к уничтожению всех разделов в нем.
Вы можете повторно создать экземпляр HSM в том же или другом регионе, если у вас есть:
- домен безопасности исходного устройства HSM;
- закрытые ключи (не меньше кворума), которые шифруют этот домен безопасности;
- самая свежая полная резервная копия исходного устройства HSM.
Ниже перечислены шаги процедуры аварийного восстановления.
- Создайте новый экземпляр HSM.
- Запустите процесс "Восстановление домена безопасности". Будет создана новая пара ключей RSA (ключи обмена доменами безопасности) для переноса домена безопасности, и в ответе службы вы получите открытый ключ SecurityDomainExchangeKey из этой пары.
- Создайте "файл переноса домена безопасности" и отправьте его в службу. Вам потребуются закрытые ключи, которые шифруют домен безопасности. Закрытые ключи при этом используются только локально и никогда никуда не передаются.
- Создайте резервную копию нового устройства HSM. Эта резервная копия является обязательной для любого восстановления, даже если устройство 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 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 на момент создания резервной копии, включая все ключи, версии, атрибуты, теги и назначения ролей.
Следующие шаги
- Дополнительные сведения о домене безопасности см. в статье о домене безопасности управляемого устройства HSM.
- Изучите также рекомендации по использованию управляемого устройства HSM.