Compartilhar via


Habilitar o Azure Disk Encryption com o Microsoft Entra ID em VMs do Linux (versão anterior)

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

A nova versão do Azure Disk Encryption elimina a exigência de fornecer um parâmetro de aplicativo Microsoft Entra para habilitar a criptografia de disco de VM. Com a nova versão, não é mais exigido que você forneça as credenciais do Microsoft Entra durante a etapa de habilitação da criptografia. Todas as novas VMs devem ser criptografadas sem os parâmetros do aplicativo Microsoft Entra utilizando a nova versão. Para obter instruções sobre como habilitar a criptografia de disco de VM usando a nova versão, confira Azure Disk Encryption para VMs do Linux. As VMs que já estavam criptografadas com os parâmetros do aplicativo Microsoft Entra ainda têm suporte e devem continuar a ser mantidas com a sintaxe do Microsoft Entra.

É possível habilitar muitos cenários de criptografia de disco, e as etapas podem variar de acordo com o cenário. As seções a seguir abordam os cenários em mais detalhes para VMs de IaaS (infraestrutura como serviço) do Linux. 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:

Antes de criptografar os discos, faça um instantâneo, um backup ou ambos. 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 for feito backup, 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 do Azure.

Aviso

  • Se você já tiver usado anteriormente o Azure Disk Encryption com o aplicativo Microsoft Entra para criptografar essa VM, deverá continuar usando essa opção para criptografar a VM. Você não pode usar o Azure Disk Encryption nessa VM criptografada porque esse cenário não tem suporte, o que significa que ainda não é possível alternar o aplicativo Microsoft Entra para essa VM criptografada.
  • Para garantir que os segredos de criptografia não ultrapassem os limites regionais, o Azure Disk Encryption precisa que o cofre de chaves e as VMs sejam colocados na mesma região. Crie e use um cofre de chaves que esteja na mesma região da VM a ser criptografada.
  • O processo de criptografia de volumes do sistema operacional Linux pode levar algumas horas. É normal que a criptrogafia de volumes do SO Linux demore mais do que a de volumes de dados.
  • Ao criptografar volumes do sistema operacional Linux, a VM deve ser considerada indisponível. É altamente recomendável evitar logons SSH enquanto a criptografia estiver em andamento para que não ocorra o bloqueio de arquivos abertos que precisem ser acessados durante o processo de criptografia. Para verificar o progresso, use o comando Get-AzureRmVmDiskEncryptionStatus ou vm encryption show. Esse processo deve levar algumas horas para um volume do sistema operacional de 30 GB, além de 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 encrypt format all seja usada.
  • Desabilitar criptografia nas VMs do Linux tem suporte apenas para volumes de dados. Não haverá suporte em volumes de dados ou do sistema operacional se o volume de SO tiver sido criptografado.

Habilitar criptografia em uma VM da IaaS do Linux existente ou em execução

Nesse cenário, é possível habilitar a criptografia usando o modelo do Azure Resource Manager, os cmdlets do PowerShell ou os comandos da CLI do Azure.

Importante

É obrigatório tirar um instantâneo ou fazer backup de uma instância de VM baseada em disco gerenciado fora do Azure Disk Encryption e antes de habilitá-lo. Você pode tirar um instantâneo do disco gerenciado no portal do Azure ou usar 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 for feito backup, use o cmdlet Set-AzVMDiskEncryptionExtension para criptografar discos gerenciados especificando o parâmetro -skipVmBackup. Ocorrerá falha no comando Set-AzVMDiskEncryptionExtension em VMs baseadas em disco gerenciado enquanto não for feito backup e esse parâmetro não for especificado.

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

Habilitar criptografia em uma VM Linux existente ou em execução usando a CLI do Azure

É possível habilitar a criptografia de disco no VHD criptografado instalando e usando a ferramenta de linha de comando CLI do Azure 2.0. 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 da IaaS do Linux existentes ou em execução no Azure, use os comandos a seguir da CLI:

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 usando um segredo do cliente:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI/my Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Criptografar uma VM em execução usando KEK para encapsular o segredo do cliente:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI which is the Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --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 completa do identificador: /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 KEK, como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

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

        az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    
  • Desabilitar criptografia: para desabilitar a criptografia, use o comando az vm encryption disable. Desabilitar criptografia somente é permitida em volumes de Dados para VMs do Linux.

        az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type DATA
    

Habilitar criptografia em uma VM do Linux existente ou em execução usando o PowerShell

Use o cmdlet Set-AzVMDiskEncryptionExtension para habilitar a criptografia em uma máquina virtual de IaaS em execução no Azure. Tire um instantâneo ou use o Backup do Azurepara fazer backup da VM antes que os discos sejam criptografados. O parâmetro -skipVmBackup já está especificado nos scripts do PowerShell para criptografar uma VM Linux em execução.

  • Criptografar uma VM em execução usando um segredo de cliente: o script a seguir inicializa as variáveis e executa o cmdlet Set-AzVMDiskEncryptionExtension. O grupo de recursos, a VM, o cofre de chaves, o aplicativo Microsoft Entra e o segredo do cliente já devem ter sido criados como pré-requisitos. Substitua MyVirtualMachineResourceGroup, MyKeyVaultResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID e My-AAD-client-secret pelos seus valores. Modifique o parâmetro -VolumeType para especificar quais discos você está criptografando.

        $VMRGName = 'MyVirtualMachineResourceGroup';
        $KVRGname = 'MyKeyVaultResourceGroup';
        $vmName = 'MySecureVM';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $KeyVaultName = 'MySecureVault';
        $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
        $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
        $KeyVaultResourceId = $KeyVault.ResourceId;
        $sequenceVersion = [Guid]::NewGuid();
    
        Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
    
  • Criptografar uma VM em execução usando KEK para encapsular o segredo do cliente: o Azure Disk Encryption permite que você especifique uma chave existente no cofre de chaves para encapsular segredos de criptografia de disco que foram gerados ao habilitar a criptografia. Quando uma chave de criptografia de chave é especificada, o Azure Disk Encryption usa essa chave para encapsular os segredos de criptografia antes de gravar no cofre de chaves. Modifique o parâmetro -VolumeType para especificar quais discos você está criptografando.

        $KVRGname = 'MyKeyVaultResourceGroup';
        $VMRGName = 'MyVirtualMachineResourceGroup';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $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 -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
    

    Observação

    A sintaxe para o valor do parâmetro disk-encryption-keyvault é a cadeia de caracteres completa do identificador: /subscriptions/[subscription-id-guid]/resourceGroups/[KVresource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name].

    A sintaxe para o valor do parâmetro key-encryption-key é o URI completo para KEK, como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

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

        Get-AzVmDiskEncryptionStatus -ResourceGroupName MyVirtualMachineResourceGroup -VMName MySecureVM
    
  • Desabilitar criptografia de disco: para desabilitar a criptografia, use o cmdlet Disable-Azure​RmVMDisk​Encryption. Desabilitar criptografia somente é permitida em volumes de Dados para VMs do Linux.

        Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM'
    

Habilitar criptografia em uma VM da IaaS do Linux existente ou em execução com um modelo

Você pode habilitar a criptografia de disco em uma VM Linux IaaS existente ou em execução no Azure usando o modelo do Gerenciador de Recursos.

  1. Selecione Implantar no Azure no modelo de início rápido do Azure.

  2. Selecione a assinatura, o grupo de recursos, o local do grupo de recursos, os parâmetros, os termos legais e o contrato. Clique em Criar para habilitar a criptografia na VM de IaaS em execução ou existente.

A tabela a seguir lista os parâmetros do modelo do Resource Manager para VMs existentes ou em execução que utilizam uma ID de cliente do Microsoft Entra:

Parâmetro Descrição
AADClientID ID do cliente do aplicativo do Microsoft Entra que tem permissões para gravar segredos no cofre de chaves.
AADClientSecret Segredo do cliente do aplicativo do Microsoft Entra que tem permissões para gravar segredos em seu cofre de chaves.
keyVaultName Nome do cofre de chaves em que a chave deve ser carregada. É possível obtê-lo, usando o comando da CLI do Azure az keyvault show --name "MySecureVault" --query KVresourceGroup.
keyEncryptionKeyURL URL da chave de criptografia de chave usada para criptografar a chave gerada. Esse parâmetro será opcional caso você selecione nokek na lista suspensa UseExistingKek. Se você selecionar kek na lista suspensa UseExistingKek, insira o valor keyEncryptionKeyURL.
volumeType Tipo de volume em que a operação de criptografia é executada. Os valores válidos são SO ou Todos. (Consulte as distribuições do Linux compatíveis e suas versões para discos de dados e do sistema operacional na seção de pré-requisitos anterior.)
sequenceVersion Versão de sequência da operação de BitLocker. Aumente esse número de versão sempre que uma operação de criptografia de disco for executada na mesma VM.
vmName Nome da VM em que a operação de criptografia deve ser executada.
senha Digite uma frase secreta forte como chave de criptografia de dados.

Usar o recurso EncryptFormatAll para discos de dados em VMs de IaaS do 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 são formatadas (com o sistema de arquivos atual). Em seguida, elas são remontadas de volta onde estavam antes da execução do comando. Caso queira excluir um disco de dados que atende aos critérios, desmonte-o antes de executar o comando.

Depois que esse comando é executado, todas as unidades montadas anteriormente são formatadas. Em seguida, a camada de criptografia é iniciada na parte superior da unidade agora vazia. Quando essa opção estiver selecionada, o disco temporário anexado à VM também será criptografado. Se a unidade efêmera for redefinida, ela será reformatada e criptografada novamente para a VM pela solução Azure Disk Encryption na próxima oportunidade.

Aviso

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

A definição desse parâmetro durante a atualização das configurações de criptografia pode levar a uma reinicialização antes da criptografia real. Nesse caso, é recomendável remover do arquivo fstab o disco que você não quer que seja formatado. Da mesma forma, antes de iniciar a operação de criptografia, você deve adicionar no arquivo fstab a partição que deseja criptografar.

Critérios do EncryptFormatAll

O parâmetro abrange todas as partições e as criptografa desde que atendam a todos estes critérios:

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

Usar o parâmetro EncryptFormatAll com um modelo

Para usar a opção EncryptFormatAll, use qualquer modelo pré-existente do Azure Resource Manager que criptografa uma VM do Linux e altere o campo EncryptionOperation do recurso AzureDiskEncryption.

  1. Como exemplo, use o modelo do Resource Manager para criptografar uma VM da IaaS do Linux em execução.
  2. Selecione Implantar no Azure no modelo de início rápido do Azure.
  3. Altere o campo EncryptionOperation do EnableEncryption para EnableEncryptionFormatAl.
  4. Selecione a assinatura, o grupo de recursos, o local do grupo de recursos, outros parâmetros, termos legais e contrato. Clique em Criar para habilitar a criptografia na VM de IaaS em execução ou existente.

Usar o parâmetro EncryptFormatAll com um cmdlet do PowerShell

Use o cmdlet Set-AzVMDiskEncryptionExtension com o parâmetro EncryptFormatAll.

Criptografar uma VM em execução usando EncryptFormatAll e um segredo do cliente: por exemplo, o script a seguir inicializa as variáveis e executa o cmdlet Set-AzVMDiskEncryptionExtension com o parâmetro EncryptFormatAll. O grupo de recursos, a VM, o cofre de chaves, o aplicativo Microsoft Entra e o segredo do cliente já devem ter sido criados como pré-requisitos. Substitua MyKeyVaultResourceGroup, MyVirtualMachineResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID e My-AAD-client-secret pelos seus valores.

  $KVRGname = 'MyKeyVaultResourceGroup';
  $VMRGName = 'MyVirtualMachineResourceGroup';
  $aadClientID = 'My-AAD-client-ID';
  $aadClientSecret = 'My-AAD-client-secret';
  $KeyVaultName = 'MySecureVault';
  $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
  $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
  $KeyVaultResourceId = $KeyVault.ResourceId;

  Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -EncryptFormatAll

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

É recomendável uma configuração LVM-on-crypt. Para todos os exemplos a seguir, substitua o caminho do dispositivo e os pontos de montagem pelo que é mais adequado para o seu caso de uso. Essa configuração pode ser feita da seguinte maneira:

  • Adicione os discos de dados que irão compor a VM.

  • Formatar, montar e adicionar esses discos ao arquivo fstab.

    1. Formate o disco adicionado recentemente. Usamos symlinks gerados pelo Azure aqui. O uso de symlinks evita problemas relacionados à alteração de nomes de dispositivos. Para obter mais informações, confira Solucionar problemas de nomes de dispositivo.

      mkfs -t ext4 /dev/disk/azure/scsi1/lun0
      
    2. Monte os discos.

      mount /dev/disk/azure/scsi1/lun0 /mnt/mountpoint
      
    3. Adicione ao fstab.

      echo "/dev/disk/azure/scsi1/lun0 /mnt/mountpoint ext4 defaults,nofail 1 2" >> /etc/fstab
      
    4. Execute o cmdlet do PowerShell Set-AzVMDiskEncryptionExtension com -EncryptFormatAll para criptografar esses discos.

       Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl "https://mykeyvault.vault.azure.net/" -EncryptFormatAll
      
    5. Configure a LVM sobre esses novos discos. Observe que as unidades criptografadas serão desbloqueadas após a VM concluir a inicialização. Portanto, a montagem de LVM também deverá ser subsequentemente atrasada.

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

Nesse cenário, você pode habilitar a criptografia usando o modelo do Resource Manager, cmdlets do PowerShell ou comandos da CLI. As seções a seguir explicam detalhadamente o modelo do Gerenciador de Recursos e comandos da CLI.

Use as instruções no apêndice 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 ou fazer backup de uma instância de VM baseada em disco gerenciado fora do Azure Disk Encryption e antes de habilitá-lo. Você pode tirar um instantâneo do disco gerenciado no portal ou usar 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 for feito backup, use o cmdlet Set-AzVMDiskEncryptionExtension para criptografar discos gerenciados especificando o parâmetro -skipVmBackup. Ocorrerá falha no comando Set-AzVMDiskEncryptionExtension em VMs baseadas em disco gerenciado enquanto não for feito backup e esse parâmetro não for especificado.

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

Usar o Azure PowerShell para criptografar VMs da IaaS com VHDs previamente criptografados

É possível habilitar a criptografia de disco no VHD criptografado usando 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/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. Você deve solicitar a criptografia da unidade de dados porque a unidade ficará inutilizável enquanto a criptografia estiver em andamento.

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

Se a VM tiver sido criptografada previamente com "Todos", 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 o tipo de volume "SO", 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 aqui. Adicionar e anexar um novo disco de dados a uma VM não é preparação suficiente para a criptografia. O disco recém-anexado também deve ser formatado e montado corretamente na VM antes que a criptografia seja habilitada. No Linux, o disco deve ser montado em /etc/fstab com um nome de dispositivo de bloco persistente.

Em contraste com a sintaxe do PowerShell, a CLI não exige que você 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 usando um segredo do cliente:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI/my Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Criptografar uma VM em execução usando KEK para encapsular o segredo do cliente:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI which is the Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
    

Habilitar criptografia em um disco adicionado recentemente com Azure PowerShell

Ao usar o PowerShell para criptografar um novo disco para Linux, é preciso especificar uma nova versão da sequência. A versão da sequência deverá ser exclusiva. O script a seguir gera um GUID para a versão da sequência.

  • Criptografar uma VM em execução usando um segredo de cliente: o script a seguir inicializa as variáveis e executa o cmdlet Set-AzVMDiskEncryptionExtension. O grupo de recursos, a VM, o cofre de chaves, o aplicativo Microsoft Entra e o segredo do cliente já devem ter sido criados como pré-requisitos. Substitua MyVirtualMachineResourceGroup, MyKeyVaultResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID e My-AAD-client-secret pelos seus valores. O parâmetro -VolumeType é configurado para discos de dados e não para o disco de SO. Se a VM tiver sido criptografada anteriormente com o tipo de volume "SO" ou "Todos", o parâmetro -VolumeType deverá ser alterado para Todos para que o sistema operacional e o novo disco de dados sejam incluídos.

        $KVRGname = 'MyKeyVaultResourceGroup';
        $VMRGName = 'MyVirtualMachineResourceGroup';
        $vmName = 'MySecureVM';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $KeyVaultName = 'MySecureVault';
        $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
        $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
        $KeyVaultResourceId = $KeyVault.ResourceId;
        $sequenceVersion = [Guid]::NewGuid();
    
        Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion;
    
  • Criptografar uma VM em execução usando KEK para encapsular o segredo do cliente: o Azure Disk Encryption permite que você especifique uma chave existente no cofre de chaves para encapsular segredos de criptografia de disco que foram gerados ao habilitar a criptografia. Quando uma chave de criptografia de chave é especificada, o Azure Disk Encryption usa essa chave para encapsular os segredos de criptografia antes de gravar no cofre de chaves. O parâmetro -VolumeType é configurado para discos de dados e não para o disco de SO. Se a VM tiver sido criptografada anteriormente com o tipo de volume "SO" ou "Todos", o parâmetro -VolumeType deverá ser alterado para Todos para que o sistema operacional e o novo disco de dados sejam incluídos.

        $KVRGname = 'MyKeyVaultResourceGroup';
        $VMRGName = 'MyVirtualMachineResourceGroup';
        $vmName = 'MyExtraSecureVM';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $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 -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion;
    

Observação

A sintaxe para o valor do parâmetro disk-encryption-keyvault é a cadeia de caracteres completa do identificador: /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 KEK, como em: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

Desabilitar criptografia para VMs do Linux

Você pode desabilitar a criptografia usando o Azure PowerShell, a CLI do Azure ou um modelo do Resource Manager.

Importante

Desabilitar criptografia com Azure Disk Encryption em VMs do Linux tem suporte apenas para volumes de dados. Não haverá suporte em volumes de dados ou do sistema operacional se o volume de SO tiver sido criptografado.

  • Desabilitar criptografia de disco com o Azure PowerShell: use o cmdlet Disable-Azure​RmVMDisk​Encryption para desabilitar a criptografia.

        Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM' [--volume-type {ALL, DATA, OS}]
    
  • 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 [ALL, DATA, OS]
    
  • Desabilitar criptografia com um modelo do Resource Manager: use o modelo Desabilitar criptografia em uma VM do Linux em execução para desabilitar a criptografia.

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

Próximas etapas