Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ гибкие масштабируемые наборы виртуальных машин ✔️ Linux
При включении шифрования на узле данные, хранящиеся на узле виртуальной машины, шифруются при хранении и передаются в зашифрованном виде в службу хранилища. Общие сведения о шифровании на узле и других типах шифрования управляемых дисков см. в разделе "Шифрование на узле— сквозное шифрование данных виртуальной машины".
Ограничения
- Невозможно включить на виртуальных машинах или масштабируемых наборах виртуальных машин, если в настоящее время или когда-либо было активировано шифрование дисков Azure.
- Шифрование дисков Azure нельзя включить на дисках с включенным шифрованием на узле.
- Шифрование можно включить в существующих масштабируемых наборах виртуальных машин. Однако автоматически выполняется шифрование только новых виртуальных машин, созданных после включения шифрования.
- Для шифрования существующие виртуальные машины необходимо освободить и перераспределить.
Следующие ограничения применяются только к дискам категории "Ультра" и SSD уровня "Премиум" версии 2.
- Диски, использующие размер сектора 512e, должны быть созданы после 5/13.2023.
- Если диск был создан до этой даты, снимайте диск и создайте новый диск с помощью моментального снимка.
Поддерживаемые размеры виртуальных машин
Полный список поддерживаемых размеров виртуальных машин можно получить программным способом. Сведения о том, как получить их программным способом, см. в разделе " Поиск поддерживаемых размеров виртуальных машин ". Обновление размера виртуальной машины приводит к проверке, чтобы проверить, поддерживает ли новый размер виртуальной машины функцию EncryptionAtHost.
Предварительные условия
Прежде чем использовать свойство EncryptionAtHost для виртуальной машины или VMSS, необходимо включить эту функцию в подписке. Подключите функцию для вашей подписки, используя следующие шаги:
- Выполните следующую команду, чтобы зарегистрировать функцию для подписки
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Убедитесь, что состояние регистрации зарегистрировано (занимает несколько минут), выполнив приведенную ниже команду, прежде чем попробовать эту функцию.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Создание ресурсов
Примечание.
Этот раздел относится только к конфигурациям с ключами, управляемыми клиентом. Если вы используете ключи, управляемые платформой, можно перейти к разделу "Примеры сценариев ".
После включения функции необходимо настроить DiskEncryptionSet и Azure Key Vault или управляемый модуль HSM в Azure Key Vault.
Azure Key Vault
- Установите последнюю версию Azure CLI и войдите в учетную запись Azure командой az login.
- Создайте Azure Key Vault и ключ шифрования.
При создании Key Vault необходимо включить защиту от удаления. Защита от очистки гарантирует, что удаленный ключ не может быть окончательно удален до истечения срока хранения. Эти параметры защищают от потери данных из-за случайного удаления. Эти параметры являются обязательными при использовании Key Vault для шифрования управляемых дисков.
Внимание
Не используйте "верблюжий стиль" для названия региона, так как это может привести к проблемам при назначении дополнительных дисков для ресурса на портале 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 может потребоваться несколько минут. Если при выполнении следующей команды появляется сообщение об ошибке вида "Не удается найти объект 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
Примеры скриптов
Создание виртуальной машины с шифрованием на узле с поддержкой ключей, управляемых клиентом
Создайте виртуальную машину с управляемыми дисками, используя URI ресурса для ранее созданного набора DiskEncryptionSet, чтобы зашифровать кэш дисков ОС и данных с помощью ключей, управляемых клиентом. Шифрование временных дисков выполняется с ключами, управляемыми платформой.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_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 \
--encryption-at-host \
--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=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \
Обновление виртуальной машины для включения шифрования на узле
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Проверьте состояния шифрования на узле виртуальной машины.
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Обновление виртуальной машины для отключения шифрования на узле
Необходимо освободить виртуальную машину, прежде чем можно будет отключить шифрование на узле.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Создание масштабируемого набора виртуальных машин с шифрованием на узле с поддержкой ключей, управляемых клиентом
Создайте масштабируемый набор виртуальных машин с управляемыми дисками, используя URI ресурса DiskEncryptionSet, созданного ранее, чтобы шифровать кэш ОС и данных дисков с помощью ключей, управляемых клиентом. Шифрование временных дисков выполняется с ключами, управляемыми платформой.
Внимание
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Создание масштабируемого набора виртуальных машин с шифрованием на узле с поддержкой ключей, управляемых платформой
Создайте масштабируемый набор виртуальных машин с шифрованием на узле, чтобы шифровать кэш дисков ОС/данных и временных дисков с помощью ключей, управляемых платформой.
Внимание
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \
Обновление масштабируемого набора виртуальных машин для включения шифрования на узле
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Проверка состояния шифрования на узле для масштабируемого набора виртуальных машин
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Обновление масштабируемого набора виртуальных машин для отключения шифрования на узле
Вы можете отключить шифрование на узле в масштабируемом наборе виртуальных машин, но это повлияет только на виртуальные машины, созданные после отключения шифрования на узле. Для существующих виртуальных машин необходимо освободить виртуальную машину, отключить шифрование на узле на этой отдельной виртуальной машине, а затем перераспределить виртуальную машину.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Поиск поддерживаемых размеров виртуальных машин
Устаревшие размеры виртуальных машин не поддерживаются. Список поддерживаемых размеров виртуальных машин можно найти с помощью API SKU ресурсов или Azure CLI.
При вызове API Skus resource убедитесь, что EncryptionAtHostSupported
для возможности задано значение True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUS"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
Для Azure CLI используйте команду az vm image list-skus .
location=centralus
az vm list-skus --location $location --all \
--resource-type virtualMachines \
--query "[?capabilities[?name=='EncryptionAtHostSupported' && value=='True']].{VMName:name, EncryptionAtHost:capabilities[?name=='EncryptionAtHostSupported'].value | [0]}" \
--output table
Следующие шаги
Итак, создав и настроив эти ресурсы, вы теперь можете использовать их для защиты управляемых дисков. По ссылке ниже доступны примеры отдельных сценариев, которые можно использовать для защиты управляемых дисков.