Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начало работы с клиентской библиотекой управляемого модуля HSM Azure Key Vault для Python. Управляемый модуль HSM — это полностью управляемая, высокодоступная, однотенантная и совместимая со стандартами облачная служба, которая позволяет защитить криптографические ключи для облачных приложений с помощью FIPS 140-3 уровня 3 , проверенных HSM. Дополнительные сведения об управляемом HSM см. в обзоре.
Из этого краткого руководства вы узнаете, как получить доступ к ключам в управляемом HSM и выполнять криптографические операции с помощью клиентской библиотеки Python.
Ресурсы клиентской библиотеки управляемых HSM:
справочная документация API | Библиотека исходный код | Package (PyPI)
Необходимые условия
- Подписка Azure. Создайте аккаунт бесплатно.
- Подготовленный и активированный управляемый HSM. См. раздел Quickstart: подготовка и активация управляемого модуля HSM с помощью Azure CLI.
- Ключ, созданный в управляемом HSM. См. раздел "Управление ключами" в управляемом HSM.
- Ресурс Azure с управляемым удостоверением (например, виртуальная машина, служба приложений или функция Azure) или использование Azure CLI для локальной разработки.
- Управляемое удостоверение должно иметь соответствующую локальную роль RBAC для управляемого модуля HSM. См. Безопасный доступ к вашим управляемым аппаратным модулям безопасности (HSM).
Настройка локальной среды
В этом кратком руководстве используется библиотека Azure Identity и Azure CLI для проверки подлинности в службах Azure. Разработчики также могут использовать Visual Studio Code для проверки подлинности своих вызовов. Дополнительные сведения см. в разделе Аутентификация клиента с помощью клиентской библиотеки Azure Identity.
Вход в Azure
az login Выполните команду для входа:
az login
Создание папки проекта и виртуальной среды
Создайте папку проекта и перейдите к ней:
mkdir mhsm-python-app && cd mhsm-python-appСоздайте и активируйте виртуальную среду:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
Установка пакетов
Установите клиентские библиотеки ключей Azure Identity и Key Vault Key:
pip install azure-identity azure-keyvault-keys
Создание примера кода
Создайте файл с именем mhsm_keys.py со следующим кодом. Замените <hsm-name> управляемым именем HSM и <key-name> существующим именем ключа.
from azure.identity import DefaultAzureCredential
from azure.keyvault.keys import KeyClient
from azure.keyvault.keys.crypto import CryptographyClient, EncryptionAlgorithm
# Use DefaultAzureCredential for automatic credential selection
credential = DefaultAzureCredential()
# Connect to Managed HSM - replace with your HSM URI
hsm_uri = "https://<hsm-name>.managedhsm.azure.net"
key_client = KeyClient(vault_url=hsm_uri, credential=credential)
# Get a key reference
key_name = "<key-name>"
print(f"Retrieving key '{key_name}' from Managed HSM...")
key = key_client.get_key(key_name)
print(f"Key retrieved. Key type: {key.key_type}")
# Perform cryptographic operations
crypto_client = CryptographyClient(key, credential)
# Encrypt data
plaintext = b"Hello, Managed HSM!"
print(f"\nOriginal text: {plaintext.decode()}")
encrypt_result = crypto_client.encrypt(EncryptionAlgorithm.rsa_oaep_256, plaintext)
print(f"Encrypted (hex): {encrypt_result.ciphertext.hex()[:64]}...")
# Decrypt data
decrypt_result = crypto_client.decrypt(EncryptionAlgorithm.rsa_oaep_256, encrypt_result.ciphertext)
print(f"Decrypted text: {decrypt_result.plaintext.decode()}")
print("\nDone!")
Запуск приложения
Запустите приложение:
python mhsm_keys.py
Выходные данные должны выглядеть примерно так:
Retrieving key 'myrsakey' from Managed HSM...
Key retrieved. Key type: RSA-HSM
Original text: Hello, Managed HSM!
Encrypted (hex): 5a8f3b2c1d4e5f6a7b8c9d0e1f2a3b4c...
Decrypted text: Hello, Managed HSM!
Done!
Общие сведения о коде
Проверка подлинности с помощью DefaultAzureCredential
DefaultAzureCredential автоматически выбирает соответствующие учетные данные в зависимости от среды:
| Окружающая среда | Использованные учетные данные |
|---|---|
| Azure Виртуальные Машины, Служба Приложений, Функции | Назначаемое системой или назначаемое пользователем управляемое удостоверение |
| Служба Azure Kubernetes | Идентификация рабочей нагрузки |
| Локальная разработка | учетные данные Azure CLI, Visual Studio или VS Code |
| Конвейеры CI/CD | Федерация удостоверений идентификаций рабочей нагрузки или служебный принципал |
Данные аутентификации проверяются в следующих источниках в порядке:
- Переменные среды
- Идентификация рабочей нагрузки
- Манажируемая идентичность
- Azure CLI
- Azure PowerShell
- Учетные данные Visual Studio/VS Code
Для рабочих нагрузок в Azure настоятельно рекомендуется использовать управляемые удостоверения, так как они полностью устраняют управление учетными данными.
Ключевые операции
Класс KeyClient предоставляет методы для:
- Создание, получение, обновление и удаление ключей
- Список ключей и их версий
- Резервное копирование и восстановление ключей
Класс CryptographyClient предоставляет криптографические операции:
- Шифрование и расшифровка данных
- Подписи и проверка подписей
- Упаковка и распаковка ключей
Назначение ролей в управляемых системах HSM
Для того чтобы ваше приложение имело доступ к ключам, назначьте управляемой идентичности соответствующую локальную роль RBAC для управляемого HSM. Замените <vm-name>, <resource-group>а <hsm-name> также фактическими значениями.
# Get the principal ID of your managed identity
principalId=$(az vm identity show --name <vm-name> --resource-group <resource-group> --query principalId -o tsv)
# Assign the Crypto User role for key operations
az keyvault role assignment create \
--hsm-name <hsm-name> \
--role "Managed HSM Crypto User" \
--assignee $principalId \
--scope /keys
Для получения дополнительной информации о ролях и разрешениях см. раздел Встроенные роли локального RBAC для управляемого HSM.
Очистите ресурсы
При отсутствии необходимости удалите группу ресурсов и все связанные ресурсы:
az group delete --name <resource-group>
Предупреждение
При удалении группы ресурсов управляемый модуль HSM переходит в состояние мягкого удаления. Управляемый модуль HSM продолжает выставляться на счет до тех пор, пока он не будет удален. См. статью Обратимое удаление и защита от очистки для управляемых модулей HSM.