Импорт ключей, защищенных HSM, в Key Vault (BYOK)

Примечание.

Мы рекомендуем использовать модуль Az PowerShell Azure для взаимодействия с Azure. Сведения о начале работы см. в разделе Install Azure PowerShell. Сведения о миграции в модуль Az PowerShell см. в статье Migrate Azure PowerShell из AzureRM в Az.

Для добавления гарантии при использовании Azure Key Vault можно импортировать или создать ключ в аппаратном модуле безопасности (HSM); ключ никогда не покидает границу HSM. Этот сценарий часто называется принесите свой ключ (BYOK). Key Vault использует сертифицированные по FIPS 140 HSM для защиты ключей.

Это важно

BYOK требует, чтобы исходный HSM разрешал упаковку ключей (экспорт ключей в зашифрованной форме), как правило, отключен по умолчанию для обеспечения безопасности. При включении необходимо управлять тем, кто может экспортировать ключи и защитить ключи обмена ключами. При надлежащей реализации, как описано здесь, ваш ключевой материал никогда не покидает проверенные границы FIPS 140 во время передачи с HSM на Azure Key Vault Premium или Managed HSM.

Используйте эту статью, чтобы понять процесс передачи ключей из локальной среды HSM в Azure Key Vault.

Примечание.

Этот метод импорта доступен только для поддерживаемых модулей HSM.

Дополнительные сведения и руководство по началу работы с Key Vault (включая пример создания Key Vault для ключей, защищенных с помощью HSM), см. в статье Что такое Azure Key Vault?

Обзор

Ниже представлен обзор этого процесса. Конкретные действия, которые необходимо для этого выполнить, описаны далее в этой статье.

  • В Key Vault создайте ключ (который называется Key Exchange Key (KEK)). KEK должен быть ключом RSA-HSM, с которым можно выполнять только операцию import. Поддерживаются только ключи RSA-HSM в Key Vault Premium и управляемых HSM.
  • Скачайте открытый ключ KEK в виде PEM-файла.
  • Перенесите открытый ключ KEK на автономный компьютер, подключенный к локальному модулю HSM.
  • На автономном компьютере используйте средство BYOK, предоставленное поставщиком HSM, для создания файла BYOK.
  • Целевой ключ шифруется с помощью KEK, который остается зашифрованным, пока он не будет передан в Key Vault HSM. Локальный модуль HSM покидает только зашифрованная версия ключа.
  • KEK, созданный внутри Key Vault HSM, не может экспортироваться. HSM применяет правило, что никакая открытая версия KEK не существует за пределами хранилища ключей HSM.
  • KEK должен находиться в том же хранилище ключей, где импортируется целевой ключ.
  • При отправке файла BYOK в Key Vault Key Vault HSM использует закрытый ключ KEK для расшифровки материала целевого ключа и импорта его в виде ключа HSM. Эта операция выполняется полностью внутри Key Vault HSM. Целевой ключ всегда остается в защитной границе HSM.

Предварительные требования

В следующей таблице перечислены предварительные требования для использования BYOK в Azure Key Vault:

Требование Дополнительные сведения
Подписка Azure Чтобы создать хранилище ключей в Azure Key Vault, требуется подписка Azure. Зарегистрируйтесь для получения бесплатной пробной версии.
Сертификат Key Vault премиум или управляемый HSM для импорта ключей, защищённых с помощью HSM Дополнительные сведения о уровнях служб и возможностях Azure Key Vault см. в разделе Цены на Key Vault.
HSM из списка поддерживаемых HSM, средство BYOK и инструкции, предоставленные поставщиком HSM Необходимо иметь разрешения для модуля HSM и базовые знания о том, как им пользоваться. Просмотрите список поддерживаемых модулей HSM.
Azure CLI версии 2.1.0 или более поздней См. Install Azure CLI.

Поддерживаемые модули HSM

Имя поставщика Тип поставщика Поддерживаемые модели модуля HSM Дополнительные сведения
Cryptomathic ISV (корпоративная система управления ключами) Несколько торговых марок и моделей HSM, в том числе
  • nCipher
  • Фалес
  • Utimaco
Дополнительные сведения см. на сайте Cryptomathic.
Вверять Производитель,
HSM как услуга
  • Семейство модулей HSM nShield
  • nShield как услуга
Новое средство BYOK и документация для nCipher
Fortanix Производитель,
HSM как услуга
  • Служба управления ключами для самостоятельной защиты (SDKMS)
  • Equinix SmartKey
Экспорт ключей SDKMS к облачным провайдерам с использованием собственных ключей — Azure Key Vault
Futurex Производитель,
HSM как услуга
  • CryptoHub
  • CryptoHub Cloud
  • Серия KMES 3
руководство по интеграции Futurex — Azure Key Vault
IBM Производитель IBM 476x, CryptoExpress IBM Unified Key Orchestrator для контейнеров
Marvell Производитель Все модули аппаратной защиты LiquidSecurity со
  • прошивка версии 2.0.4 и выше
  • прошивка версии 3.2 или более новой
Средство Marvell BYOK и документация
nCipher Производитель,
HSM как услуга
  • Семейство модулей HSM nShield
  • nShield как услуга
Новое средство BYOK и документация для nCipher
Securosys SA Производитель,
HSM как услуга
Семейство Primus HSM, Securosys Clouds HSM Инструмент Primus BYOK и документация
StorMagic ISV (корпоративная система управления ключами) Несколько торговых марок и моделей HSM, в том числе
  • Utimaco
  • Фалес
  • nCipher
Дополнительные сведения см. на сайте StorMagic. SvKMS и Azure Key Vault BYOK
Фалес Производитель
  • Семейство HSM 7 Luna со встроенным ПО версии 7.3 или более поздней
Инструмент Luna BYOK и документация
Utimaco Производитель,
HSM как услуга
u.trust Anchor, CryptoServer Руководство по интеграции и инструменту Utimaco BYOK
Yubico Производитель YubiHSM 2 руководство пользователя YubiHSM 2 BYOK для Azure

Поддерживаемые типы ключей

Имя ключа Тип ключа Размер ключа или кривая Источник Описание
Ключ обмена ключами (KEK) RSA-HSM 2048-разрядный
3072-разрядный
4096-разрядный
Хранилище ключей Azure HSM Пара ключей RSA с поддержкой HSM, созданная в Azure Key Vault
Целевой ключ
RSA-HSM 2048-разрядный
3072-разрядный
4096-разрядный
Поставщик HSM Ключ для передачи в Azure Key Vault HSM.
EC-HSM P-256
P-384
P-521
Поставщик HSM Ключ для передачи в Azure Key Vault HSM.
OCT-HSM 128-разрядное
192-битный
256-битный
Поставщик HSM Ключ для передачи в Azure Key Vault HSM. Поддерживается только на управляемом HSM Azure Key Vault.

Примечание.

RSA и EC — это типы ключей программного обеспечения, которые служба поддерживает в качестве целевых типов ключей для тестирования. Эти типы ключей передаются в службу Key Vault, а не в Key Vault HSMs.

Создайте и перенесите ваш ключ в Key Vault Premium HSM или управляемый HSM.

Чтобы создать и передать ключ в Key Vault Premium или управляемую HSM:

Создайте KEK

Создайте KEK в качестве ключа RSA в Key Vault premium или управляемом HSM. Используйте KEK для шифрования ключа, который требуется импортировать ( целевой ключ).

Ключ KEK должен быть:

  • Ключ RSA-HSM (2048-разрядная, 3072-разрядная или 4096-разрядная версия).
  • Создано в том же хранилище ключей, в котором планируется импортировать целевой ключ.
  • Создано с установленными разрешёнными операциями ключа import.

Примечание.

KEK должен иметь import в качестве единственной разрешенной операции ключа. Операция import взаимоисключаема со всеми другими ключевыми операциями.

Используйте команду az keyvault key create , чтобы создать KEK с набором ключевых операций import. Запишите идентификатор ключа (kid), возвращаемый следующей командой. Используйте значение kid в Шаге 3.

az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --vault-name <vault-name>

Для управляемого устройства HSM:

az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name <hsm-name>

Скачивание открытого ключа KEK

Чтобы скачать открытый ключ KEK в PEM-файл, используйте команду az keyvault key download. Открытый ключ KEK шифрует импортируемый целевой ключ.

az keyvault key download --name KEKforBYOK --vault-name <vault-name> --file KEKforBYOK.publickey.pem

Для управляемого устройства HSM:

az keyvault key download --name KEKforBYOK --hsm-name <hsm-name> --file KEKforBYOK.publickey.pem

Перенесите KEKforBYOK.publickey.pem файл на автономный компьютер. Этот файл понадобится на следующем шаге.

Создание ключа и подготовка его к передаче

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

Средство BYOK использует элемент из Шага 1 и файл KEKforBYOK.publickey.pem, скачанный на Шаге 2, чтобы создать зашифрованный целевой ключ в файле BYOK.

Перенесите файл BYOK на подключенный компьютер.

Примечание.

Импорт ключа эллиптической кривой с кривой P-256K поддерживается.

Известная проблема. Импорт целевого 4096-разрядного ключа RSA из модулей HSM Luna поддерживается только при использовании встроенного ПО версии 7.4.0 или более поздней.

Передача ключа в Azure Key Vault

Чтобы завершить импорт ключа, перенесите пакет обмена ключами (файл BYOK) с отключенного компьютера на компьютер, подключенный к Интернету. Используйте команду импорта ключа az keyvault для отправки файла BYOK в Key Vault HSM.

Чтобы импортировать ключ RSA, используйте следующую команду. Параметр --kty является необязательным и по умолчанию имеет значение RSA-HSM.

az keyvault key import --vault-name <vault-name> --name <key-name> --byok-file KeyTransferPackage-<key-name>.byok

Для управляемого устройства HSM:

az keyvault key import --hsm-name <hsm-name> --name <key-name> --byok-file KeyTransferPackage-<key-name>.byok

Чтобы импортировать ключ EC, необходимо указать тип ключа и имя кривой.

az keyvault key import --vault-name <vault-name> --name <key-name> --kty EC-HSM --curve-name "P-256" --byok-file KeyTransferPackage-<key-name>.byok

Для управляемого устройства HSM:

az keyvault key import --hsm-name <hsm-name> --name <key-name> --kty EC-HSM --curve-name "P-256" --byok-file KeyTransferPackage-<key-name>.byok

Если отправка выполнена успешно, Azure CLI отображает свойства импортированного ключа.

Использование искусственного интеллекта для устранения неполадок передачи ключей BYOK

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

I'm trying to import an HSM-protected key to Azure Key Vault using BYOK. I have a Thales Luna HSM and I'm getting an error during the key transfer. Help me with:
1. The correct sequence of commands to generate a KEK in Azure Key Vault
2. How to download and verify the KEK public key
3. The Azure CLI command to import the wrapped key file
My key vault name is "mycompany-prod-kv" and I want to import an RSA 4096-bit key named "encryption-master-key".

GitHub Copilot работает на ИИ, поэтому возможны как неожиданные результаты, так и ошибки. Дополнительные сведения см. в разделе Copilot часто задаваемые вопросы.

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

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