Exercício – encriptar discos de VM existentes
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.
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).
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-AzResourceGroup
o .$vmName = "fmdata-vm01" $rgName = "<rgn>[sandbox Resource Group]</rgn>"
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.
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
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
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:
Criar um cofre de chaves.
Configure o cofre de chaves para suportar a encriptação de disco.
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.
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"
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.
Para armazenar as informações do cofre de chaves, defina uma variável:
$keyVault = Get-AzKeyVault ` -VaultName $keyVaultName ` -ResourceGroupName $rgName
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
- O parâmetro
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
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.