Cenários do Azure Disk Encryption em VMs do Windows

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 na hospedagem para novas VMs, ou considere tamanhos de VM confidenciais com encriptação do disco do SO para workloads de computação confidencial. 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 ✔️ Conjuntos de escala flexíveis

O Azure Disk Encryption para máquinas virtuais (VMs) do Windows utiliza a funcionalidade BitLocker do Windows para proporciona encriptação completa do disco do SO e do disco de dados. Além disso, encripta o disco temporário quando o VolumeType parâmetro é All.

O Azure Disk Encryption é integrado ao Azure Key Vault para ajudá-lo a controlar e gerenciar as chaves e segredos de criptografia de disco. Para obter uma descrição geral do serviço, veja Azure Disk Encryption para VMs do Windows.

Pré-requisitos

Pode aplicar encriptação de disco apenas a máquinas virtuais com tamanhos de VM e sistemas operativos suportados. Também deve cumprir os seguintes pré-requisitos:

Restrições

Se anteriormente usou o Azure Disk Encryption com Microsoft Entra ID para encriptar uma VM, continue a usar esta opção para encriptar a sua VM. Para obter os detalhes, veja Azure Disk Encryption com o Microsoft Entra ID (versão anterior).

Tira um snapshot ou faz uma cópia de segurança antes de os discos serem encriptados. As cópias de segurança garantem que uma opção de recuperação é possível se ocorrer uma falha inesperada durante a encriptação. As VMs com discos geridos requerem uma cópia de segurança antes de ocorrer a encriptação. Depois que um backup for feito, você poderá usar o cmdlet Set-AzVMDiskEncryptionExtension para criptografar discos gerenciados especificando o parâmetro -skipVmBackup. Para obter mais informações sobre como criar a cópia de segurança e restaurar VMs encriptadas, veja Criar cópia de segurança e restaurar a VM do Azure encriptada.

Encriptar ou desativar a encriptação pode fazer com que uma VM reinicie.

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

  • Encriptar VMs de camada básica ou VMs criadas pelo método clássico de criação de VMs.
  • Encriptação de VMs da série v6 com discos temporários (Ddsv6, Dldsv6, Edsv6, Dadsv6, Daldsv6, Eadsv6, Dpdsv6, Dpldsv6, Epdsv6 ou Endsv6). Para mais informações, consulte as páginas individuais para cada um destes tamanhos de VM listadas em Tamanhos para máquinas virtuais no Azure.
  • Encriptar tamanhos de VM da série V7 ou mais recentes.
  • Todos os requisitos e restrições do BitLocker, como exigir NTFS. Para obter mais informações, consulte Visão geral do BitLocker.
  • Criptografia de VMs configuradas com sistemas RAID baseados em software.
  • Criptografia de VMs configuradas com 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 num sistema de gestão de chaves no local.
  • Arquivos do Azure (sistema de arquivos compartilhado).
  • Sistema de arquivos de rede (NFS).
  • Volumes dinâmicos.
  • Contêineres do Windows Server, que criam volumes dinâmicos para cada contêiner.
  • Discos de SO efémeros.
  • Discos iSCSI.
  • Criptografia de sistemas de arquivos compartilhados/distribuídos como (mas não limitado a) DFS, GFS, DRDB e CephFS.
  • Mover uma VM encriptada para outra subscrição ou região.
  • Criar uma imagem ou instantâneo de uma VM criptografada e usá-la para implantar mais VMs.
  • Série de tamanho de VM otimizada para armazenamento da família 'L'.
  • VMs da série M com discos Write Accelerator.
  • Aplicar ADE a uma VM com discos encriptados com encriptação no anfitrião ou encriptação do lado do servidor com chaves geridas 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 encriptada com ADE, ou que alguma vez foi encriptada com ADE, para encriptação no lado do host ou do servidor com chaves geridas pelo cliente.
  • A encriptação de VMs em clusters de failover.
  • Encriptação de Azure Ultra Disks.
  • Encriptação de discos SSD Premium v2.
  • Encriptação de VMs em subscrições que têm a política Secrets should have the specified maximum validity period ativada com o efeito negar.
  • Encriptação de VMs em subscrições que têm a política Key Vault secrets should have an expiration date ativada com o efeito negar.

Instalar ferramentas e conectar-se ao Azure

Pode ativar e gerir o Azure Disk Encryption através do CLI do Azure e do Azure PowerShell. Para isso, instale as ferramentas localmente e ligue-se à sua subscrição do Azure.

CLI do Azure

A CLI 2.0 do Azure é uma ferramenta de linha de comando para gerenciar recursos do Azure. A CLI foi projetada para consultar dados de forma flexível, suportar operações de longa execução como processos sem bloqueio e facilitar o scripting. Você pode instalá-lo localmente seguindo as etapas em Instalar a CLI do Azure.

Para iniciar sessão na sua conta Azure com a CLI do Azure, use o comando az login.

az login

Para selecionar um inquilino sob o qual iniciar sessão, utilize:

az login --tenant <tenant>

Para especificar uma de várias subscrições, obtenha a sua lista de subscrições usando a lista de contas do az, e especifique a subscrição usando o conjunto de contas do az.

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 utilizam o modelo Azure Resource Manager para gerir os seus recursos Azure. Podes usá-lo no teu navegador com o Azure Cloud Shell, ou podes instalá-lo na tua máquina local usando as instruções no módulo Instalar o módulo Azure PowerShell.

Se já o tem instalado localmente, use a versão mais recente do Azure PowerShell para configurar o Azure Disk Encryption. Descarregue a versão mais recente das versões do Azure PowerShell.

Para iniciar sessão na sua conta Azure com Azure PowerShell, use o cmdlet Connect-AzAccount.

Connect-AzAccount

Para especificar uma das múltiplas subscrições, use o cmdlet Get-AzSubscription para os listar, seguido do cmdlet Set-AzContext :

Set-AzContext -Subscription <SubscriptionId>

Execute o cmdlet Get-AzContext para verificar se a subscrição correta está selecionada.

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

Get-Command *diskencryption*

Para obter mais informações, consulte Introdução ao Azure PowerShell.

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

Nesse cenário, você pode habilitar a criptografia usando o modelo do Gerenciador de Recursos, cmdlets do PowerShell ou comandos da CLI. Se necessitar de informações de esquema para a extensão de máquina virtual, consulte o artigo sobre a extensão Azure Disk Encryption for Windows.

Ative a encriptação em VMs existentes ou em funcionamento usando Azure PowerShell

Use o cmdlet Set-AzVMDiskEncryptionExtension para habilitar a encriptação numa máquina virtual IaaS que está em execução no Azure.

  • Encriptar uma VM em execução: O script seguinte inicializa as 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 pelos 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;
    
  • Encripte uma VM em execução usando um 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;
    
    

    Nota

    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 para o valor do parâmetro key-encryption-key é o URI completo para o KEK como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

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

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

Para desativar a encriptação, consulte Desativar encriptação e remover a extensão de encriptação.

Ative a encriptação em VMs existentes ou em funcionamento usando a CLI do Azure

Use o comando az vm encryption enable para habilitar a criptografia em uma máquina virtual 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]
    
  • Encripte uma VM em execução usando um 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]
    

    Nota

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

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

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

Para desativar a encriptação, consulte Desativar encriptação e remover a extensão de encriptação.

Use o modelo Resource Manager

Você pode habilitar a criptografia de disco em VMs do Windows IaaS existentes ou em execução no Azure usando o modelo do Gerenciador de Recursos para criptografar uma VM do Windows em execução.

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

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

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

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

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

Neste cenário, pode criar uma nova VM a partir de um VHD pré-encriptado e das chaves de encriptação associadas usando comandos de comando PowerShell ou CLI.

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

Encripte VMs com VHDs pré-encriptados utilizando o Azure PowerShell

Pode ativar a encriptação de disco no seu VHD encriptado com o cmdlet 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 a criptografia em um disco de dados recém-adicionado

Pode adicionar um novo disco a uma VM do Windows usando o PowerShell ou através do portal Azure.

Nota

A encriptação do disco de dados recentemente adicionada deve ser ativada apenas via PowerShell ou pela CLI. Atualmente, o portal Azure não suporta ativar a encriptação em novos discos.

Ative a encriptação num disco recém-adicionado usando o Azure PowerShell

Quando usar o PowerShell para encriptar 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 de sequência. Em alguns casos, um disco de dados recém-adicionado pode ser criptografado automaticamente pela extensão Azure Disk Encryption. A encriptação automática geralmente ocorre quando a VM reinicia após o novo disco entrar online. Este comportamento ocorre tipicamente porque "All" foi especificado para o tipo de volume quando a encriptação do disco foi executada anteriormente na VM. Se um disco de dados adicionado recentemente for encriptado automaticamente, recomendamos executar novamente o cmdlet Set-AzVmDiskEncryptionExtension com uma nova versão da sequência. Se o teu novo disco de dados for automaticamente encriptado e não quiseres que seja encriptado, desencripta primeiro todos os discos e depois volta a encriptar com uma nova versão de sequência que especifique o sistema operativo para o tipo de volume.

  • Encriptar uma VM em execução: O script seguinte inicializa as 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 pelos seus valores. O exemplo seguinte usa "All" para o parâmetro -VolumeType, que inclui tanto os volumes OS como Data. Se você quiser apenas criptografar o volume do sistema operacional, 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;
    
  • Encripte uma VM em execução usando um KEK: O exemplo seguinte usa "All" para o parâmetro -VolumeType, que inclui tanto os volumes OS como Data. Se você quiser apenas criptografar o volume do sistema operacional, 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;
    
    

    Nota

    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 para o valor do parâmetro key-encryption-key é o URI completo para o KEK como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Ative a encriptação num disco recém-adicionado usando o CLI do Azure

O comando da CLI do Azure fornece-lhe automaticamente uma nova versão da sequência ao executar o comando para ativar a encriptação. O exemplo usa "All" para o parâmetro volume-type. Podes precisar de mudar o parâmetro do tipo de volume para OS se estiveres apenas a encriptar o disco do SO. Ao contrário da sintaxe PowerShell, a CLI não exige que o utilizador forneça uma versão única da sequência ao ativar a encriptação. A CLI gera e usa automaticamente seu 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"
    
  • Encripte uma VM em execução usando um 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"
    

Desative a criptografia e remova a extensão de criptografia

Podes desativar a extensão Azure Disk Encryption e remover a extensão Azure Disk Encryption. Estas operações são distintas.

Para remover o ADE, primeiro desative a encriptação e depois remova a extensão. Se remover a extensão de encriptação sem a desativar, os discos continuam encriptados. Se desativar a encriptação após remover a extensão, a extensão é reinstalada (para realizar a operação de desencriptação) e precisa de a remover uma segunda vez.

Desativar encriptação

Pode desativar a encriptação usando o Azure PowerShell, o CLI do Azure ou um modelo do Resource Manager. A desativação da encriptação não remove a extensão (consulte Remover a extensão de encriptação).

Aviso

Desativar a encriptação do disco de dados quando tanto o sistema operativo como os discos de dados estão encriptados pode ter resultados inesperados. Em vez disso, desative a criptografia em todos os discos.

Desativar a encriptação inicia um processo em segundo plano do BitLocker para desencriptar os discos. Dê tempo suficiente a este processo para ser concluído antes de tentar reativar a encriptação.

  • Desative a encriptação de disco usando o Azure PowerShell: Para desativar a encriptação, use o cmdlet Disable-AzVMDiskEncryption.

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "all"
    
  • Desative a encriptação usando a CLI do Azure: Para desativar a encriptação, use o comando az-vm encryption disable (desabilitar).

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "all"
    
  • Desative a encriptação usando um modelo do Resource Manager:

    1. Selecione Implementar no Azure a partir do modelo Desativar a encriptação do disco na 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. Selecione Comprar para desativar a criptografia de disco em uma VM do Windows em execução.

Remover a extensão de encriptação

Se quiseres desencriptar os teus discos e remover a extensão de encriptação, desativa a encriptação antes de remover a extensão. Para mais informações, consulte desativar encriptação.

Pode remover a extensão de encriptação usando o Azure PowerShell ou a CLI do Azure.

  • Desabilite a encriptação de disco usando o Azure PowerShell: Para remover a encriptação, use o cmdlet Remove-AzVMDiskEncryptionExtension.

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Desabilite a encriptação usando a CLI do Azure: Para remover a encriptação, use o comando delete da extensão az VM.

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

Próximos passos