Partilhar via


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, deve criar um instantâneo e/ou criar 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 uma cópia de segurança e restaurar VMs encriptadas, veja o artigo Azure Backup.

Restrições

Se você usou anteriormente o Azure Disk Encryption com a ID do Microsoft Entra para criptografar uma máquina virtual, deverá continuar usando essa opção para criptografar sua máquina virtual. Para obter os detalhes, veja Azure Disk Encryption com o Microsoft Entra ID (versão anterior).

Ao encriptar os volumes do SO Linux, a VM deverá ser considerada indisponível. É altamente recomendável evitar logins SSH enquanto a criptografia está em andamento para evitar problemas bloqueando quaisquer arquivos abertos que precisem ser acessados durante o processo de criptografia. Para verificar o progresso, use o cmdlet Get-AzVMDiskEncryptionStatus PowerShell ou o comando vm encryption show CLI. Pode-se esperar que esse processo leve algumas horas para um volume de sistema operacional de 30GB, além de tempo extra para criptografar volumes de dados. O tempo de criptografia do volume de dados é proporcional ao tamanho e à quantidade dos volumes de dados, a menos que a opção criptografar formatar todos seja usada.

A desativação da encriptação nas VMs do Linux só é suportada para os volumes de dados. A desativação da criptografia não é suportada em dados ou volumes do sistema operacional se o volume do sistema operacional estiver criptografado.

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

  • Encriptar VMs de camada básica ou VMs criadas pelo método clássico de criação de VMs.
  • Criptografando VMs da série v6 (Ddsv6, Dldsv6, Edsv6, Dadsv6, Daldsv6, Eadsv6, Dpdsv6, Dpldsv6 ou Epdsv6). Para obter mais informações, consulte as páginas individuais para cada um desses tamanhos de VM listados em Tamanhos para máquinas virtuais no Azure
  • Desativando a criptografia em uma unidade de sistema operacional ou unidade de dados de uma VM Linux quando a unidade de sistema operacional é criptografada.
  • Encriptar a unidade do SO para Conjuntos de Escalas de Máquinas Virtuais Linux.
  • Encriptar imagens personalizadas em VMs do Linux.
  • 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.
  • Discos de SO efémeros.
  • Encriptação de sistemas de ficheiros partilhados/distribuídos como (entre outros): 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 encriptada e utilizar essa imagem ou instantâneo para implementar VMs adicionais.
  • Informação de Falha de Sistema do Kernel (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/2ndmountpoint").
  • Uma VM com uma unidade de dados montada sobre uma pasta do SO.
  • Uma VM na qual um volume lógico raiz (disco de SO) foi expandido com um disco de dados.
  • Redimensionamento do disco do SO.
  • 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.
  • Encriptar VMs em clusters de ativação pós-falha.
  • 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 DENI.

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 seja feito e esse parâmetro seja 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 seja feito e esse parâmetro seja 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. Este exemplo 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 por meio 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.

Aviso

Uma vez que a desencriptação tenha começado, é aconselhável não interferir com o processo.

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