Cenários do Azure Disk Encryption em VMs Linux

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

O Azure Disk Encryption para VMs (máquinas virtuais) do Linux usa o recurso DM-Crypt do Linux para fornecer criptografia de disco completa do disco do sistema operacional e discos de dados. Além disso, ele fornece criptografia do disco temporário ao usar o recurso EncryptFormatAll.

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 Linux.

Pré-requisitos

Você só pode aplicar a criptografia de disco a máquinas virtuais de tamanhos de VM e sistemas operacionais com suporte. Você também deve atender aos seguintes pré-requisitos:

Em todos os casos, você deve tirar um instantâneo e/ou criar 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, consulte o artigo Backup do Microsoft Azure.

Restrições

Se já tiver usado a Criptografia de Disco do Azure com o Microsoft Entra ID para criptografar uma VM, você precisa continuar usando essa opção para criptografar sua VM. Consulte Criptografia de Disco do Azure com o Microsoft Entra ID (versão anterior) para obter detalhes.

Ao criptografar volumes do sistema operacional Linux, a VM deve ser considerada não disponível. É altamente recomendável evitar logons SSH enquanto a criptografia estiver em andamento para evitar problemas ao bloquear os arquivos abertos que precisarão ser acessados durante o processo de criptografia. Para verificar o progresso, use o cmdlet Get-AzVMDiskEncryptionStatus do PowerShell ou o comando vm encryption show da CLI. Esse processo deve levar algumas horas para um volume do sistema operacional de 30 GB, mais algum tempo para criptografar volumes de dados. O tempo para criptografia de volume de dados será proporcional ao tamanho e à quantidade dos volumes de dados, a menos que a opção EncryptFormatAll seja usada.

Desabilitar criptografia nas VMs do Linux tem suporte apenas para volumes de dados. Não haverá suporte em dados ou volumes de SO, se o volume de SO tiver sido criptografado.

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

  • criptografia de VM de camada básica ou VMs criadas por meio do método de criação de VM clássico.
  • Desabilitação da criptografia em uma unidade do sistema operacional ou unidade de dados de uma VM Linux quando a unidade do sistema operacional é criptografada.
  • Criptografia da unidade do sistema operacional para conjuntos de dimensionamento de máquinas virtuais do Linux.
  • Criptografia de imagens personalizadas em VMs Linux.
  • Integração ao sistema de gerenciamento de chaves local.
  • Arquivos do Azure (sistema de arquivo compartilhado).
  • NFS (Network File System).
  • Volumes dinâmicos.
  • Discos do SO Efêmero.
  • 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.
  • Criar uma imagem ou um instantâneo de uma VM criptografada e usá-la para implantar VMs adicionais.
  • Kdump (kernel de despejo de memória).
  • Oracle ACFS (Sistema de Arquivos de Cluster do ASM).
  • Discos NVMe, como aqueles em Tamanhos de VM de computação de alto desempenho ou Tamanhos de VM otimizados para armazenamento.
  • Uma VM com "pontos de montagem aninhados"; ou seja, vários pontos de montagem em um só caminho (como "/1stmountpoint/data/2stmountpoint").
  • Uma VM com uma unidade de dados montada na parte superior de uma pasta do sistema operacional.
  • Uma VM na qual um volume lógico (disco do sistema operacional) foi expandido usando um disco de dados.
  • VMs da série M com discos Acelerador de Gravação.
  • Aplicar ADE a uma VM que tem discos criptografados com criptografia em host ou 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 que é criptografada com ADE ou que foi criptografada com ADE, para a criptografia em host ou criptografia do lado do servidor com chaves gerenciadas pelo cliente.
  • Criptografia de VMs em clusters de failover.
  • Criptografia de ultra discos do Azure.
  • Criptografia de discos SSD Premium v2.
  • A criptografia de VMs em assinaturas que tenham a política de Período máximo de validade especificado para segredos deve estar habilitada com o efeito DENY.

Instalar ferramentas e conectar-se ao Azure

O Azure Disk Encryption pode ser habilitado e gerenciado por meio da CLI do Azure e do Azure PowerShell. Para fazer isso, você deve instalar as ferramentas localmente e se conectar à sua assinatura 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 na assinatura do Azure com a CLI do Azure, use o comando az login.

az login

Se você deseja selecionar um locatário a ser usado para entrar, use:

az login --tenant <tenant>

Se você tiver várias assinaturas e quiser especificar uma lista específica, obtenha a lista de assinaturas com az account list e especifique com 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 2.0.

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

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 Linux artigo.

Importante

É obrigatório tirar um instantâneo e/ou fazer backup de uma instância de VM baseada em disco gerenciado fora do Azure Disk Encryption e antes de habilitá-lo. Um instantâneo do disco gerenciado pode ser obtido do portal ou por meio do Backup do Azure. Backups asseguram que uma opção de recuperação é possível no caso de qualquer falha inesperada durante a criptografia. Depois que um backup é feito, o cmdlet Set-AzVMDiskEncryptionExtension pode ser usado para criptografar discos gerenciados especificando o parâmetro -skipVmBackup. O comando Set-AzVMDiskEncryptionExtension falhará nas VMs baseadas em disco gerenciado até que um backup seja feito e esse parâmetro tenha sido especificado.

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

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

É possível habilitar a criptografia de disco no VHD criptografado, instalando e usando a ferramenta de linha de comando da CLI do Azure. Você pode usá-lo em seu navegador com o Azure Cloud Shell, ou você pode instalá-lo em seu computador local e usá-lo em qualquer sessão do PowerShell. Para habilitar a criptografia em VMs Linux existentes ou em execução no Azure, use os seguintes comandos da CLI:

Use o comando az vm encryption enable para habilitar a criptografia em uma máquina virtual 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 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/[GUID-ID-da-assinatura]/resourceGroups/[nome-do-grupo-de-recursos]/providers/Microsoft.KeyVault/vaults/[nome-do-cofre-de-chaves]
    A sintaxe do valor do parâmetro key-encryption-key é o URI completo da KEK, como em: https://[nome-do-cofre-de-chaves].vault.azure.net/keys/[nome-da-kek]/[id-exclusiva-da-kek]

  • Verificar se os discos estão criptografados: Para verificar o status de criptografia de uma VM, 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 recurso EncryptFormatAll para discos de dados em VMs Linux

O parâmetro EncryptFormatAll reduz o tempo de criptografia dos discos de dados do Linux. As partições que atendem a determinados critérios serão formatadas junto com seus sistemas de arquivos atuais e remontadas para o local no qual estavam antes da execução do comando. Se você quiser excluir um disco de dados que atenda aos critérios, será possível desmontá-lo antes de executar o comando.

Depois de executar esse comando, todas as unidades que foram montadas anteriormente serão formatadas e a camada de criptografia será iniciada sobre a unidade agora vazia. Quando essa opção for selecionada, o disco temporário anexado à VM também será criptografado. Se o disco temporário for reiniciado, ele será reformatado e criptografado novamente para a VM pela solução do Azure Disk Encryption na próxima oportunidade. Depois que o disco de recursos é criptografado, o agente Linux do Microsoft Azure não poderá gerenciar o disco de recursos e habilitar o arquivo de permuta, mas você poderá configurar manualmente o arquivo de permuta.

Aviso

O EncryptFormatAll não deverá ser usado quando houver dados necessários nos volumes de dados de uma VM. É possível excluir discos da criptografia, desmontando-os. Primeiro será necessário testar o EncryptFormatAll, primeiro em uma VM de teste, e compreender o parâmetro de recurso e a respectiva implicação antes de testá-lo na VM de produção. A opção EncryptFormatAll formata o disco de dados e todos os dados nele serão perdidos. Antes de prosseguir, verifique se os discos que deseja excluir estão corretamente desmontados.

Se você estiver configurando esse parâmetro ao atualizar as configurações de criptografia, isso poderá levar a um reinício antes da criptografia real. Nesse caso, é recomendável também remover o disco que você não quer que seja formatado no arquivo fstab. Da mesma forma, é necessário adicionar a partição que deseja criptografar ao arquivo fstab antes de iniciar a operação de criptografia.

Critérios do EncryptFormatAll

O parâmetro passa por todas as partições e as criptografa, desde que atendam a todos os critérios abaixo:

  • Não é uma partição de inicialização/SO/raiz
  • Ainda não está criptografado
  • Não é um volume BEK
  • Não é um volume RAID
  • Não é um volume LVM
  • Está montado

Criptografe os discos que compõem o volume RAID ou LVM em vez do volume RAID ou LVM.

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

  • Criptografe uma VM em execução usando EncryptFormatAll:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
    

Usar o parâmetro EncryptFormatAll com LVM (Gerenciador de Volume Lógico)

É recomendável uma configuração LVM-on-crypt. Para obter instruções detalhadas sobre o LVM na configuração de criptografia, confira Configurar LVM e RAID em dispositivos ADE criptografados.

VMs criadas usando as chaves de criptografia e o VHD criptografado pelo cliente

Nesse cenário, é possível habilitar a criptografia usando cmdlets do PowerShell ou comandos da CLI.

Use as instruções nos mesmos scripts de criptografia do Disco do Azure para preparar imagens previamente criptografadas que podem ser usadas no Azure. Depois que a imagem for criada, você poderá usar as etapas na próxima seção para criar uma VM do Azure criptografada.

Importante

É obrigatório tirar um instantâneo e/ou fazer backup de uma instância de VM baseada em disco gerenciado fora do Azure Disk Encryption e antes de habilitá-lo. Um instantâneo do disco gerenciado pode ser obtido do portal ou pode ser usado o Backup do Azure. Backups asseguram que uma opção de recuperação é possível no caso de qualquer falha inesperada durante a criptografia. Depois que um backup é feito, o cmdlet Set-AzVMDiskEncryptionExtension pode ser usado para criptografar discos gerenciados especificando o parâmetro -skipVmBackup. O comando Set-AzVMDiskEncryptionExtension falhará nas VMs baseadas em disco gerenciado até que um backup seja feito e esse parâmetro tenha sido especificado.

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

Usar o Azure PowerShell para criptografar VMs com VHDs previamente criptografados

É possível habilitar a criptografia de disco no VHD criptografado usando o cmdlet do PowerShell Set-AzVMOSDisk. O exemplo abaixo 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 -Linux -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"

Habilitar criptografia em um disco de dados adicionado recentemente

É possível adicionar um novo disco de dados usando az vm disk attach ou por meio do portal do Azure. Antes de poder criptografar, primeiro será necessário montar o disco de dados anexado recentemente. É necessário solicitar a criptografia da unidade de dados, pois a unidade ficará inutilizável enquanto a criptografia estiver em andamento.

Se a VM tiver sido previamente criptografada com "Todos", então o parâmetro --volume-type deverá permanecer como "Todos". Todos inclui o sistema operacional e os discos de dados. Se a VM tiver sido previamente criptografada com um tipo de volume de "SO", então o parâmetro --volume-type deverá ser alterado para "Todos" para que o sistema operacional e o novo disco de dados sejam incluídos. Se a VM foi criptografada apenas com o tipo de volume "Dados", ela poderá permanecer como "Dados", conforme demonstrado abaixo. Adicionar e anexar um novo disco de dados a uma VM não é preparação suficiente para criptografia. O disco anexado recentemente também deve ser formatado e montado adequadamente na VM antes de habilitar a criptografia. No Linux, o disco deve ser montado em /etc/fstab com um nome do dispositivo de bloco persistente.

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.

  • Criptografe volumes de dados de uma VM em execução:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Criptografe volumes de dados de uma VM em execução usando 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 "Data"
    

Desabilitar a criptografia e remover a extensão de criptografia

É possível desabilitar e remover a extensão de criptografia de disco do Azure. São duas operações distintas.

Para remover o ADE, é recomendável primeiro desabilitar a criptografia e, em seguida, remover a extensão. Se remover a extensão de criptografia sem desabilitá-la, os discos ainda serão criptografados. Se desabilitar a criptografia após remover a extensão, a extensão será reinstalada (para executar a operação de descriptografia) e precisará ser removida uma segunda vez.

Aviso

Você não pode desativar a criptografia se o disco do sistema operacional estiver criptografado. (Os discos do sistema operacional são criptografados quando a operação de criptografia original especifica volumeType=ALL ou volumeType=OS.)

A desabilitação da criptografia funciona somente quando os discos de dados são criptografados, mas o disco do sistema operacional não é.

Desabilitar criptografia

É possível desabilitar a criptografia usando o Azure PowerShell, a CLI do Azure ou com um modelo do Resource Manager. Desabilitar a criptografia não remove a extensão (confira Remover a extensão de criptografia).

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

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
    
  • Desabilitar a criptografia com a 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 "data"
    
  • Desabilitar criptografia com um modelo do Resource Manager:

    1. Clique em Implantar no Azure no modelo Desabilitar criptografia de disco na VM do Linux 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 Linux em execução.

Remover a extensão de criptografia

Se desejar descriptografar seus discos e remover a extensão de criptografia, você deve desabilitar a criptografia antes de remover a extensão; consulte desabilitar criptografia.

É possível remover a extensão de criptografia usando o Azure PowerShell ou a CLI do Azure.

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

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

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

Próximas etapas