Cenários do Azure Disk Encryption em VMs com Linux

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

O Azure Disk Encryption para máquinas virtuais (VMs) do Linux utiliza a funcionalidade DM-Crypt do Linux para proporcionar encriptação completa do disco do SO e dos discos de dados. Além disso, proporciona encriptação do disco temporário ao utilizar a funcionalidade EncryptFormatAll.

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

Pré-requisitos

Só pode aplicar a encriptação de discos a máquinas virtuais de tamanhos e sistemas operativos de VM suportados. Também deve cumprir os 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 se ocorrer uma falha inesperada durante a criptografia. 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 fazer backup e restaurar VMs criptografadas, consulte o artigo Backup do Azure.

Restrições

Se você já usou o Azure Disk Encryption com a ID do Microsoft Entra para criptografar uma VM, você deve continuar usando essa opção para criptografar sua VM. Consulte Azure Disk Encryption with Microsoft Entra ID (versão anterior) para obter detalhes.

Ao encriptar os volumes do SO Linux, a VM deverá ser considerada indisponível. Recomendamos vivamente evitar inícios de sessão SSH enquanto a encriptação está a decorrer para evitar problemas que bloqueiem ficheiros abertos que precisem de ser acedidos durante o processo de encriptação. Para verificar o progresso, use o cmdlet Get-AzVMDiskEncryptionStatus PowerShell ou o comando vm encryption show CLI. Este processo deve demorar algumas horas para um volume de SO de 30 GB, mais tempo adicional para encriptar os volumes de dados. O tempo de encriptação do volume de dados será proporcional ao tamanho e quantidade de volumes de dados, a menos que a opção Encriptar todo o formato seja utilizada.

A desativação da encriptação nas VMs do Linux só é suportada para os volumes de dados. Não será suportada em volumes de dados ou de SO se o volume de SO tiver sido encriptado.

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

  • Criptografando VMs de camada básica ou VMs criadas por meio do método clássico de criação de VM.
  • Desativando a criptografia em uma unidade de sistema operacional ou unidade de dados de uma VM Linux quando a unidade de sistema operacional é criptografada.
  • Criptografando a unidade do sistema operacional para conjuntos de escala de máquina virtual Linux.
  • Criptografando imagens personalizadas em VMs Linux.
  • Integração com um sistema de gestão de chaves no local.
  • Arquivos do Azure (sistema de arquivos compartilhado).
  • Sistema de arquivos de rede (NFS).
  • Volumes dinâmicos.
  • Discos efêmeros do sistema operacional.
  • 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 VMs adicionais.
  • Kernel Crash Dump (kdump).
  • Oracle ACFS (Sistema de Arquivos de Cluster 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 único caminho (como "/1stmountpoint/data/2stmountpoint").
  • Uma VM com uma unidade de dados montada sobre uma pasta do sistema operacional.
  • Uma VM na qual um volume lógico raiz (disco do sistema operacional) foi estendido usando um disco de dados.
  • VMs da série M com discos Write Accelerator.
  • Aplicação do ADE a uma VM que tenha discos criptografados com criptografia no 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.
  • Migração de uma VM criptografada com ADE, ou que já foi criptografada com ADE, para Criptografia no Host ou criptografia do lado do servidor com chaves gerenciadas pelo cliente.
  • Criptografando VMs em clusters de failover.
  • Criptografia de discos ultra do Azure.
  • Encriptação de discos SSD Premium v2.
  • A criptografia de VMs em assinaturas que têm os Segredos deve ter a política de período de validade máxima especificada 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 conectar-se à sua assinatura 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 entrar na sua conta do Azure com a CLI do Azure, use o comando az login .

az login

Se pretender selecionar um inquilino para iniciar sessão, utilize:

az login --tenant <tenant>

Se você tiver várias assinaturas e quiser especificar uma específica, obtenha sua lista de assinaturas com a lista de contas az e especifique com o conjunto de contas az.

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

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

Habilitar a criptografia em uma VM Linux 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 você precisar de informações de esquema para a extensão de máquina virtual, consulte o artigo da extensão Azure Disk Encryption for Linux.

Importante

É obrigatório criar instantâneos e/ou fazer backup de uma instância de VM baseada em disco gerenciado fora e antes de habilitar a Criptografia de Disco do Azure. Um instantâneo do disco gerenciado pode ser obtido no portal ou por meio do Backup do Azure. Os backups garantem que uma opção de recuperação seja 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á em VMs baseadas em disco gerenciado até que um backup tenha sido feito e esse parâmetro tenha sido especificado.

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

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

Você pode habilitar a criptografia de disco em seu VHD criptografado instalando e usando a ferramenta de linha de comando da CLI do Azure. Pode utilizá-lo no seu browser com o Azure Cloud Shell ou pode instalá-lo no seu computador local e utilizá-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]
    
  • Criptografe uma VM em execução usando o 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 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, 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 recurso EncryptFormatAll para discos de dados em VMs Linux

O parâmetro EncryptFormatAll reduz o tempo para os discos de dados Linux serem criptografados. As partições que atendem a certos critérios serão formatadas, juntamente com seus sistemas de arquivos atuais e, em seguida, remontadas de volta para onde estavam antes da execução do comando. Se desejar excluir um disco de dados que atenda aos critérios, você poderá desmontá-lo antes de executar o comando.

Depois de executar este 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 conectado à VM também será criptografado. Se o disco temporário for redefinido, ele será reformatado e recriptografado para a VM pela solução de Criptografia de Disco do Azure na próxima oportunidade. Depois que o disco de recursos for 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

EncryptFormatAll não deve ser usado quando há dados necessários nos volumes de dados de uma VM. Você pode excluir discos da criptografia desmontando-os. Você deve primeiro experimentar o EncryptFormatAll primeiro em uma VM de teste, entender o parâmetro de recurso e sua implicação antes de experimentá-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 continuar, verifique se os discos que você deseja excluir estão desmontados corretamente.

Se você estiver definindo esse parâmetro ao atualizar as configurações de criptografia, isso pode levar a uma reinicialização antes da criptografia real. Nesse caso, você também desejará remover o disco que não deseja formatar do arquivo fstab. Da mesma forma, deve adicionar a partição que pretende encriptar formatada ao ficheiro fstab antes de iniciar a operação de encriptação.

EncryptFormatTodos os critérios

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 root/OS/boot
  • Ainda não está encriptado
  • Não é um volume BEK
  • Não é um volume RAID
  • Não é um volume LVM
  • É 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
    

Use o parâmetro EncryptFormatAll com o LVM (Logical Volume Manager)

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

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

Nesse cenário, você pode habilitar a criptografia usando cmdlets do PowerShell ou comandos da CLI.

Use as instruções nos mesmos scripts de criptografia de disco do Azure para preparar imagens pré-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 criar instantâneos e/ou fazer backup de uma instância de VM baseada em disco gerenciado fora e antes de habilitar a Criptografia de Disco do Azure. Um instantâneo do disco gerenciado pode ser tirado do portal ou o Backup do Azure pode ser usado. Os backups garantem que uma opção de recuperação seja 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á em VMs baseadas em disco gerenciado até que um backup tenha sido feito e esse parâmetro tenha sido especificado.

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

Usar o Azure PowerShell para criptografar VMs com VHDs pré-criptografados

Você pode habilitar a criptografia de disco em seu 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 a criptografia em um disco de dados recém-adicionado

Você pode adicionar um novo disco de dados usando az vm disk attach ou através do portal do Azure. Antes de poder criptografar, você precisa montar o disco de dados recém-conectado primeiro. Você deve solicitar a criptografia da unidade de dados, pois a unidade ficará inutilizável enquanto a criptografia estiver em andamento.

Se a VM foi previamente criptografada com "All", o parâmetro --volume-type deve permanecer "All". Tudo inclui SO e discos de dados. Se a VM foi previamente criptografada com um tipo de volume de "OS", então o parâmetro --volume-type deve ser alterado para "All" para que tanto o SO quanto o novo disco de dados sejam incluídos. Se a VM foi criptografada apenas com o tipo de volume de "Dados", ela pode permanecer "Dados", conforme demonstrado abaixo. Adicionar e anexar um novo disco de dados a uma VM não é preparação suficiente para criptografia. O disco recém-conectado também deve ser formatado e montado corretamente na VM antes de habilitar a criptografia. No Linux, o disco deve ser montado em /etc/fstab com um nome de dispositivo de bloco persistente.

Ao contrário da 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 seu 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 o 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"
    

Desative a criptografia e remova a extensão de criptografia

Você pode desabilitar a extensão de criptografia de disco do Azure e remover a extensão de criptografia de disco do Azure. Trata-se de duas operações distintas.

Para remover o ADE, é recomendável que você primeiro desative a criptografia e, em seguida, remova a extensão. Se remover a extensão de encriptação sem a desativar, os discos continuarão encriptados. Se desativar a encriptação depois de remover a extensão, a extensão será reinstalada (para executar a operação de desencriptação) e terá de ser removida uma segunda vez.

Aviso

Não é possível desativar a encriptação se o disco do SO estiver encriptado. (Os discos do SO são encriptados quando a operação de encriptação original especifica volumeType=ALL ou volumeType=OS.)

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

Desativar encriptação

Você pode desabilitar a criptografia usando o Azure PowerShell, a CLI do Azure ou com um modelo do Gerenciador de Recursos. A desativação da encriptação não remove a extensão (consulte Remover a extensão de encriptação).

  • 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"
    
  • Desative a criptografia com um modelo do Gerenciador de Recursos:

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

Remover a extensão de encriptação

Se quiser desencriptar os seus discos e remover a extensão de encriptação, deve desativar a encriptação antes de remover a extensão, consulte desativar a encriptação.

Você pode 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 a 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óximos passos