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

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

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

Примечание.

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

Назначьте идентификатор для учетной записи хранения

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

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

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

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

Назначьте роль Managed HSM Crypto Service Encryption User управляемой идентификации учетной записи хранения, чтобы учетная запись хранения получила разрешения для доступа к управляемому 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, чтобы обновить параметры шифрования учетной записи хранения для использования новой версии ключа, как показано в предыдущем примере.

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