Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Шифрование дисков Azure будет выведено из эксплуатации 15 сентября 2028 г. До этой даты вы можете продолжать использовать шифрование дисков Azure без нарушений. 15 сентября 2028 г. рабочие нагрузки с поддержкой ADE будут выполняться, но зашифрованные диски не смогут разблокироваться после перезагрузки виртуальной машины, что приведет к нарушению работы службы.
Используйте шифрование на узле для новых виртуальных машин. Все виртуальные машины с поддержкой ADE (включая резервные копии) должны перенестися в шифрование на узле до даты выхода на пенсию, чтобы избежать прерывания работы службы. Дополнительные сведения см. в статье "Миграция из шифрования дисков Azure в шифрование на узле ".
Модуль Azure PowerShell используется для создания ресурсов Azure и управления ими из командной строки PowerShell или скриптов. В этой статье показано, как использовать Azure PowerShell для создания и шифрования масштабируемого набора виртуальных машин. Дополнительные сведения о применении шифрования дисков Azure к масштабируемой группе виртуальных машин см. в статье "Шифрование дисков Azure для масштабируемых наборов виртуальных машин".
Azure Cloud Shell
Azure размещает Azure Cloud Shell, интерактивную среду оболочки, которую можно использовать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для выполнения кода в этой статье можно использовать предустановленные команды Cloud Shell, не устанавливая ничего в локальной среде.
Чтобы запустить Azure Cloud Shell, выполните приведенные действия.
| Вариант | Пример и ссылка |
|---|---|
| Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. |
|
| Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. |
|
| Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
|
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите Enter, чтобы запустить код или команду.
Создание Хранилища ключей Azure, включенного для шифрования дисков
Azure Key Vault может хранить ключи, секреты или пароли, которые позволяют безопасно реализовать их в приложениях и службах. Криптографические ключи хранятся в Azure Key Vault с помощью программной защиты, или вы можете импортировать или создать ключи в аппаратных модулях безопасности (HSM), сертифицированных в стандартах FIPS 140 . Эти криптографические ключи используются для шифрования и расшифровки виртуальных дисков, подключенных к виртуальной машине. Вы сохраняете контроль над этими криптографическими ключами и можете проверять их использование.
Создайте Key Vault с New-AzKeyVault. Чтобы разрешить использование Key Vault для шифрования дисков, задайте параметр EnabledForDiskEncryption . В следующем примере также определяются переменные для имени группы ресурсов, имени Key Vault и расположения. Укажите собственное уникальное имя Key Vault:
$rgName="myResourceGroup"
$vaultName="myuniquekeyvault"
$location = "EastUS"
New-AzResourceGroup -Name $rgName -Location $location
New-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName -Location $location -EnabledForDiskEncryption
Использование существующего хранилища ключей
Этот шаг требуется только в том случае, если у вас есть хранилище ключей, которое вы хотите использовать с шифрованием дисков. Пропустите этот шаг, если вы создали Key Vault в предыдущем разделе.
Вы можете включить существующее хранилище ключей в той же подписке и регионе, что и масштабируемый набор для шифрования дисков с помощью Set-AzKeyVaultAccessPolicy. Определите имя существующего Key Vault в переменной $vaultName следующим образом:
$vaultName="myexistingkeyvault"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName -EnabledForDiskEncryption
Создать набор для масштабирования
Это важно
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
Сначала задайте имя пользователя и пароль администратора для экземпляров виртуальных машин с использованием Get-Credential:
$cred = Get-Credential
Теперь создайте масштабируемый набор виртуальных машин с использованием команды New-AzVmss. Для распределения трафика между отдельными экземплярами виртуальных машин также создается подсистема балансировки нагрузки. Подсистема балансировки нагрузки включает правила для распределения трафика через TCP-порт 80, а также разрешает трафик удаленного рабочего стола через TCP-порт 3389 и удалённое управление PowerShell через TCP-порт 5985:
$vmssName="myScaleSet"
New-AzVmss `
-ResourceGroupName $rgName `
-VMScaleSetName $vmssName `
-OrchestrationMode "flexible" `
-Location $location `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-Credential $cred
Включение шифрования
Чтобы зашифровать экземпляры виртуальных машин в масштабируемом наборе, сначала получите сведения о URI Key Vault и идентификаторе ресурса с помощью команды Get-AzKeyVault. Эти переменные используются для запуска процесса шифрования с помощью команды Set-AzVmssDiskEncryptionExtension:
$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"
При появлении запроса введите y , чтобы продолжить процесс шифрования дисков в экземплярах виртуальных машин масштабируемого набора.
Включите шифрование с использованием KEK для завертывания ключа
Вы также можете использовать ключ шифрования для дополнительной безопасности при шифровании масштабируемого набора виртуальных машин.
$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $vaultName -Name $keyEncryptionKeyName).Key.kid;
Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"
Замечание
Синтаксис для значения параметра ключ шифрования диска - это полная строка идентификатора:
/subscriptions/[subscription-id-guid]/resourceGroups/[имя группы ресурсов]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
. Синтаксис для параметра ключ шифрования ключа - это полный универсальный код ресурса (URI) к KEK (КШК), как в:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
Проверка хода выполнения шифрования
Чтобы проверить состояние шифрования дисков, используйте Get-AzVmssDiskEncryption:
Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName
Когда экземпляры виртуальных машин шифруются, код EncryptionSummary сообщает ProvisioningState/успешно , как показано в следующем примере выходных данных:
ResourceGroupName : myResourceGroup
VmScaleSetName : myScaleSet
EncryptionSettings :
KeyVaultURL : https://myuniquekeyvault.vault.azure.net/
KeyEncryptionKeyURL :
KeyVaultResourceId : /subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myuniquekeyvault
KekVaultResourceId :
KeyEncryptionAlgorithm :
VolumeType : All
EncryptionOperation : EnableEncryption
EncryptionSummary[0] :
Code : ProvisioningState/succeeded
Count : 2
EncryptionEnabled : True
EncryptionExtensionInstalled : True
Отключение шифрования
Если вы больше не хотите использовать зашифрованные диски экземпляров виртуальных машин, можно отключить шифрование с помощью Disable-AzVmssDiskEncryption следующим образом:
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName
Дальнейшие шаги
- В этой статье вы использовали Azure PowerShell для шифрования масштабируемого набора виртуальных машин. Вы также можете использовать шаблоны Azure CLI или Azure Resource Manager.
- Если вы хотите применить шифрование дисков Azure после установки другого расширения, можно использовать последовательность расширений.