Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: ✔️ виртуальным машинам Linux ✔️ виртуальным машинам Windows ✔️ гибким масштабируемым наборам ✔️ универсальным масштабируемым наборам
Хранилище дисков Azure позволяет управлять собственными ключами при использовании шифрования на стороне сервера (SSE) для управляемых дисков при выборе. Общие сведения о SSE с управляемыми клиентом ключами, а также другие типы шифрования управляемых дисков см. в разделе ключей, управляемых клиентом , статьи по шифрованию дисков.
Ограничения
В настоящее время ключи, управляемые клиентом, имеют следующие ограничения.
- Если эта функция включена для диска с добавочными моментальными снимками, его нельзя отключить на этом диске или его моментальных снимках. Чтобы обойти эту проблему, скопируйте все данные на совершенно другой управляемый диск, который не использует ключи, управляемые клиентом. Это можно сделать с помощью модуля Azure CLI или модуля Azure PowerShell.
- Диск и все связанные с ним добавочные моментальные снимки должны иметь один и тот же набор шифрования дисков.
- Поддерживаются только программные и HSM-ключи RSA размером 2 048, 3 072 и 4 096 бит, другие ключи или размеры не поддерживаются.
- ключи HSM требуют премиум-уровня Хранилища ключей Azure.
- Только для дисков категории "Ультра" и SSD уровня "Премиум" версии 2:
- (предварительная версия) Управляемые удостоверения, назначаемые пользователем, доступны для дисков Категории "Ультра" и SSD уровня "Премиум" версии 2, зашифрованных с помощью ключей, управляемых клиентом.
- Большинство ресурсов, связанных с вашими ключами, управляемыми клиентом (наборы шифрования дисков, виртуальные машины, диски и моментальные снимки), должны находиться в одной подписке и регионе.
- Azure Хранилища ключей могут использоваться из другой подписки, но должны находиться в том же регионе, что и набор шифрования дисков. Azure Key Vault в разных клиентах Microsoft Entra поддерживаются для управляемых дисков. Дополнительные сведения см. в разделе "Шифрование управляемых дисков" с помощью ключей, управляемых клиентом.
- Диски, зашифрованные с помощью управляемых клиентом ключей, могут перемещаться в другую группу ресурсов, только если виртуальная машина, к которой они подключены, деактивирована.
- Диски, моментальные снимки и изображения, зашифрованные с помощью ключей, управляемых клиентом, нельзя перемещать между подписками.
- Управляемые диски в настоящее время или ранее зашифрованные с помощью Шифрование дисков Azure не могут быть зашифрованы с помощью ключей, управляемых клиентом.
- Можно создать до 5000 наборов шифрования дисков в рамках подписки на регион.
- Сведения об использовании ключей, управляемых клиентом, с общими коллекциями образов см. в статье "Предварительная версия: использование управляемых клиентом ключей для шифрования изображений".
Создание ресурсов
После включения функции необходимо настроить DiskEncryptionSet и Azure Key Vault или Azure Key Vault Managed HSM.
Azure Key Vault
- Установите последнюю версию Azure CLI и войдите в учетную запись Azure с помощью имени входа az login.
- Создайте хранилище ключей Azure и ключ шифрования.
При создании Key Vault необходимо включить защиту очистки. Защита от очистки гарантирует, что удаленный ключ не может быть окончательно удален до истечения срока хранения. Эти параметры защищают от потери данных из-за случайного удаления. Эти параметры являются обязательными при использовании Key Vault для шифрования управляемых дисков.
Это важно
Не используйте CamelCase для указания региона, так как это может вызвать проблемы при добавлении дополнительных дисков ресурсу в портале Azure.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- Создайте DiskEncryptionSet. Для включения автоматического поворота клавиши можно задать значение true , чтобы включить автоматическую смену ключа. При включении автоматического вращения система автоматически обновляет все управляемые диски, моментальные снимки и образы, ссылающиеся на комплект шифрования дисков, чтобы использовать новую версию ключа в течение одного часа.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- Предоставьте ресурсу DiskEncryptionSet доступ к хранилищу ключей.
Замечание
Для создания идентификатора вашего DiskEncryptionSet в Microsoft Entra ID в Azure может потребоваться несколько минут. Если при выполнении следующей команды возникает сообщение об ошибке "Не удается найти объект Active Directory", подождите несколько минут и повторите попытку.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
управляемый модуль HSM в Azure Key Vault
Кроме того, для работы с ключами можно использовать управляемый модуль HSM.
Для этого нужно обеспечить соблюдение следующих предварительных условий.
- Установите последнюю версию Azure CLI и войдите в учетную запись Azure с помощью имени входа az login.
- Создание и настройка управляемого устройства HSM.
- Назначьте пользователю разрешения, чтобы управлять управляемым устройством HSM.
Конфигурация
После создания управляемого модуля HSM и добавления разрешений включите защиту от удаления и создайте ключ шифрования.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
Теперь создайте DiskEncryptionSet.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Наконец, предоставьте для DiskEncryptionSet доступ к управляемому модулю HSM.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Итак, создав и настроив эти ресурсы, вы теперь можете использовать их для защиты управляемых дисков. Следующие ссылки содержат примеры скриптов, каждый из которых имеет соответствующий сценарий, который можно использовать для защиты управляемых дисков.
Примеры
Создание виртуальной машины с помощью образа Marketplace, шифрование дисков ОС и данных с помощью ключей, управляемых клиентом
rgName=yourResourceGroupName
vmName=yourVMName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName -n $vmName -l $location --image $image --size $vmSize --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 128 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Шифрование существующих управляемых дисков
Существующие диски не должны быть подключены к работающей виртуальной машине, чтобы зашифровать их с помощью следующего сценария:
rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId
Создание масштабируемого набора виртуальных машин с помощью образа Marketplace, шифрование дисков ОС и данных с помощью ключей, управляемых клиентом
rgName=yourResourceGroupName
vmssName=yourVMSSName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image $image --upgrade-policy automatic --admin-username azureuser --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 64 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Создайте пустой диск, зашифрованный с помощью шифрования на стороне сервера с ключами, управляемыми клиентом, и подключите его к виртуальной машине.
vmName=yourVMName
rgName=yourResourceGroupName
diskName=yourDiskName
diskSkuName=Premium_LRS
diskSizeinGiB=30
location=westcentralus
diskLUN=2
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk create -n $diskName -g $rgName -l $location --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId --size-gb $diskSizeinGiB --sku $diskSkuName
diskId=$(az disk show -n $diskName -g $rgName --query [id] -o tsv)
az vm disk attach --vm-name $vmName --lun $diskLUN --ids $diskId
Измените ключ DiskEncryptionSet, чтобы повернуть ключ для всех ресурсов, ссылающихся на DiskEncryptionSet.
rgName=yourResourceGroupName
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
keyVaultId=$(az keyvault show --name $keyVaultName--query [id] -o tsv)
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set update -n keyrotationdes -g keyrotationtesting --key-url $keyVaultKeyUrl --source-vault $keyVaultId
Поиск состояния шифрования на стороне сервера диска
az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv
Это важно
Управляемые клиентом ключи зависят от управляемых удостоверений для ресурсов Azure, являющихся функцией Microsoft Entra ID. При настройке управляемых пользователем ключей управляемое удостоверение автоматически назначается вашим ресурсам в фоновом режиме. Если вы впоследствии перемещаете подписку, группу ресурсов или управляемый диск из одного каталога Microsoft Entra в другой, управляемое удостоверение, связанное с управляемыми дисками, не передается новому клиенту, поэтому ключи, управляемые клиентом, больше не работают. Дополнительные сведения см. в разделе Перенос подписки между каталогами Microsoft Entra.
Дальнейшие шаги
- Исследуйте шаблоны Azure Resource Manager для создания зашифрованных дисков с помощью ключей, управляемых клиентом
- Репликация компьютеров с дисками, управляемыми клиентом
- Настройка аварийного восстановления виртуальных машин VMware для Azure с помощью PowerShell
- Настройка аварийного восстановления для Azure виртуальных машин Hyper-V с помощью PowerShell и Azure Resource Manager
- См. статью "Создание управляемого диска из моментального снимка" с помощью ИНТЕРФЕЙСА командной строки для примера кода.