Cenários de Azure Disk Encryption em VMs Windows

Importante

O Azure Disk Encryption está programado para ser desativado em 15 de setembro de 2028. Até essa data, você pode continuar a usar o Azure Disk Encryption sem interrupções. Em 15 de setembro de 2028, as cargas de trabalho habilitadas para ADE continuarão a ser executadas, mas os discos criptografados não serão desbloqueados após reinicializações da VM, resultando em interrupção do serviço.

Use a criptografia no host para novas VMs ou considere tamanhos de VM confidenciais com criptografia de disco do sistema operacional para cargas de trabalho de computação confidenciais. Todas as VMs habilitadas para ADE (incluindo backups) devem migrar para a criptografia no host antes da data de desativação para evitar a interrupção do serviço. Consulte Migrar do Azure Disk Encryption para criptografia no host para obter detalhes.

Aplica-se a: ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis

O Azure Disk Encryption para VMs do Windows usa o recurso BitLocker do Windows para fornecer criptografia completa do disco do sistema operacional e dos discos de dados. Além disso, ele criptografa o disco temporário quando o VolumeType parâmetro é All.

O Azure Disk Encryption é integrado ao Azure Key Vault para ajudar você a controlar e gerenciar as chaves de criptografia de disco e os segredos. Para obter uma visão geral do serviço, confira Azure Disk Encryption para VMs Windows.

Pré-requisitos

Você pode aplicar criptografia de disco somente a máquinas virtuais de tamanhos de VM e sistemas operacionais compatíveis. Você também deve atender aos seguintes pré-requisitos:

Restrições

Se você usou anteriormente Azure Disk Encryption com Microsoft Entra ID para criptografar uma VM, continue a usar essa opção para criptografar sua VM. Consulte Azure Disk Encryption com o Microsoft Entra ID (versão anterior) para obter detalhes.

Tire um instantâneo ou crie um backup antes que os discos sejam criptografados. Os backups garantem que uma opção de recuperação seja possível, no caso de uma falha inesperada durante a criptografia. VMs com discos gerenciados exigem um backup antes que a criptografia ocorra. Depois que um backup é feito, você poderá usar o cmdlet Set-AzVMDiskEncryptionExtension para criptografar discos gerenciados, especificando o parâmetro -skipVmBackup. Para obter mais informações sobre como fazer backup e restaurar VMs criptografadas, confira Backup e restauração da VM do Azure criptografada.

Criptografar ou desabilitar a criptografia pode fazer com que uma VM seja reinicializada.

Azure Disk Encryption não funciona para os seguintes cenários, recursos e tecnologia:

  • criptografia de VM de camada básica ou VMs criadas por meio do método de criação de VM clássico.
  • Criptografar VMs da série v6 com discos temporários (Ddsv6, Dldsv6, Edsv6, Dadsv6, Daldsv6, Eadsv6, Dpdsv6, Dpldsv6, Epdsv6 ou Endsv6). Para obter mais informações, consulte as páginas individuais para cada um desses tamanhos de VM listados em Tamanhos para máquinas virtuais em Azure.
  • Criptografar a série V7 e tamanhos de VM mais recentes.
  • Todos os requisitos e restrições do BitLocker, como exigir um NTFS. Para obter mais informações, confira Visão geral do BitLocker.
  • Criptografia de VMs configuradas com sistemas RAID baseados em software.
  • Criptografia de VMs configuradas com o Espaços de Armazenamento Diretos (S2D) ou versões do Windows Server anteriores a 2016 configuradas com espaços de armazenamento do Windows.
  • Integração ao sistema de gerenciamento de chaves local.
  • Arquivos do Azure (sistema de arquivo compartilhado).
  • NFS (Network File System).
  • Volumes dinâmicos.
  • Contêineres do Windows Server, que criam volumes dinâmicos para cada contêiner.
  • Discos do SO Efêmero.
  • Discos iSCSI.
  • Criptografia de sistemas de arquivos compartilhados/distribuídos como (mas não se limitando a): DFS, GFS, DRDB e CephFS.
  • Mover uma VM criptografada para outra assinatura ou região.
  • Criando uma imagem ou instantâneo de uma VM criptografada e usando-a para implantar mais VMs.
  • Série de tamanho de VM otimizada para armazenamento da família "L".
  • VMs da série M com discos Acelerador de Gravação.
  • Aplicando o ADE a uma VM que tem discos criptografados com criptografia no host ou na criptografia do lado do servidor com chaves gerenciadas pelo cliente (SSE + CMK). Aplicar SSE + CMK a um disco de dados ou adicionar um disco de dados com SSE + CMK configurado para uma VM criptografada com ADE também é um cenário sem suporte.
  • Migrar uma VM criptografada com a ADE ou que já foi criptografada com o ADE para criptografia no host ou na criptografia do lado do servidor com chaves gerenciadas pelo cliente.
  • Criptografia de VMs em clusters de failover.
  • Criptografia do Azure Ultra Disks.
  • Criptografia de discos SSD Premium v2.
  • Criptografia de VMs em assinaturas que têm a Secrets should have the specified maximum validity period política habilitada com o efeito de negação.
  • Criptografia de VMs em assinaturas que têm a Key Vault secrets should have an expiration date política habilitada com o efeito de negação.

Instalar ferramentas e conectar-se ao Azure

Você pode habilitar e gerenciar Azure Disk Encryption por meio do CLI do Azure e Azure PowerShell. Para fazer isso, instale as ferramentas localmente e conecte-se à sua assinatura Azure.

CLI do Azure

O CLI 2.0 do Azure é uma ferramenta de linha de comando para gerenciar recursos do Azure. A CLI é projetada para consultar dados com flexibilidade, dar suporte a operações de longa execução como processos desbloqueados e facilitar o script. Você pode instalá-la localmente seguindo as etapas em Instalar a CLI do Azure.

Para entrar em sua conta Azure com o CLI do Azure, use o comando az login.

az login

Para selecionar o locatário no qual fazer login, use:

az login --tenant <tenant>

Para especificar uma das várias assinaturas, obtenha sua lista de assinaturas usando a lista de contas az e especifique a assinatura usando az account set.

az account list
az account set --subscription "<subscription name or ID>"

Para obter mais informações, consulte Introdução à CLI do Azure.

Azure PowerShell

O módulo Azure PowerShell Az fornece um conjunto de cmdlets que usam o modelo de Azure Resource Manager para gerenciar seus recursos de Azure. Você pode usá-lo no navegador com Azure Cloud Shell ou instalá-lo no computador local usando as instruções em Instalar o módulo Azure PowerShell.

Se você já o tiver instalado localmente, use a versão mais recente do Azure PowerShell para configurar Azure Disk Encryption. Baixe a versão mais recente nas versões do Azure PowerShell.

Para entrar em sua conta Azure com Azure PowerShell, use o cmdlet Connect-AzAccount.

Connect-AzAccount

Para especificar uma das várias assinaturas, use o cmdlet Get-AzSubscription para listá-las, seguido pelo cmdlet Set-AzContext :

Set-AzContext -Subscription <SubscriptionId>

Execute o cmdlet Get-AzContext para verificar se a assinatura correta está selecionada.

Para confirmar se os cmdlets Azure Disk Encryption estão instalados, use o cmdlet Get-Command:

Get-Command *diskencryption*

Para saber mais, confira Introdução ao Azure PowerShell.

Habilitar criptografia em uma VM do Windows em execução ou existente

Nesse cenário, é possível habilitar a criptografia usando o modelo do Resource Manager, os cmdlets do PowerShell ou os comandos da CLI. Se você precisar de informações de esquema para a extensão de máquina virtual, consulte o Azure Disk Encryption para extensão do artigo Windows.

Habilitar a criptografia em VMs existentes ou em execução usando Azure PowerShell

Use o cmdlet Set-AzVMDiskEncryptionExtension para habilitar a criptografia em uma máquina virtual de IaaS em execução no Azure.

  • Criptografar uma VM em execução: O script a seguir inicializa suas variáveis e executa o cmdlet Set-AzVMDiskEncryptionExtension. O grupo de recursos, a VM e o cofre de chaves já devem existir como pré-requisitos. Substitua MyKeyVaultResourceGroup, MyVirtualMachineResourceGroup, MySecureVM e MySecureVault por seus valores.

     $KVRGname = 'MyKeyVaultResourceGroup';
     $VMRGName = 'MyVirtualMachineResourceGroup';
     $vmName = 'MySecureVM';
     $KeyVaultName = 'MySecureVault';
     $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
     $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
     $KeyVaultResourceId = $KeyVault.ResourceId;
    
     Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId;
    
  • Criptografar uma VM em execução usando uma KEK:

    $KVRGname = 'MyKeyVaultResourceGroup';
    $VMRGName = 'MyVirtualMachineResourceGroup';
    $vmName = 'MyExtraSecureVM';
    $KeyVaultName = 'MySecureVault';
    $keyEncryptionKeyName = 'MyKeyEncryptionKey';
    $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
    $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
    $KeyVaultResourceId = $KeyVault.ResourceId;
    $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
    
    Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId;
    
    

    Observação

    A sintaxe para o valor do parâmetro disk-encryption-keyvault é a cadeia de caracteres do identificador completo: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    A sintaxe do valor do parâmetro key-encryption-key é o URI completo da KEK, como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Verificar se os discos estão criptografados: para verificar o status de criptografia de uma VM de IaaS, use o cmdlet Get-AzVmDiskEncryptionStatus.

    Get-AzVmDiskEncryptionStatus -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM'
    

Para desabilitar a criptografia, confira Desabilitar criptografia e remover a extensão de criptografia.

Habilitar a criptografia em VMs existentes ou em execução usando o CLI do Azure

Use o comando az vm encryption enable para habilitar a criptografia em uma máquina virtual da IaaS em execução no Azure.

  • Criptografar uma VM em execução:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Criptografar uma VM em execução usando uma KEK:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|Data]
    

    Observação

    A sintaxe para o valor do parâmetro disk-encryption-keyvault é a cadeia de caracteres do identificador completo: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    A sintaxe do valor do parâmetro key-encryption-key é o URI completo da KEK, como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Verificar se os discos estão criptografados: para verificar o status de criptografia de uma VM de IaaS, use o comando az vm encryption show.

    az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    

Para desabilitar a criptografia, confira Desabilitar criptografia e remover a extensão de criptografia.

Usar o modelo de Resource Manager

É possível habilitar a criptografia de disco em VMs do Windows da IaaS em execução ou existentes no Azure usando o modelo do Resource Manager para criptografar uma VM do Windows em execução.

  1. No modelo de início rápido Azure, selecione Implantar no Azure.

  2. Selecione a assinatura, o grupo de recursos, o local, as configurações, os termos legais e o contrato. Selecione Comprar para habilitar a criptografia na VM IaaS existente ou em execução.

A tabela a seguir lista os parâmetros de modelo do Resource Manager existentes para as VMs em execução ou existentes:

Parâmetro Descrição
vmName Nome da VM para executar a operação de criptografia.
keyVaultName Nome do cofre de chaves no qual a chave do BitLocker deve ser carregada. É possível obtê-lo, usando o cmdlet (Get-AzKeyVault -ResourceGroupName <MyKeyVaultResourceGroupName>). Vaultname ou o comando az keyvault list --resource-group "MyKeyVaultResourceGroup" da CLI do Azure
keyVaultResourceGroup Nome do grupo de recursos que contém o cofre de chaves
keyEncryptionKeyURL A URL da chave de criptografia de chave, no formato https://< keyvault-name >.vault.azure.net/key/< key-name >. Se você não quiser usar um KEK, deixe este campo em branco.
volumeType Tipo de volume em que a operação de criptografia é executada. Os valores válidos são OS, Data e All.
forceUpdateTag Passe um valor exclusivo como um GUID sempre que a execução da operação precise ser forçada.
resizeOSDisk A partição do SO deve ser redimensionada para ocupar o VHD do SO completo antes de dividir o volume do sistema.
local Local de todos os recursos.

Novas VMs da IaaS criadas a partir de chaves de criptografia e VHD criptografado pelo cliente

Nesse cenário, você pode criar uma nova VM com base em um VHD pré-criptografado e as chaves de criptografia associadas usando cmdlets ou comandos da CLI do PowerShell.

Use as instruções em Preparar um VHD do Windows pré-criptografado. Depois que a imagem for criada, você poderá usar as etapas na próxima seção para criar uma VM do Azure criptografada.

Criptografe VMs com VHDs pré-criptografados usando o Azure PowerShell

Você pode ativar a criptografia de disco no seu VHD criptografado com o cmdlet do PowerShell Set-AzVMOSDisk. O exemplo a seguir fornece alguns parâmetros comuns.

$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Windows -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myKVresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"

Habilitar criptografia em um disco de dados adicionado recentemente

Você pode adicionar um novo disco a uma VM Windows usando o PowerShell ou por meio do portal Azure.

Observação

A criptografia de disco de dados recém-adicionada deve ser habilitada apenas por meio do PowerShell ou da CLI. Atualmente, o portal Azure não dá suporte à habilitação da criptografia em novos discos.

Habilitar a criptografia em um disco recém-adicionado usando Azure PowerShell

Quando você usa o PowerShell para criptografar um novo disco para VMs Windows, especifique uma nova versão de sequência. A versão da sequência deve ser única. O script a seguir gera um GUID para a versão da sequência. Em alguns casos, um disco de dados adicionado recentemente pode ser criptografado automaticamente pela extensão do Azure Disk Encryption. A criptografia automática geralmente ocorre quando a VM é reinicializada depois que o novo disco fica online. Esse comportamento normalmente ocorre porque "All" foi especificado para o tipo de volume quando a criptografia de disco foi executada anteriormente na VM. Se a criptografia automática ocorrer em um disco de dados recém-adicionado, recomendamos executar o cmdlet Set-AzVmDiskEncryptionExtension novamente com uma nova versão de sequência. Se o seu novo disco de dados for criptografado automaticamente e você não quiser ser criptografado, primeiro descriptografe todas as unidades e criptografe novamente com uma nova versão de sequência, especificando o SO para o tipo de volume.

  • Criptografar uma VM em execução: O script a seguir inicializa suas variáveis e executa o cmdlet Set-AzVMDiskEncryptionExtension. O grupo de recursos, a VM e o cofre de chaves já devem existir como pré-requisitos. Substitua MyKeyVaultResourceGroup, MyVirtualMachineResourceGroup, MySecureVM e MySecureVault por seus valores. O exemplo a seguir usa "All" para o parâmetro -VolumeType, que inclui volumes do SO e de dados. Se você quiser apenas criptografar o volume do SO, use "OS" para o parâmetro -VolumeType.

     $KVRGname = 'MyKeyVaultResourceGroup';
     $VMRGName = 'MyVirtualMachineResourceGroup';
     $vmName = 'MySecureVM';
     $KeyVaultName = 'MySecureVault';
     $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
     $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
     $KeyVaultResourceId = $KeyVault.ResourceId;
     $sequenceVersion = [Guid]::NewGuid();
    
     Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType "All" –SequenceVersion $sequenceVersion;
    
  • Criptografe uma VM em execução usando uma KEK: O exemplo a seguir usa "All" para o parâmetro -VolumeType, que inclui os volumes do SO e de dados. Se você quiser apenas criptografar o volume do SO, use "OS" para o parâmetro -VolumeType.

    $KVRGname = 'MyKeyVaultResourceGroup';
    $VMRGName = 'MyVirtualMachineResourceGroup';
    $vmName = 'MyExtraSecureVM';
    $KeyVaultName = 'MySecureVault';
    $keyEncryptionKeyName = 'MyKeyEncryptionKey';
    $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
    $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
    $KeyVaultResourceId = $KeyVault.ResourceId;
    $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
    $sequenceVersion = [Guid]::NewGuid();
    
    Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType "All" –SequenceVersion $sequenceVersion;
    
    

    Observação

    A sintaxe para o valor do parâmetro disk-encryption-keyvault é a cadeia de caracteres do identificador completo: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    A sintaxe do valor do parâmetro key-encryption-key é o URI completo da KEK, como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Habilitar a criptografia em um disco recém-adicionado usando CLI do Azure

O comando CLI do Azure fornece automaticamente uma nova versão de sequência para você ao executar o comando para habilitar a criptografia. Os exemplos usam "All" para o parâmetro do tipo de volume. Talvez seja necessário alterar o parâmetro volume-type para OS caso esteja criptografando apenas o disco do sistema operacional. Em contraste com a sintaxe do PowerShell, a CLI não exige que o usuário forneça uma versão de sequência exclusiva ao habilitar a criptografia. A CLI gera e usa automaticamente o próprio valor de versão de sequência exclusivo.

  • Criptografar uma VM em execução:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "All"
    
  • Criptografar uma VM em execução usando uma KEK:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "All"
    

Desabilitar a criptografia e remover a extensão de criptografia

Você pode desabilitar a extensão Azure Disk Encryption e remover a extensão Azure Disk Encryption. Essas operações são distintas.

Para remover o ADE, primeiro desabilite a criptografia e remova a extensão. Se você remover a extensão de criptografia sem desabilitá-la, os discos ainda serão criptografados. Se você desabilitar a criptografia depois de remover a extensão, a extensão será reinstalada (para executar a operação de descriptografia) e você precisará removê-la uma segunda vez.

Desabilitar criptografia

Você pode desabilitar a criptografia usando Azure PowerShell, o CLI do Azure ou usando um modelo de Resource Manager. Desabilitar a criptografia não remove a extensão (confira Remover a extensão de criptografia).

Aviso

Desabilitar a criptografia de disco de dados quando o sistema operacional e os discos de dados são criptografados pode ter resultados inesperados. Desabilite a criptografia em todos os discos em vez disso.

A desabilitação da criptografia inicia um processo em segundo plano do BitLocker para descriptografar os discos. Dê a esse processo tempo suficiente para ser concluído antes de tentar habilitar novamente a criptografia.

  • Desabilite a criptografia de disco usando Azure PowerShell: para desabilitar a criptografia, use o cmdlet Disable-AzVMDiskEncryption.

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "all"
    
  • Desabilite a criptografia usando o CLI do Azure: para desabilitar a criptografia, use o comando az vm encryption disable.

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "all"
    
  • Desabilite a criptografia usando um modelo de Resource Manager:

    1. Selecione Implantar no Azure no modelo Desabilitar a criptografia de disco em uma VM do Windows em execução.
    2. Selecione a assinatura, o grupo de recursos, o local, a VM, o tipo de volume, os termos legais e o contrato.
    3. Clique em Comprar para desabilitar a criptografia de disco em uma VM do Windows em execução.

Remova a extensão de criptografia

Se você quiser descriptografar seus discos e remover a extensão de criptografia, desabilite a criptografia antes de remover a extensão. Para obter mais informações, consulte desabilitar a criptografia.

Você pode remover a extensão de criptografia usando Azure PowerShell ou o CLI do Azure.

  • Desabilite a criptografia de disco usando Azure PowerShell: para remover a criptografia, use o cmdlet Remove-AzVMDiskEncryptionExtension.

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Desabilite a criptografia usando o CLI do Azure: para remover a criptografia, use o comando az vm extension delete.

    az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryption"
    

Próximas etapas