Gyakorlat – Meglévő virtuálisgép-lemezek titkosítása

Befejeződött

Tegyük fel, hogy pénzügyi felügyeleti alkalmazást fejleszt új üzleti startupok számára. Biztosítani szeretné, hogy az ügyfelek adatai biztonságban legyenek, ezért úgy döntött, hogy implementálja az Azure Disk Encryptiont (ADE) az alkalmazást futtató kiszolgálók összes operációs rendszerére és adatlemezére. A megfelelőségi követelményekből adódóan saját titkosítási kulcskezeléséért is felelősséget kell vállalnia.

Ebben a részben a már létező virtuális gépeken található lemezek titkosítása, valamint a titkosítási kulcsok saját Azure Key Vault-kulcstartóval történő kezelése lesz a feladata.

A környezet előkészítése

Először üzembe kell helyeznie egy új Windows rendszerű virtuális gépet egy Azure-beli virtuális gépen.

Windows rendszerű virtuális gép üzembe helyezése

Új Windows rendszerű virtuális gép létrehozásához és üzembe helyezéséhez használja a jobb oldalon található Azure PowerShell-ablakot.

  1. Definiáljon egy PowerShell-változót a kiválasztott hely tárolásához. Ugyanazt a helyet fogja használni, mint az erőforráscsoport esetében.

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

    Tipp.

    A Másolás gombbal a vágólapra másolhatja a parancsokat. Beillesztéshez kattintson a jobb gombbal egy új sorra a Cloud Shell-terminálban, és válassza a Beillesztés lehetőséget, vagy használja a Shift+Beszúrás billentyűparancsot (⌘+V macOS rendszeren).

  2. A következő lépésben határozzon meg néhány kényelmesen használható változót a virtuális gép nevének és erőforráscsoportjának rögzítéséhez. Vegye figyelembe, hogy itt az előre létrehozott erőforráscsoportot használja. Általában egy új erőforráscsoportot hoz létre az előfizetésben a használatávalNew-AzResourceGroup.

    $vmName = "fmdata-vm01"
    $rgName = "<rgn>[sandbox Resource Group]</rgn>"
    
  3. Új virtuális gép létrehozásához használja a következőt New-AzVm:

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

    Amikor a Cloud Shell kéri, adja meg a virtuális gép felhasználónevét és jelszavát. Ez lesz a virtuális géphez létrehozott kezdeti fiók.

    Megjegyzés:

    Ez a parancs néhány alapértelmezett beállítást fog használni, mert nem adtunk meg sok lehetőséget. Egy Windows 2016 Server- rendszerképet fog létrehozni Standard_DS1_v2 néven. Ne feledje, hogy az alapszintű virtuális gépek nem támogatják az ADE-t, ha a virtuális gép méretének megadása mellett dönt.

  4. Miután a virtuális gép üzembe helyezése befejeződött, rögzítse a virtuális gép adatait egy változóban. Ezzel a változóval megismerheti a létrehozott műveletet:

    $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
    
  5. Az alábbi kóddal megerősítheti a virtuális géphez csatolt operációsrendszer-lemezt:

    $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. Ellenőrizze az operációsrendszer-lemez (és egyéb adatlemezek) aktuális titkosítási állapotát.

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

    Láthatja, hogy a lemezek jelenleg titkosítatlanok.

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

Ezt fogjuk most módosítani.

Virtuálisgép-lemezek titkosítása az Azure Disk Encryptionnel

Ezen adatok védelme fontos, ezért titkosítsuk a lemezeket. Mint bizonyára emlékszik, ehhez több lépés elvégzése szükséges:

  1. Kulcstartó létrehozása.

  2. Állítsa be a kulcstartót a lemeztitkosítás támogatásához.

  3. Tájékoztassa az Azure-t a virtuálisgép-lemezek titkosításáról a kulcstartóban tárolt kulccsal.

Tipp.

Egyenként fogjuk végigvezetni a lépéseket, de ha ezt a feladatot a saját előfizetésében végzi, használhat egy hasznos PowerShell-szkriptet, amelyet a modul Összegzés szakaszában csatoltunk.

Kulcstartó létrehozása

Egy Azure Key Vault-kulcstartó létrehozásához engedélyeznie kell a szolgáltatást az előfizetésben. Ez egy egyszeri követelmény.

Tipp.

Az előfizetéstől függően előfordulhat, hogy engedélyeznie kell a Microsoft.KeyVault szolgáltatót a(z) Register-AzResourceProvider parancsmaggal. Erre az Azure-tesztkörnyezet-előfizetésben nincs szükség.

  1. Válasszon nevet az új kulcstartónak. Egyedinek kell lennie, és 3 és 24 karakter közötti lehet, számokból, betűkből és kötőjelekből áll. Adjon hozzá néhány véletlenszerű számot a végéhez, és cserélje le a következő 1234-et:

    $keyVaultName = "mvmdsk-kv-1234"
    
  2. Azure Key Vault létrehozása a következővel New-AzKeyVault:

    • Győződjön meg arról, hogy ugyanabban az erőforráscsoportban és helyen van, mint a virtuális gép
    • A kulcstartó engedélyezése lemeztitkosításhoz
    • Egyedi kulcstartónév megadása
    New-AzKeyVault -VaultName $keyVaultName `
        -Location $location `
        -ResourceGroupName $rgName `
        -EnabledForDiskEncryption
    

    A parancs figyelmeztetést fog kapni arról, hogy nincs hozzáférése a felhasználóknak.

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

    Ez rendben van, mert csak a tárolót használja a virtuális gép titkosítási kulcsainak tárolására, és a felhasználóknak nem kell hozzáférnie ezekhez az adatokhoz.

A lemez titkosítása

Már majdnem készen áll a lemezek titkosítására. Ez előtt egy figyelmeztetést talál a biztonsági másolatok létrehozásáról.

Fontos

Ha éles rendszerről van szó, biztonsági másolatot kell készítenie a felügyelt lemezekről az Azure Backup használatával vagy egy pillanatkép létrehozásával. Pillanatképeket az Azure Portalon vagy a parancssoron keresztül hozhat létre. A PowerShellben a New-AzSnapshot parancsmagot használná. Mivel ez egy egyszerű gyakorlat, és a művelet befejezése után ezeket az adatokat el fogja végezni, kihagyja ezt a lépést.

  1. A kulcstartó adatainak tárolásához definiáljon egy változót:

    $keyVault = Get-AzKeyVault `
        -VaultName $keyVaultName `
        -ResourceGroupName $rgName
    
  2. Ezután a virtuálisgép-lemezek titkosításához futtassa a Set-AzVmDiskEncryptionExtension parancsmagot"

    • A VolumeType paraméterrel megadhatja, hogy melyik lemezeket szeretné titkosítani: [All | OS | Data] (Mind, Operációs rendszer vagy Adatok). Alapértelmezés szerint az Összes érték lesz. Az adatlemezek titkosítása a Linux csak bizonyos verzióiban érhető el.
    • Ha nincs pillanatkép, megadhatja a SkipVmBackup felügyelt lemezek jelölőjét.
    Set-AzVmDiskEncryptionExtension `
        -ResourceGroupName $rgName `
        -VMName $vmName `
        -VolumeType All `
        -DiskEncryptionKeyVaultId $keyVault.ResourceId `
        -DiskEncryptionKeyVaultUrl $keyVault.VaultUri `
        -SkipVmBackup
    
  3. A parancsmag figyelmeztetni fogja, hogy a virtuális gépet offline módba kell kapcsolni, illetve hogy a feladat több percet is igénybe vehet. Folytassa a következőt:

    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. A parancsmag futtatása után ellenőrizze újra a titkosítás állapotát:

    Get-AzVmDiskEncryptionStatus  -ResourceGroupName $rgName -VMName $vmName
    

    Az operációsrendszer-lemeznek most már titkosítva kell lennie. A Windowson látható csatolt adatlemezek is titkosítva vannak.

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

Megjegyzés:

A titkosítás után hozzáadott új lemezek nem lesznek automatikusan titkosítva. A parancsmag újrafuttatható az Set-AzVMDiskEncryptionExtension új lemezek titkosításához. Ha olyan virtuális géphez ad hozzá lemezeket, amelyeken már titkosított lemezek voltak, mindenképpen adjon meg egy új számot egymás után. Emellett az operációs rendszer számára nem látható lemezek nem lesznek titkosítva. A lemezt megfelelően particionáltnak, formázottnak és csatlakoztatottnak kell lennie a BitLocker-bővítményhez a megtekintéséhez.