Övning – Kryptera befintliga VM-diskar

Slutförd

Anta att du utvecklar en ekonomihanteringsapp för nystartade företag. Du vill se till att alla dina kunders data skyddas. Därför bestämde du dig för att implementera Azure Disk Encryption (ADE) på alla os- och datadiskar på de servrar som är värdar för den här appen. Enligt dina efterlevnadskrav måste du också ansvara för din egen krypteringsnyckel.

I den här lektionen krypterar du diskar på en befintlig virtuell dator (VM) och hanterar krypteringsnycklarna med ditt eget Azure Key Vault.

Förbereda miljön

Du börjar med att distribuera en ny virtuell Windows-dator på en virtuell Azure-dator.

Distribuera en virtuell Windows-dator

Om du vill skapa och distribuera en ny virtuell Windows-dator använder du Azure PowerShell-fönstret till höger.

  1. Definiera en PowerShell-variabel som ska innehålla den valda platsen. Använd samma region som resursgruppen.

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

    Dricks

    Du kan använda knappen Kopiera till att kopiera kommandon till Urklipp. Om du vill klistra in högerklickar du på en ny rad i Cloud Shell-terminalen och väljer Klistra in eller använder kortkommandot Skift+Insert (⌘+V på macOS).

  2. Definiera sedan några mer praktiska variabler för att fånga namnet på den virtuella datorn och resursgruppen. Du använder den förskapade resursgruppen här. Normalt skapar du en ny resursgrupp i din prenumeration med hjälp av New-AzResourceGroup.

    $vmName = "fmdata-vm01"
    $rgName = "<rgn>[sandbox Resource Group]</rgn>"
    
  3. Om du vill skapa en ny virtuell dator använder du New-AzVm:

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

    När Cloud Shell uppmanar dig anger du ett användarnamn och lösenord för den virtuella datorn. Den här informationen används som det första kontot som skapades för den virtuella datorn.

    Kommentar

    Det här kommandot använder vissa standardvärden eftersom vi inte angav många alternativ. Mer specifikt skapar den en Windows 2016 Server-avbildning med storleken inställd på Standard_DS1_v2. Kom ihåg att de virtuella datorerna på Basic-nivån inte stöder ADE om du bestämmer dig för att ange vm-storleken.

  4. När den virtuella datorn är klar med distributionen registrerar du informationen om den virtuella datorn i en variabel. Du kan använda den här variabeln för att utforska vad du har skapat:

    $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
    
  5. Du kan använda följande kod för att bekräfta os-disken som är ansluten till den virtuella datorn:

    $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. Kontrollera den aktuella statusen för kryptering på OS-disken (och eventuella datadiskar).

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

    Observera att diskarna för närvarande är okrypterade.

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

Vi ändrar på det.

Kryptera VM-diskarna med Azure Disk Encryption

Vi behöver skydda dessa data, så vi krypterar diskarna. Kom ihåg att det finns flera åtgärder som vi behöver utföra:

  1. Skapa ett nyckelvalv.

  2. Konfigurera nyckelvalvet för att stödja diskkryptering.

  3. Informera Azure om att kryptera de virtuella datordiskarna med hjälp av nyckeln som lagras i nyckelvalvet.

Dricks

Vi ska gå igenom stegen individuellt, men när du gör den här uppgiften i din egen prenumeration kan du använda ett praktiskt PowerShell-skript som vi har länkat i den här modulens sammanfattningsavsnitt.

Skapa ett nyckelvalv

För att skapa ett nyckelvalv i Azure Key Vault måste vi aktivera tjänsten i vår prenumeration. Du behöver bara aktivera tjänsten en gång.

Dricks

Beroende på din prenumeration kan du behöva aktivera Microsoft.KeyVault-providern med cmdleten Register-AzResourceProvider. Detta är inte nödvändigt i Azure-sandbox-prenumerationen.

  1. Bestäm ett namn för det nya nyckelvalvet. Den måste vara unik och kan vara mellan 3 och 24 tecken, bestående av siffror, bokstäver och bindestreck. Prova att lägga till några slumpmässiga tal i slutet och ersätt följande 1234:

    $keyVaultName = "mvmdsk-kv-1234"
    
  2. Skapa ett Azure Key Vault med New-AzKeyVault:

    • Se till att du placerar den i samma resursgrupp och plats som den virtuella datorn.
    • Aktivera nyckelvalvet för användning med diskkryptering.
    • Ange ett unikt nyckelvalvnamn.
    New-AzKeyVault -VaultName $keyVaultName `
        -Location $location `
        -ResourceGroupName $rgName `
        -EnabledForDiskEncryption
    

    Du får en varning från det här kommandot om att inga användare har åtkomst.

    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.
    

    Varningen är bra eftersom du bara använder valvet för att lagra krypteringsnycklarna för den virtuella datorn och användarna inte behöver komma åt dessa data.

Kryptera disken

Du är nästan redo att kryptera diskarna. Här är en varning om hur du skapar säkerhetskopior innan du gör det.

Viktigt!

Om det här var ett produktionssystem skulle du behöva utföra en säkerhetskopia av de hanterade diskarna, antingen med hjälp av Azure Backup eller genom att skapa en ögonblicksbild. Du kan skapa ögonblicksbilder i Azure Portal eller via kommandoraden. I PowerShell använder du cmdleten New-AzSnapshot . Eftersom det här är en enkel övning och du gör dig av med dessa data när du är klar hoppar du över det här steget.

  1. Om du vill lagra information om nyckelvalvet definierar du en variabel:

    $keyVault = Get-AzKeyVault `
        -VaultName $keyVaultName `
        -ResourceGroupName $rgName
    
  2. Kör sedan cmdleten Set-AzVmDiskEncryptionExtension för att kryptera de virtuella datordiskarna"

    • Med parametern VolumeType kan du ange vilka diskar som ska krypteras: [Alla | OS | Data]. Standardvärdet är Alla. Du kan endast kryptera datadiskar för vissa distributioner av Linux.
    • Du kan ange SkipVmBackup flaggan för hanterade diskar om det inte finns någon ögonblicksbild.
    Set-AzVmDiskEncryptionExtension `
        -ResourceGroupName $rgName `
        -VMName $vmName `
        -VolumeType All `
        -DiskEncryptionKeyVaultId $keyVault.ResourceId `
        -DiskEncryptionKeyVaultUrl $keyVault.VaultUri `
        -SkipVmBackup
    
  3. Cmdleten varnar dig om att den virtuella datorn måste tas offline och att uppgiften kan ta flera minuter att slutföra. Låt det fortsätta:

    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. När cmdleten är klar kontrollerar du krypteringsstatusen igen:

    Get-AzVmDiskEncryptionStatus  -ResourceGroupName $rgName -VMName $vmName
    

    Os-disken ska nu krypteras. Alla anslutna datadiskar som är synliga för Windows krypteras också.

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

Kommentar

Nya diskar som läggs till efter kryptering krypteras inte automatiskt. Du kan köra cmdleten Set-AzVMDiskEncryptionExtension igen för att kryptera nya diskar. Om du lägger till diskar till en virtuell dator som redan har krypterat diskar måste du ange ett nytt nummer i följd. Dessutom krypteras inte diskar som inte är synliga för operativsystemet. Disken måste vara korrekt partitionerad, formaterad och monterad för BitLocker-tillägget för att kunna se den.