Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
O Azure Disk Encryption está programado para ser descontinuado a 15 de setembro de 2028. Até essa data, pode continuar a usar o Azure Disk Encryption sem interrupções. A 15 de setembro de 2028, cargas de trabalho com ADE continuarão a funcionar, mas os discos encriptados não conseguirão desbloquear após o reinício da VM, resultando em interrupção do serviço.
Use encriptação no host para novas VMs. Todas as VMs habilitadas por ADE (incluindo backups) devem migrar para encriptação no host antes da data de desativação para evitar interrupções do serviço. Consulte Migrar de Encriptação de Disco Azure para Encriptação no Host para mais detalhes.
Aplica-se a: ✔️ VMs Windows
A nova versão da Criptografia de Disco do Azure elimina a necessidade de fornecer um parâmetro de aplicativo Microsoft Entra para habilitar a criptografia de disco de VM. Com a nova versão, não é mais necessário fornecer credenciais do Microsoft Entra durante a etapa de habilitação de criptografia. Todas as novas VMs devem ser criptografadas sem os parâmetros do aplicativo Microsoft Entra usando a nova versão. Para exibir instruções para habilitar a criptografia de disco de VM usando a nova versão, consulte Criptografia de disco do Azure. As VMs que já foram criptografadas com os parâmetros do aplicativo Microsoft Entra ainda são suportadas e devem continuar a ser mantidas com a sintaxe do Microsoft Entra.
O Azure Disk Encryption usa o Azure Key Vault para controlar e gerenciar chaves e segredos de criptografia de disco. Para obter mais informações sobre cofres de chaves, consulte Introdução ao Cofre de Chaves do Azure e Proteger seu cofre de chaves.
Criar e configurar um cofre de chaves para uso com o Azure Disk Encryption com o Microsoft Entra ID (versão anterior) envolve três etapas:
- Criar um cofre de chaves.
- Defina uma aplicação e uma entidade de serviço do Microsoft Entra.
- Defina a política de acesso ao cofre de chaves para o aplicativo Microsoft Entra.
- Definir as políticas avançadas de acesso do cofre de chaves.
Você também pode, se desejar, gerar ou importar uma chave de criptografia de chave (KEK).
Consulte o artigo principal Criando e configurando um cofre de chaves para o Azure Disk Encryption para obter etapas sobre como instalar ferramentas e conectar-se ao Azure.
Nota
As etapas neste artigo são automatizadas no script de pré-requisitos CLI de Criptografia de Disco do Azure e no script de pré-requisitos PowerShell de Criptografia de Disco do Azure.
Criar um cofre de chaves
O Azure Disk Encryption é integrado ao Azure Key Vault para ajudá-lo a controlar e gerenciar as chaves e segredos de criptografia de disco em sua assinatura do cofre de chaves. Você pode criar um cofre de chaves ou usar um existente para o Azure Disk Encryption. Para obter mais informações sobre cofres de chaves, consulte Introdução ao Cofre de Chaves do Azure e Proteger seu cofre de chaves. Você pode usar um modelo do Gerenciador de Recursos, o Azure PowerShell ou a CLI do Azure para criar um cofre de chaves.
Aviso
Para garantir que os segredos de criptografia não cruzem os limites regionais, o Azure Disk Encryption precisa que o Cofre da Chave e as VMs estejam colocalizados na mesma região. Crie e use um Cofre da Chave que esteja na mesma região da VM a ser criptografada.
Criar um cofre de chaves com o PowerShell
Você pode criar um cofre de chaves com o Azure PowerShell usando o cmdlet New-AzKeyVault . Para obter mais cmdlets (conjuntos de comandos) para o Azure Key Vault, consulte Az.KeyVault.
Crie um novo grupo de recursos, se necessário, com New-AzResourceGroup. Para listar locais de data center, use Get-AzLocation.
# Get-AzLocation New-AzResourceGroup –Name 'MyKeyVaultResourceGroup' –Location 'East US'Criar um novo cofre de chaves usando New-AzKeyVault
New-AzKeyVault -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -Location 'East US'Observe o Nome do Vault, o Nome do Grupo de Recursos, o ID do Recurso, o URI do Vault e o ID do Objeto que são retornados para uso posterior quando você criptografa os discos.
Criar um cofre de chaves com a CLI do Azure
Você pode gerenciar seu cofre de chaves com a CLI do Azure usando os comandos az keyvault . Para criar um cofre de chaves, use az keyvault create.
Crie um novo grupo de recursos, se necessário, com az group create. Para listar locais, use az account list-locations
# To list locations: az account list-locations --output table az group create -n "MyKeyVaultResourceGroup" -l "East US"Crie um novo cofre de chaves usando az keyvault create.
az keyvault create --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --location "East US"Observe o Nome do Vault (nome), o Nome do Grupo de Recursos, o ID do Recurso (ID), o URI do Vault e o ID do Objeto que são retornados para uso posterior.
Criar um cofre de chaves com um modelo do Resource Manager
Você pode criar um cofre de chaves usando o modelo do Gerenciador de Recursos.
- No Modelo de Início Rápido do Azure, selecione Implantar no Azure.
- Selecione a subscrição, o grupo de recursos, a localização do grupo de recursos, o nome do Cofre da Chave, o ID do objeto, os termos legais e o contrato e, em seguida, selecione Comprar.
Configurar uma aplicação e uma entidade de serviço do Microsoft Entra
Quando você precisa que a criptografia seja habilitada em uma VM em execução no Azure, o Azure Disk Encryption gera e grava as chaves de criptografia em seu cofre de chaves. A gestão de chaves de encriptação no cofre de chaves requer autenticação do Microsoft Entra. Crie um aplicativo Microsoft Entra para essa finalidade. Para fins de autenticação, você pode usar a autenticação baseada em segredo do cliente ou a autenticação do Microsoft Entra baseada em certificado de cliente.
Configurar um aplicativo e uma entidade de serviço do Microsoft Entra com o Azure PowerShell
Para executar os comandos a seguir, obtenha e use o módulo do Azure PowerShell.
Use o cmdlet New-AzADApplication PowerShell para criar um aplicativo Microsoft Entra. MyApplicationHomePage e o MyApplicationUri podem ser quaisquer valores que desejar.
$aadClientSecret = "My AAD client secret" $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force $azureAdApplication = New-AzADApplication -DisplayName "My Application Display Name" -HomePage "https://MyApplicationHomePage" -IdentifierUris "https://MyApplicationUri" -Password $aadClientSecretSec $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role ContributorO $azureAdApplication.ApplicationId é o Microsoft Entra ClientID e o $aadClientSecret é o segredo do cliente que você usará mais tarde para habilitar a Criptografia de Disco do Azure. Proteja o segredo do cliente Microsoft Entra adequadamente. A execução
$azureAdApplication.ApplicationIdmostrará o ApplicationID.
Configurar uma aplicação do Microsoft Entra e uma entidade de serviço com a CLI do Azure
Pode gerir as suas entidades de serviço com a CLI do Azure usando os comandos az ad sp. Para obter mais informações, consulte Criar um principal de serviço do Azure.
Crie uma nova entidade de serviço.
az ad sp create-for-rbac --name "ServicePrincipalName" --password "My-AAD-client-secret" --role Contributor --scopes /subscriptions/<subscription_id>O appId retornado é o Microsoft Entra ClientID usado em outros comandos. É também o SPN que você usará para az keyvault set-policy. A senha é o segredo do cliente que você deve usar mais tarde para habilitar a Criptografia de Disco do Azure. Proteja o segredo do cliente Microsoft Entra adequadamente.
Configurar uma aplicação e entidade de serviço Microsoft Entra através do portal Azure
Use os passos do artigo Use o portal para criar uma aplicação Microsoft Entra e uma entidade de serviço que possa aceder a recursos para criar uma aplicação Microsoft Entra. Cada uma dessas etapas levará você diretamente para a seção do artigo a ser concluída.
- Verificar as permissões necessárias
-
Criar um aplicativo Microsoft Entra
- Você pode usar qualquer nome e URL de logon que desejar ao criar o aplicativo.
-
Obtenha o ID do aplicativo e a chave de autenticação.
- A chave de autenticação é o segredo do cliente e é usada como AadClientSecret para Set-AzVMDiskEncryptionExtension.
- A chave de autenticação é usada pelo aplicativo como uma credencial para entrar no Microsoft Entra ID. No portal do Azure, esse segredo é chamado de chaves, mas não tem relação com os cofres de chaves. Proteja este segredo adequadamente.
- O ID do aplicativo será usado posteriormente como AadClientId para Set-AzVMDiskEncryptionExtension e como ServicePrincipalName para Set-AzKeyVaultAccessPolicy.
- A chave de autenticação é o segredo do cliente e é usada como AadClientSecret para Set-AzVMDiskEncryptionExtension.
Definir a política de acesso ao cofre de chaves para o aplicativo Microsoft Entra
Para gravar segredos de criptografia em um Cofre de Chaves especificado, o Azure Disk Encryption precisa da ID do Cliente e do Segredo do Cliente do aplicativo Microsoft Entra que tem permissões para gravar segredos no Cofre da Chave.
Nota
O Azure Disk Encryption exige que configure as políticas de acesso seguintes para a sua aplicação cliente Microsoft Entra: permissões WrapKey e permissões Set.
Definir a política de acesso ao cofre de chaves para o aplicativo Microsoft Entra com o Azure PowerShell
O seu aplicativo Microsoft Entra precisa de permissões para aceder às chaves ou segredos no cofre. Use o cmdlet Set-AzKeyVaultAccessPolicy para conceder permissões ao aplicativo, usando a ID do cliente (que foi gerada quando o aplicativo foi registrado) como o valor do parâmetro –ServicePrincipalName . Para saber mais, consulte a postagem do blog Azure Key Vault - Step by Step.
Defina a política de acesso ao cofre de chaves para o aplicativo AD com o PowerShell.
$keyVaultName = 'MySecureVault' $aadClientID = 'MyAadAppClientID' $KVRGname = 'MyKeyVaultResourceGroup' Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname
Definir a política de acesso ao cofre de chaves para o aplicativo Microsoft Entra com a CLI do Azure
Use az keyvault set-policy para definir a política de acesso. Para obter mais informações, consulte Manage Key Vault using CLI 2.0.
Dê ao principal de serviço que criou por meio da CLI do Azure acesso para obter segredos e envolver chaves com o seguinte comando:
az keyvault set-policy --name "MySecureVault" --spn "<spn created with CLI/the Azure AD ClientID>" --key-permissions wrapKey --secret-permissions set
Definir a política de acesso ao cofre de chaves para a aplicação Microsoft Entra através do portal
- Abra o grupo de recursos com o cofre de chaves.
- Selecione o cofre de chaves, aceda a Políticas de Acesso e, em seguida, selecione Adicionar novo.
- Em Selecionar principal, procure a aplicação Microsoft Entra que você criou e selecione-a.
- Para permissões de chave, marque Chave de encapsulamento em Operações criptográficas.
- Para permissões secretas, marque Definir em Operações de gerenciamento secreto.
- Selecione OK para salvar a política de acesso.
Definir as políticas avançadas de acesso do cofre de chaves
A plataforma Azure precisa de acesso às chaves de encriptação ou segredos no seu cofre de chaves para disponibilizá-los à VM para arranque e desencriptação dos volumes. Ative a criptografia de disco no repositório de chaves ou as implantações falharão.
Definir políticas de acesso avançado do cofre de chaves com o Azure PowerShell
Use o cmdlet do PowerShell Set-AzKeyVaultAccessPolicy para ativar a encriptação de disco no cofre de chaves.
Habilitar o Cofre da Chave para criptografia de disco: EnabledForDiskEncryption é necessário para a criptografia de disco do Azure.
Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDiskEncryptionHabilite o Cofre da Chave para implantação, se necessário: habilita a Microsoft. O provedor de recursos de computação pode recuperar segredos deste cofre de chaves quando este cofre é referenciado na criação de recursos, como ao criar uma máquina virtual.
Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDeploymentHabilitar o Cofre da Chave para implantação de modelo, se necessário: Permite que o Azure Resource Manager obtenha segredos desse cofre de chaves quando esse cofre de chaves é referenciado em uma implantação de modelo.
Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForTemplateDeployment
Definir políticas de acesso avançado do cofre de chaves usando a CLI do Azure
Use az keyvault update para habilitar a criptografia de disco para o cofre de chaves.
Habilitar o Key Vault para criptografia de disco: É necessário que esteja habilitado para a criptografia de disco.
az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-disk-encryption "true"Habilite o Cofre de Chaves para implantação, se necessário: Permita que as Máquinas Virtuais recuperem certificados armazenados como segredos do cofre.
az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-deployment "true"Habilite o Cofre da Chave para implantação de modelo, se necessário: permita que o Gerenciador de Recursos recupere segredos do cofre.
az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-template-deployment "true"
Definir políticas de acesso avançado do cofre de chaves através do portal do Azure
- Selecione seu cofre de chave, vá para Políticas de acesso e Clique para mostrar políticas de acesso avançadas.
- Marque a caixa Habilitar acesso à Criptografia de Disco do Azure para criptografia de volume.
- Selecione Habilitar acesso às Máquinas Virtuais do Azure para implantação e/ou Habilitar acesso ao Azure Resource Manager para implantação de modelo, se necessário.
- Selecione Guardar.
Configurar uma chave de criptografia de chave (opcional)
Se você quiser usar uma chave de criptografia de chave (KEK) para uma camada adicional de segurança para chaves de criptografia, adicione um KEK ao seu cofre de chaves. Use o cmdlet Add-AzKeyVaultKey para criar uma chave de criptografia de chave no cofre de chaves. Você pode também importar um KEK do HSM de gestão de chaves local. Para obter mais informações, consulte Documentação do Key Vault. Quando uma chave de encriptação principal é especificada, o Azure Disk Encryption usa essa chave para envolver os segredos de encriptação antes de os gravar no Azure Key Vault.
Ao gerar chaves, use um tipo de chave RSA. O Azure Disk Encryption ainda não oferece suporte ao uso de chaves de curva elíptica.
O segredo do cofre de chaves e os URLs KEK devem ter versão. O Azure impõe essa restrição de controle de versão. Para URLs secretas e KEK válidas, consulte os seguintes exemplos:
- Exemplo de um URL secreto válido:
https://contosovault.vault.azure.net/secrets/EncryptionSecretWithKek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Exemplo de um URL KEK válido:
https://contosovault.vault.azure.net/keys/diskencryptionkek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Exemplo de um URL secreto válido:
O Azure Disk Encryption não suporta a especificação de números de porta como parte dos segredos do cofre de chaves e URLs KEK. Para obter exemplos de URLs de cofre de chaves não suportadas e suportadas, consulte os seguintes exemplos:
- URL inaceitável do cofre de chaves
https://contosovault.vault.azure.net:443/secrets/contososecret/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - URL aceitável do cofre de chaves:
https://contosovault.vault.azure.net/secrets/contososecret/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- URL inaceitável do cofre de chaves
Configurar uma chave de criptografia de chave com o Azure PowerShell
Antes de usar o script do PowerShell, você deve estar familiarizado com os pré-requisitos do Azure Disk Encryption para entender as etapas no script. O script de exemplo pode precisar de alterações para seu ambiente. Esse script cria todos os pré-requisitos do Azure Disk Encryption e criptografa uma VM IaaS existente, encapsulando a chave de criptografia de disco usando uma chave de criptografia de chave.
# Step 1: Create a new resource group and key vault in the same location.
# Fill in 'MyLocation', 'MyKeyVaultResourceGroup', and 'MySecureVault' with your values.
# Use Get-AzLocation to get available locations and use the DisplayName.
# To use an existing resource group, comment out the line for New-AzResourceGroup
$Loc = 'MyLocation';
$KVRGname = 'MyKeyVaultResourceGroup';
$KeyVaultName = 'MySecureVault';
New-AzResourceGroup –Name $KVRGname –Location $Loc;
New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc;
$KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
$KeyVaultResourceId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname).ResourceId;
$diskEncryptionKeyVaultUrl = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname).VaultUri;
# Step 2: Create the AD application and service principal.
# Fill in 'MyAADClientSecret', "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
# MyApplicationHomePage and the MyApplicationUri can be any values you wish.
$aadClientSecret = 'MyAADClientSecret';
$aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force;
$azureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -Password $aadClientSecretSec
$servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor;
$aadClientID = $azureAdApplication.ApplicationId;
#Step 3: Enable the vault for disk encryption and set the access policy for the Microsoft Entra application.
Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption;
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname;
#Step 4: Create a new key in the key vault with the Add-AzKeyVaultKey cmdlet.
# Fill in 'MyKeyEncryptionKey' with your value.
$keyEncryptionKeyName = 'MyKeyEncryptionKey';
Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName -Destination 'Software';
$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
#Step 5: Encrypt the disks of an existing IaaS VM
# Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.
$VMName = 'MySecureVM';
$VMRGName = 'MyVirtualMachineResourceGroup';
Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId;
Autenticação baseada em certificado (opcional)
Se quiser usar a autenticação de certificado, você pode carregar um para o cofre de chaves e implantá-lo no cliente. Antes de usar o script do PowerShell, você deve estar familiarizado com os pré-requisitos do Azure Disk Encryption para entender as etapas no script. O script de exemplo pode precisar de alterações para seu ambiente.
# Fill in "MyKeyVaultResourceGroup", "MySecureVault", and 'MyLocation' ('My location' only if needed)
$KVRGname = 'MyKeyVaultResourceGroup'
$KeyVaultName= 'MySecureVault'
# Create a key vault and set enabledForDiskEncryption property on it.
# Comment out the next three lines if you already have an existing key vault enabled for encryption. No need to set 'My location' in this case.
$Loc = 'MyLocation'
New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption
#Setting some variables with the key vault information
$KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
# Create the Microsoft Entra application and associate the certificate with it.
# Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
# MyApplicationHomePage and the MyApplicationUri can be any values you wish
$CertPath = "C:\certificates\mycert.pfx"
$CertPassword = "Password"
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
$CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
$ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor
$AADClientID = $AzureAdApplication.ApplicationId
$aadClientCertThumbprint= $cert.Thumbprint
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname
# Upload the pfx file to the key vault.
# Fill in "MyAADCert".
$KeyVaultSecretName = "MyAADCert"
$FileContentBytes = get-content $CertPath -Encoding Byte
$FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
$JSONObject = @"
{
"data" : "$filecontentencoded",
"dataType" : "pfx",
"password" : "$CertPassword"
}
"@
$JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
$JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)
#Set the secret and set the key vault policy for -EnabledForDeployment
$Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment
# Deploy the certificate to the VM
# Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.
$VMName = 'MySecureVM'
$VMRGName = 'MyVirtualMachineResourceGroup'
$CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
$VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
$VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzVM -VM $VM -ResourceGroupName $VMRGName
#Enable encryption on the VM using Microsoft Entra client ID and the client certificate thumbprint
Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId
Autenticação baseada em certificado e um KEK (opcional)
Se você quiser usar a autenticação de certificado e encapsular a chave de criptografia com um KEK, você pode usar o script abaixo como exemplo. Antes de usar o script do PowerShell, você deve estar familiarizado com todos os pré-requisitos anteriores do Azure Disk Encryption para entender as etapas no script. O script de exemplo pode precisar de alterações para seu ambiente.
# Fill in 'MyKeyVaultResourceGroup', 'MySecureVault', and 'MyLocation' (if needed)
$KVRGname = 'MyKeyVaultResourceGroup'
$KeyVaultName= 'MySecureVault'
# Create a key vault and set enabledForDiskEncryption property on it.
# Comment out the next three lines if you already have an existing key vault enabled for encryption.
$Loc = 'MyLocation'
New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption
# Create the Azure AD application and associate the certificate with it.
# Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
# MyApplicationHomePage and the MyApplicationUri can be any values you wish
$CertPath = "C:\certificates\mycert.pfx"
$CertPassword = "Password"
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
$CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
$ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor
$AADClientID = $AzureAdApplication.ApplicationId
$aadClientCertThumbprint= $cert.Thumbprint
## Give access for setting secrets and wraping keys
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname
# Upload the pfx file to the key vault.
# Fill in "MyAADCert".
$KeyVaultSecretName = "MyAADCert"
$FileContentBytes = get-content $CertPath -Encoding Byte
$FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
$JSONObject = @"
{
"data" : "$filecontentencoded",
"dataType" : "pfx",
"password" : "$CertPassword"
}
"@
$JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
$JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)
#Set the secret and set the key vault policy for deployment
$Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment
#Setting some variables with the key vault information and generating a KEK
# FIll in 'KEKName'
$KEKName ='KEKName'
$KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$KEK = Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $KEKName -Destination "Software"
$KeyEncryptionKeyUrl = $KEK.Key.kid
# Deploy the certificate to the VM
# Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.
$VMName = 'MySecureVM';
$VMRGName = 'MyVirtualMachineResourceGroup';
$CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
$VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
$VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzVM -VM $VM -ResourceGroupName $VMRGName
#Enable encryption on the VM using Azure AD client ID and the client certificate thumbprint
Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId
Próximos passos
Habilitar o Azure Disk Encryption com o Microsoft Entra ID em VMs do Windows (versão anterior)