Настройка шифрования с помощью ключей, управляемых клиентом, хранящихся в управляемом модуле HSM в Azure Key Vault

Служба хранилища Azure шифрует все данные в неактивных учетных записях хранения. По умолчанию данные шифруются с помощью ключей, управляемых корпорацией Майкрософт. Для дополнительного контроля над ключами шифрования можно управлять собственными ключами. Ключи, управляемые клиентом, должны храниться в Azure Key Vault или в HSM — управляемом аппаратном модуле безопасности в Key Vault. Управляемый модуль HSM в Azure Key Vault — это проверенный модуль HSM FIPS 140-2 уровня 3.

В этой статье показано, как настроить шифрование с помощью ключей, управляемых клиентом, хранящихся в управляемом модуле HSM, используя Azure CLI. Сведения о настройке шифрования с помощью управляемых клиентом ключей, хранящихся в Azure Key Vault, см. в статье Настройка шифрования с помощью ключей, управляемых клиентом, хранящихся в Azure Key Vault.

Примечание

Azure Key Vault и управляемый модуль HSM в Azure Key Vault поддерживают одинаковые интерфейсы API и интерфейсы управления для конфигурации.

Назначение удостоверения учетной записи хранения

Сначала назначьте учетной записи хранения управляемое удостоверение, назначаемое системой. Вы будете использовать это управляемое удостоверение, чтобы предоставить разрешения учетной записи хранения на доступ к управляемому модулю HSM. Дополнительные сведения о назначаемых системой управляемых удостоверениях см. в статье Что такое управляемые удостоверения для ресурсов Azure?.

Чтобы назначить управляемое удостоверение с помощью Azure CLI, вызовите команду az storage account update. Не забудьте заменить значения заполнителей в скобках собственными значениями:

az storage account update \
    --name <storage-account> \
    --resource-group <resource_group> \
    --assign-identity

Назначение роли учетной записи хранения для доступа к управляемому модулю HSM

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

Чтобы создать назначение ролей для учетной записи хранения, вызовите команду az key vault role assignment create. Не забудьте заменить значения заполнителей в скобках собственными значениями.

storage_account_principal = $(az storage account show \
    --name <storage-account> \
    --resource-group <resource-group> \
    --query identity.principalId \
    --output tsv)

az keyvault role assignment create \
    --hsm-name <hsm-name> \
    --role "Managed HSM Crypto Service Encryption User" \
    --assignee $storage_account_principal \
    --scope /keys/<key-name>

Настройка шифрования с помощью ключа в управляемом модуле HSM

Теперь настройте шифрование службы хранилища Azure с помощью ключей, управляемых клиентом, чтобы использовать ключ, хранящийся в управляемом модуле HSM. Поддерживаемые типы ключей включают ключи RSA-HSM размером 2048, 3072 и 4096. Сведения о создании ключа в управляемом модуле HSM см. в разделе Создание ключа HSM.

Установите Azure CLI 2.12.0 или более поздней версии, чтобы настроить шифрование для использования ключа, управляемого клиентом, в управляемом модуле HSM. Дополнительные сведения см. в статье Установка Azure CLI.

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

Затем вызовите команду az storage account update, чтобы обновить параметры шифрования учетной записи хранения, как показано в следующем примере. Добавьте параметр --encryption-key-source parameter и задайте ему значение Microsoft.Keyvault, чтобы включить ключи, управляемые клиентом, для учетной записи. Не забудьте заменить значения заполнителей в скобках собственными значениями.

hsmurl = $(az keyvault show \
    --hsm-name <hsm-name> \
    --query properties.hsmUri \
    --output tsv)

az storage account update \
    --name <storage-account> \
    --resource-group <resource_group> \
    --encryption-key-name <key> \
    --encryption-key-source Microsoft.Keyvault \
    --encryption-key-vault $hsmurl

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

az storage account update
    --name <storage-account> \
    --resource-group <resource_group> \
    --encryption-key-name <key> \
    --encryption-key-version $key_version \
    --encryption-key-source Microsoft.Keyvault \
    --encryption-key-vault $hsmurl

При ручном обновлении версии ключа необходимо обновить параметры шифрования учетной записи хранения, чтобы использовать новую версию. Сначала запросите универсальный код ресурса (URI) хранилища ключей, вызвав команду az keyvault show, а для версии ключа выполните команду az keyvault key list-versions. Затем вызовите команду az storage account update, чтобы обновить параметры шифрования учетной записи хранения для использования новой версии ключа, как показано в предыдущем примере.

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