Exercício – encriptar discos de VM existentes

Concluído

Suponha que você esteja desenvolvendo um aplicativo de gestão financeira para novas startups de negócios. Você quer garantir que todos os dados de seus clientes estejam protegidos. Então, você decidiu implementar o Azure Disk Encryption (ADE) em todos os sistemas operacionais e discos de dados nos servidores que hospedam esse aplicativo. Como parte dos seus requisitos de conformidade, também tem de ser responsável pela gestão das suas próprias chaves de encriptação.

Nesta unidade, você criptografa discos em uma máquina virtual (VM) existente e gerencia as chaves de criptografia usando seu próprio Cofre de Chaves do Azure.

Preparar o ambiente

Você começa implantando uma nova VM do Windows em uma VM do Azure.

Implementar uma VM do Windows

Para criar e implantar uma nova VM do Windows, use a janela do Azure PowerShell à direita.

  1. Defina uma variável do PowerShell para conter a localização selecionada. Use a mesma região que o grupo de recursos.

    $location = (Get-AzResourceGroup -name <rgn>[sandbox Resource Group]</rgn>).location
    

    Gorjeta

    Pode utilizar o botão Copiar para copiar comandos para a área de transferência. Para colar, clique com o botão direito do mouse em uma nova linha no terminal do Cloud Shell e selecione Colar, ou use o atalho de teclado Shift+Insert (⌘+V no macOS).

  2. Em seguida, defina mais algumas variáveis convenientes para capturar o nome da VM e o grupo de recursos. Você está usando o grupo de recursos pré-criado aqui. Normalmente, você criaria um novo grupo de recursos em sua assinatura usando New-AzResourceGroupo .

    $vmName = "fmdata-vm01"
    $rgName = "<rgn>[sandbox Resource Group]</rgn>"
    
  3. Para criar uma nova VM, use New-AzVm:

    New-AzVm `
        -ResourceGroupName $rgName `
        -Name $vmName `
        -Location $location `
        -OpenPorts 3389
    

    Quando o Cloud Shell solicitar, insira um nome de usuário e senha para a VM. Essas informações são usadas como a conta inicial criada para a VM.

    Nota

    Este comando usará alguns padrões porque não fornecemos muitas opções. Especificamente, ele cria uma imagem do Windows 2016 Server com o tamanho definido como Standard_DS1_v2. Lembre-se de que as VMs da camada Básica não oferecem suporte ao ADE se você decidir especificar o tamanho da VM.

  4. Quando a implementação da VM for concluída, capture os detalhes da VM numa variável. Você pode usar essa variável para explorar o que você criou:

    $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
    
  5. Você pode usar o seguinte código para confirmar o disco do sistema operacional conectado à VM:

    $vm.StorageProfile.OSDisk
    
    OsType                  : Windows
    EncryptionSettings      :
    Name                    : fmdata-vm01_OsDisk_1_6bcf8dcd49794aa785bad45221ec4433
    Vhd                     :
    Image                   :
    Caching                 : ReadWrite
    WriteAcceleratorEnabled :
    CreateOption            : FromImage
    DiskSizeGB              : 127
    ManagedDisk             : Microsoft.Azure.Management.Compute.Models.ManagedDiskP
                              arameters
    
  6. Verifique o estado atual de encriptação no disco do SO (e em quaisquer discos de dados).

    Get-AzVmDiskEncryptionStatus  `
        -ResourceGroupName $rgName `
        -VMName $vmName
    

    Observe que os discos não estão criptografados no momento.

    OsVolumeEncrypted          : NotEncrypted
    DataVolumesEncrypted       : NotEncrypted
    OsVolumeEncryptionSettings :
    ProgressMessage            : No Encryption extension or metadata found on the VM
    

Vamos encriptá-los.

Encriptar os discos da VM com o Azure Disk Encryption

Temos de proteger estes dados, por isso, vamos encriptar os discos. Lembre-se de que é preciso realizar vários passos:

  1. Criar um cofre de chaves.

  2. Configure o cofre de chaves para suportar a encriptação de disco.

  3. Informe o Azure para criptografar os discos da VM usando a chave armazenada no cofre de chaves.

Gorjeta

Vamos percorrer as etapas individualmente, mas quando você estiver executando essa tarefa em sua própria assinatura, poderá usar um prático script do PowerShell, que vinculamos na seção Resumo deste módulo.

Criar um cofre de chaves

Para criar um Azure Key Vault, temos de ativar o serviço na nossa subscrição. Só é necessário ativar o serviço uma vez.

Gorjeta

Consoante a sua subscrição, poderá ter de ativar o fornecedor Microsoft.KeyVault com o cmdlet Register-AzResourceProvider. Isso não é necessário na assinatura de área restrita do Azure.

  1. Escolha um nome para o novo cofre de chaves. Deve ser único e pode ter entre 3 e 24 caracteres, composto por números, letras e traços. Tente adicionar alguns números aleatórios ao final, substituindo o seguinte 1234:

    $keyVaultName = "mvmdsk-kv-1234"
    
  2. Crie um Cofre da Chave do Azure com New-AzKeyVault:

    • Certifique-se de colocá-lo no mesmo grupo de recursos e local que sua VM.
    • Habilite o cofre de chaves para uso com criptografia de disco.
    • Especifique um nome exclusivo do cofre de chaves.
    New-AzKeyVault -VaultName $keyVaultName `
        -Location $location `
        -ResourceGroupName $rgName `
        -EnabledForDiskEncryption
    

    Você recebe um aviso desse comando sobre nenhum usuário ter acesso.

    WARNING: Access policy is not set. No user or app have access permission to use this vault. This warning can occur if the vault was created by a service principal. To set access policies, use Set-AzKeyVaultAccessPolicy.
    

    O aviso é bom, porque você está apenas usando o cofre para armazenar as chaves de criptografia para a VM, e os usuários não precisam acessar esses dados.

Encriptar o disco

Você está quase pronto para criptografar os discos. Antes de o fazer, aqui está um aviso sobre a criação de backups.

Importante

Se este fosse um sistema de produção, você precisaria executar um backup dos discos gerenciados, usando o Backup do Azure ou criando um instantâneo. Você pode criar instantâneos no portal do Azure ou por meio da linha de comando. No PowerShell, você usa o New-AzSnapshot cmdlet. Como este é um exercício simples e você está descartando esses dados quando terminar, você vai pular esta etapa.

  1. Para armazenar as informações do cofre de chaves, defina uma variável:

    $keyVault = Get-AzKeyVault `
        -VaultName $keyVaultName `
        -ResourceGroupName $rgName
    
  2. Em seguida, para criptografar os discos da VM, execute o Set-AzVmDiskEncryptionExtension cmdlet"

    • O parâmetro VolumeType permite-lhe especificar os discos a encriptar: [Todos | SO | Dados]. O padrão é Todos. Apenas pode encriptar os discos de dados de algumas distribuições do Linux.
    • Você pode fornecer o SkipVmBackup sinalizador para discos gerenciados se não houver nenhum instantâneo.
    Set-AzVmDiskEncryptionExtension `
        -ResourceGroupName $rgName `
        -VMName $vmName `
        -VolumeType All `
        -DiskEncryptionKeyVaultId $keyVault.ResourceId `
        -DiskEncryptionKeyVaultUrl $keyVault.VaultUri `
        -SkipVmBackup
    
  3. O cmdlet avisa que a VM deve ser colocada offline e que a tarefa pode levar vários minutos para ser concluída. Vá em frente e deixe continuar:

    Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to
    finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
    
  4. Quando a execução do cmdlet terminar, verifique o status da criptografia novamente:

    Get-AzVmDiskEncryptionStatus  -ResourceGroupName $rgName -VMName $vmName
    

    O disco do SO deve agora ser encriptado. Todos os discos de dados anexados que são visíveis para o Windows também são criptografados.

    OsVolumeEncrypted          : Encrypted
    DataVolumesEncrypted       : NoDiskFound
    OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
    ProgressMessage            : Provisioning succeeded
    

Nota

Os novos discos adicionados após a encriptação não serão automaticamente encriptados. Você pode executar novamente o Set-AzVMDiskEncryptionExtension cmdlet para criptografar novos discos. Se você adicionar discos a uma VM que já tenha tido discos criptografados, certifique-se de fornecer um novo número em sequência. Além disso, os discos que não são visíveis para o sistema operacional não serão criptografados. O disco deve ser corretamente particionado, formatado e montado para que a extensão BitLocker o veja.