Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Шаблон Azure Resource Manager (шаблон ARM) можно использовать для быстрого создания конфиденциальной виртуальной машины Azure. Конфиденциальные виртуальные машины работают на обоих процессорах AMD, поддерживаемых AMD SEV-SNP и процессорами Intel, поддерживаемыми Intel TDX, для обеспечения шифрования и изоляции памяти виртуальных машин. Дополнительные сведения см. в разделе Обзор конфиденциальных виртуальных машин.
Это руководство описывает развертывание конфиденциальной виртуальной машины с пользовательской конфигурацией.
- Подписка Azure. Бесплатные пробные учетные записи не предоставляют доступ к виртуальным машинам, используемым в этом руководстве. Одним из возможных вариантов является подписка с оплатой по мере использования.
- Если вы хотите развернуть из Azure CLI, установите PowerShell и установите Azure CLI.
Вы можете развернуть шаблон конфиденциальной виртуальной машины с необязательным шифрованием диска ОС с помощью ключа, управляемого платформой.
Чтобы создать и развернуть конфиденциальную виртуальную машину с помощью шаблона ARM с помощью Azure CLI:
Войдите в свою учетную запись Azure в Azure CLI.
az login
Настройте свою подписку Azure. Замените
<subscription-id>
идентификатором своей подписки. Обязательно используйте подписку, которая соответствует предварительным требованиям.az account set --subscription <subscription-id>
Задайте переменные для конфиденциальной виртуальной машины. Укажите имя развертывания (
$deployName
), группу ресурсов ($resourceGroup
), имя виртуальной машины ($vmName
) и регион Azure ($region
). Замените примеры значений собственными сведениями.Примечание
Конфиденциальные виртуальные машины доступны не во всех расположениях. Сведения о поддерживаемых расположениях см. в разделе Доступность продуктов Azure по регионам.
$deployName="<deployment-name>" $resourceGroup="<resource-group-name>" $vmName= "<confidential-vm-name>" $region="<region-name>"
Если указанная группа ресурсов не существует, создайте группу ресурсов с таким именем.
az group create -n $resourceGroup -l $region
Разверните виртуальную машину в Azure с помощью шаблона ARM с пользовательским файлом параметров и файлом шаблона.
az deployment group create ` -g $resourceGroup ` -n $deployName ` -u "<json-template-file-path>" ` -p "<json-parameter-file-path>" ` -p vmLocation=$region ` vmName=$vmName
При создании конфиденциальной виртуальной машины с помощью интерфейс командной строки Azure (Azure CLI) необходимо определить пользовательский файл параметров. Чтобы создать файл настраиваемых параметров JSON, сделайте следующее:
Войдите в учетную запись Azure с помощью Azure CLI.
Создайте файл параметров JSON. Например,
azuredeploy.parameters.json
.В зависимости от используемого образа ОС скопируйте пример файла параметров Windows или пример файла параметров Linux в файл параметров.
При необходимости измените код JSON в файле параметров. Например, обновите имя образа ОС (
osImageName
) или имя пользователя администратора (adminUsername
).Настройка параметра типа безопасности (
securityType
). ВыберитеVMGuestStateOnly
без конфиденциального шифрования диска ОС. Или выберитеDiskWithVMGuestState
конфиденциальное шифрование диска ОС с помощью ключа, управляемого платформой. Только для SKU Intel TDX и образов на основе Linux клиенты могут выбратьNonPersistedTPM
тип безопасности для развертывания с помощью эфемерного vTPM.NonPersistedTPM
Для типа безопасности в файле шаблона используйте минимальное значение apiVersion: "2023-09-01".Microsoft.Compute/virtualMachines
Сохраните файл параметров.
Используйте этот пример, чтобы создать файл настраиваемых параметров для конфиденциальной виртуальной машины под управлением Windows.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmSize": {
"value": "Standard_DC2as_v5"
},
"osImageName": {
"value": "Windows Server 2022 Gen 2"
},
"securityType": {
"value": "DiskWithVMGuestState"
},
"adminUsername": {
"value": "testuser"
},
"adminPasswordOrKey": {
"value": "<your password>"
}
}
}
Используйте этот пример, чтобы создать файл настраиваемых параметров для конфиденциальной виртуальной машины под управлением Linux.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmSize": {
"value": "Standard_DC2as_v5"
},
"osImageName": {
"value": "Ubuntu 20.04 LTS Gen 2"
},
"securityType": {
"value": "DiskWithVMGuestState"
},
"adminUsername": {
"value": "testuser"
},
"authenticationType": {
"value": "sshPublicKey"
},
"adminPasswordOrKey": {
"value": <your SSH public key>
}
}
}
Примечание
Замените значение osImageName соответствующим образом.
Развертывание шаблона конфиденциальной виртуальной машины с помощью конфиденциального шифрования диска ОС с помощью ключа, управляемого клиентом
Войдите в учетную запись Azure с помощью Azure CLI.
az login
Настройте свою подписку Azure. Замените
<subscription-id>
идентификатором своей подписки. Обязательно используйте подписку, которая соответствует предварительным требованиям.az account set --subscription <subscription-id>
Предоставление субъекту-службе конфиденциальной виртуальной машины клиенту
Confidential VM Orchestrator
Для этого шага необходимо быть глобальным администратором или у вас должна быть роль администратора доступа пользователей RBAC. Установите пакет SDK Microsoft Graph, чтобы выполнить приведенные ниже команды.
Connect-Graph -Tenant "your tenant ID" Application.ReadWrite.All New-MgServicePrincipal -AppId bf7b6499-ff71-4aa2-97a4-f372087be7f0 -DisplayName "Confidential VM Orchestrator"
Настройте хранилище ключей Azure. Сведения об использовании управляемого HSM в Azure Key Vault см. на следующем шаге.
Создайте группу ресурсов для хранилища ключей. Экземпляр хранилища ключей и конфиденциальная виртуальная машина должны находиться в одном регионе Azure.
$resourceGroup = <key vault resource group> $region = <Azure region> az group create --name $resourceGroup --location $region
Создайте экземпляр хранилища ключей с номером SKU уровня "Премиум" и выберите предпочтительный регион. Стандартный номер SKU не поддерживается.
$KeyVault = <name of key vault> az keyvault create --name $KeyVault --resource-group $resourceGroup --location $region --sku Premium --enable-purge-protection
Убедитесь, что у вас есть роль владельца в этом хранилище ключей.
Предоставьте
Confidential VM Orchestrator
разрешенияget
иrelease
хранилище ключей.$cvmAgent = az ad sp show --id "bf7b6499-ff71-4aa2-97a4-f372087be7f0" | Out-String | ConvertFrom-Json az keyvault set-policy --name $KeyVault --object-id $cvmAgent.Id --key-permissions get release
(Необязательно) Если вы не хотите использовать хранилище ключей Azure, вы можете создать управляемый HSM в Azure Key Vault.
Следуйте краткому руководству по созданию управляемого HSM в Azure Key Vault для подготовки и активации управляемого HSM в Azure Key Vault.
Включите защиту очистки в управляемом HSM Azure. Этот шаг необходим для включения выпуска ключа.
az keyvault update-hsm --subscription $subscriptionId -g $resourceGroup --hsm-name $hsm --enable-purge-protection true
Предоставьте
Confidential VM Orchestrator
разрешения управляемому HSM.$cvmAgent = az ad sp show --id "bf7b6499-ff71-4aa2-97a4-f372087be7f0" | Out-String | ConvertFrom-Json az keyvault role assignment create --hsm-name $hsm --assignee $cvmAgent.Id --role "Managed HSM Crypto Service Release User" --scope /keys/$KeyName
Создайте новый ключ с помощью Azure Key Vault. Сведения о том, как использовать управляемый HSM Azure, см. на следующем шаге.
Подготовьте и скачайте политику выпуска ключа на локальный диск.
Создайте новый ключ.
$KeyName = <name of key> $KeySize = 3072 az keyvault key create --vault-name $KeyVault --name $KeyName --ops wrapKey unwrapkey --kty RSA-HSM --size $KeySize --exportable true --policy "@.\skr-policy.json"
Получение сведений о созданном ключе.
$encryptionKeyVaultId = ((az keyvault show -n $KeyVault -g $resourceGroup) | ConvertFrom-Json).id $encryptionKeyURL= ((az keyvault key show --vault-name $KeyVault --name $KeyName) | ConvertFrom-Json).key.kid
Разверните набор шифрования дисков (DES) с помощью шаблона DES ARM (
deployDES.json
).$desName = <name of DES> $deployName = <name of deployment> $desArmTemplate = <name of DES ARM template file> az deployment group create ` -g $resourceGroup ` -n $deployName ` -f $desArmTemplate ` -p desName=$desName ` -p encryptionKeyURL=$encryptionKeyURL ` -p encryptionKeyVaultId=$encryptionKeyVaultId ` -p region=$region
Назначьте доступ к ключу к DES-файлу.
$desIdentity= (az disk-encryption-set show -n $desName -g $resourceGroup --query [identity.principalId] -o tsv) az keyvault set-policy -n $KeyVault ` -g $resourceGroup ` --object-id $desIdentity ` --key-permissions wrapkey unwrapkey get
(Необязательно) Создайте новый ключ из управляемого устройства HSM Azure.
Подготовьте и скачайте политику выпуска ключа на локальный диск.
Создайте новый ключ.
$KeyName = <name of key> $KeySize = 3072 az keyvault key create --hsm-name $hsm --name $KeyName --ops wrapKey unwrapkey --kty RSA-HSM --size $KeySize --exportable true --policy "@.\skr-policy.json"
Получение сведений о созданном ключе.
$encryptionKeyURL = ((az keyvault key show --hsm-name $hsm --name $KeyName) | ConvertFrom-Json).key.kid
Развертывание DES.
$desName = <name of DES> az disk-encryption-set create -n $desName ` -g $resourceGroup ` --key-url $encryptionKeyURL
Назначьте ключ доступа к DES.
$desIdentity=$(az disk-encryption-set show -n $desName -g $resourceGroup --query [identity.principalId] -o tsv) az keyvault set-policy -n $hsm ` -g $resourceGroup ` --object-id $desIdentity ` --key-permissions wrapkey unwrapkey get
Разверните конфиденциальную виртуальную машину с помощью ключа, управляемого клиентом.
Получите идентификатор ресурса для DES.
$desID = (az disk-encryption-set show -n $desName -g $resourceGroup --query [id] -o tsv)
Разверните конфиденциальную виртуальную машину с помощью шаблона ARM конфиденциальной виртуальной машины для Intel TDX и файла параметров развертывания (например,
azuredeploy.parameters.win2022.json
с помощью ключа, управляемого клиентом).$deployName = <name of deployment> $vmName = <name of confidential VM> $cvmArmTemplate = <name of confidential VM ARM template file> $cvmParameterFile = <name of confidential VM parameter file> az deployment group create ` -g $resourceGroup ` -n $deployName ` -f $cvmArmTemplate ` -p $cvmParameterFile ` -p diskEncryptionSetId=$desID ` -p vmName=$vmName
Подключитесь к конфиденциальной виртуальной машине, чтобы убедиться, что создание выполнено успешно.