Włączanie usługi Azure Disk Encryption przy użyciu identyfikatora Entra firmy Microsoft na maszynach wirtualnych z systemem Linux (poprzednia wersja)

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Nowa wersja usługi Azure Disk Encryption eliminuje wymaganie podania parametru aplikacji Microsoft Entra w celu włączenia szyfrowania dysków maszyny wirtualnej. W nowej wersji nie musisz już podawać poświadczeń firmy Microsoft Entra podczas kroku włączania szyfrowania. Wszystkie nowe maszyny wirtualne muszą być szyfrowane bez parametrów aplikacji Microsoft Entra przy użyciu nowej wersji. Aby uzyskać instrukcje dotyczące włączania szyfrowania dysków maszyny wirtualnej przy użyciu nowej wersji, zobacz Usługa Azure Disk Encryption dla maszyn wirtualnych z systemem Linux. Maszyny wirtualne, które zostały już zaszyfrowane za pomocą parametrów aplikacji Microsoft Entra, są nadal obsługiwane i powinny być nadal utrzymywane przy użyciu składni Microsoft Entra.

Możesz włączyć wiele scenariuszy szyfrowania dysków, a kroki mogą się różnić w zależności od scenariusza. W poniższych sekcjach opisano scenariusze bardziej szczegółowo dotyczące maszyn wirtualnych infrastruktury jako usługi (IaaS) systemu Linux. Szyfrowanie dysków można stosować tylko do maszyn wirtualnych z obsługiwanymi rozmiarami maszyn wirtualnych i systemami operacyjnymi. Należy również spełnić następujące wymagania wstępne:

Utwórz migawkę, utwórz kopię zapasową lub obie te elementy przed zaszyfrowanie dysków. Kopie zapasowe zapewniają, że opcja odzyskiwania jest możliwa w przypadku wystąpienia nieoczekiwanego błędu podczas szyfrowania. Maszyny wirtualne z dyskami zarządzanymi wymagają utworzenia kopii zapasowej przed przeprowadzeniem szyfrowania. Po utworzeniu kopii zapasowej można użyć polecenia cmdlet Set-AzVMDiskEncryptionExtension do szyfrowania dysków zarządzanych, określając parametr -skipVmBackup. Aby uzyskać więcej informacji na temat tworzenia kopii zapasowych i przywracania zaszyfrowanych maszyn wirtualnych, zobacz Azure Backup.

Ostrzeżenie

  • Jeśli wcześniej użyto usługi Azure Disk Encryption z aplikacją Microsoft Entra do szyfrowania tej maszyny wirtualnej, musisz nadal używać tej opcji do szyfrowania maszyny wirtualnej. Nie można użyć usługi Azure Disk Encryption na tej zaszyfrowanej maszynie wirtualnej, ponieważ nie jest to obsługiwany scenariusz, co oznacza wyłączenie aplikacji Microsoft Entra dla tej zaszyfrowanej maszyny wirtualnej nie jest jeszcze obsługiwane.
  • Aby upewnić się, że wpisy tajne szyfrowania nie przekraczają granic regionalnych, usługa Azure Disk Encryption wymaga magazynu kluczy i maszyn wirtualnych, które będą współlokować w tym samym regionie. Utwórz i użyj magazynu kluczy, który znajduje się w tym samym regionie co maszyna wirtualna do szyfrowania.
  • Podczas szyfrowania woluminów systemu operacyjnego Linux proces może potrwać kilka godzin. Woluminy systemu operacyjnego Linux mogą trwać dłużej niż woluminy danych do szyfrowania.
  • Podczas szyfrowania woluminów systemu operacyjnego Linux maszyna wirtualna powinna być uważana za niedostępną. Zdecydowanie zalecamy unikanie logowań SSH podczas szyfrowania w toku, aby uniknąć blokowania otwartych plików, do których należy uzyskać dostęp podczas procesu szyfrowania. Aby sprawdzić postęp, użyj poleceń Get-AzVMDiskEncryptionStatus lub vm encryption show . Ten proces może potrwać kilka godzin przez wolumin systemu operacyjnego 30 GB oraz dodatkowy czas szyfrowania woluminów danych. Czas szyfrowania woluminu danych jest proporcjonalny do rozmiaru i ilości woluminów danych, chyba że zostanie użyta opcja szyfrowania wszystkich formatów.
  • Wyłączanie szyfrowania na maszynach wirtualnych z systemem Linux jest obsługiwane tylko w przypadku woluminów danych. Nie jest obsługiwana na danych lub woluminach systemu operacyjnego, jeśli wolumin systemu operacyjnego został zaszyfrowany.

Włączanie szyfrowania na istniejącej lub uruchomionej maszynie wirtualnej Z systemem Linux IaaS

W tym scenariuszu można włączyć szyfrowanie przy użyciu szablonu usługi Azure Resource Manager, poleceń cmdlet programu PowerShell lub poleceń interfejsu wiersza polecenia platformy Azure.

Ważne

Przed włączeniem usługi Azure Disk Encryption wymagane jest utworzenie migawki lub utworzenie kopii zapasowej wystąpienia maszyny wirtualnej opartej na dysku zarządzanym poza usługą Azure Disk Encryption. Możesz utworzyć migawkę dysku zarządzanego z witryny Azure Portal lub użyć usługi Azure Backup. Kopie zapasowe zapewniają, że opcja odzyskiwania jest możliwa w przypadku nieoczekiwanego błędu podczas szyfrowania. Po utworzeniu kopii zapasowej użyj polecenia cmdlet Set-AzVMDiskEncryptionExtension, aby zaszyfrować dyski zarządzane, określając parametr -skipVmBackup. Polecenie Set-AzVMDiskEncryptionExtension kończy się niepowodzeniem względem zarządzanych maszyn wirtualnych opartych na dyskach do momentu utworzenia kopii zapasowej i określono ten parametr.

Szyfrowanie lub wyłączanie szyfrowania może spowodować ponowne uruchomienie maszyny wirtualnej.

Włączanie szyfrowania na istniejącej lub uruchomionej maszynie wirtualnej z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure

Szyfrowanie dysków na zaszyfrowanym dysku VHD można włączyć, instalując narzędzie wiersza polecenia platformy Azure 2.0 i używając go. Można go również używać w przeglądarce z usługą Azure Cloud Shell albo można go zainstalować na maszynie lokalnej i używać w dowolnej sesji programu PowerShell. Aby włączyć szyfrowanie istniejących lub uruchomionych maszyn wirtualnych IaaS z systemem Linux na platformie Azure, użyj następujących poleceń interfejsu wiersza polecenia:

Użyj polecenia az vm encryption enable, aby włączyć szyfrowanie na uruchomionej maszynie wirtualnej IaaS na platformie Azure.

  • Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza tajnego klienta:

        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]
    
  • Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza KEK, aby opakowować klucz tajny klienta:

        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]
    

    Uwaga

    Składnia wartości parametru disk-encryption-keyvault jest pełnym ciągiem identyfikatora: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name].

    Składnia wartości parametru key-encryption-key jest pełnym identyfikatorem URI klucza, jak w artykule: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

  • Sprawdź, czy dyski są szyfrowane: aby sprawdzić stan szyfrowania maszyny wirtualnej IaaS, użyj polecenia az vm encryption show .

        az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    
  • Wyłącz szyfrowanie: aby wyłączyć szyfrowanie, użyj polecenia az vm encryption disable . Wyłączenie szyfrowania jest dozwolone tylko na woluminach danych dla maszyn wirtualnych z systemem Linux.

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

Włączanie szyfrowania na istniejącej lub uruchomionej maszynie wirtualnej z systemem Linux przy użyciu programu PowerShell

Użyj polecenia cmdlet Set-AzVMDiskEncryptionExtension, aby włączyć szyfrowanie na uruchomionej maszynie wirtualnej IaaS na platformie Azure. Utwórz migawkę lub utwórz kopię zapasową maszyny wirtualnej za pomocą usługi Azure Backup przed zaszyfrowanie dysków. Parametr -skipVmBackup jest już określony w skryptach programu PowerShell w celu zaszyfrowania uruchomionej maszyny wirtualnej z systemem Linux.

  • Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza tajnego klienta: następujący skrypt inicjuje zmienne i uruchamia polecenie cmdlet Set-AzVMDiskEncryptionExtension. Grupa zasobów, maszyna wirtualna, magazyn kluczy, aplikacja Microsoft Entra i wpis tajny klienta powinny już zostać utworzone jako wymagania wstępne. Zastąp wartości MyVirtualMachineResourceGroup, MyKeyVaultResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID i My-AAD-client-secret. Zmodyfikuj parametr -VolumeType, aby określić dyski, które szyfrujesz.

        $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;
    
  • Szyfrowanie uruchomionej maszyny wirtualnej przy użyciu klucza KEK w celu opakowania klucza tajnego klienta: usługa Azure Disk Encryption umożliwia określenie istniejącego klucza w magazynie kluczy w celu opakowania wpisów tajnych szyfrowania dysków, które zostały wygenerowane podczas włączania szyfrowania. Po określeniu klucza szyfrowania klucza usługa Azure Disk Encryption używa tego klucza do opakowania wpisów tajnych szyfrowania przed zapisaniem w magazynie kluczy. Zmodyfikuj parametr -VolumeType, aby określić dyski, które szyfrujesz.

        $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;
    

    Uwaga

    Składnia wartości parametru disk-encryption-keyvault jest pełnym ciągiem identyfikatora: /subscriptions/[subscription-id-guid]/resourceGroups/[KVresource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name].

    Składnia wartości parametru key-encryption-key jest pełnym identyfikatorem URI klucza, jak w artykule: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

  • Sprawdź, czy dyski są szyfrowane: aby sprawdzić stan szyfrowania maszyny wirtualnej IaaS, użyj polecenia cmdlet Get-AzVmDiskEncryptionStatus .

        Get-AzVmDiskEncryptionStatus -ResourceGroupName MyVirtualMachineResourceGroup -VMName MySecureVM
    
  • Wyłącz szyfrowanie dysków: aby wyłączyć szyfrowanie, użyj polecenia cmdlet Disable-AzureRmVMDiskEncryption . Wyłączenie szyfrowania jest dozwolone tylko na woluminach danych dla maszyn wirtualnych z systemem Linux.

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

Włączanie szyfrowania na istniejącej lub uruchomionej maszynie wirtualnej Z systemem Linux IaaS przy użyciu szablonu

Szyfrowanie dysków można włączyć na istniejącej lub uruchomionej maszynie wirtualnej Z systemem Linux IaaS na platformie Azure przy użyciu szablonu usługi Resource Manager.

  1. Wybierz pozycję Wdróż na platformie Azure w szablonie Szybkiego startu platformy Azure.

  2. Wybierz subskrypcję, grupę zasobów, lokalizację grupy zasobów, parametry, postanowienia prawne i umowę. Wybierz pozycję Utwórz , aby włączyć szyfrowanie na istniejącej lub uruchomionej maszynie wirtualnej IaaS.

W poniższej tabeli wymieniono parametry szablonu usługi Resource Manager dla istniejących lub uruchomionych maszyn wirtualnych korzystających z identyfikatora klienta Firmy Microsoft Entra:

Parametr Opis
AADClientID Identyfikator klienta aplikacji Microsoft Entra, która ma uprawnienia do zapisywania wpisów tajnych w magazynie kluczy.
AADClientSecret Wpis tajny klienta aplikacji Microsoft Entra z uprawnieniami do zapisywania wpisów tajnych w magazynie kluczy.
keyVaultName Nazwa magazynu kluczy, do którego należy przekazać klucz. Możesz go pobrać za pomocą polecenia interfejsu wiersza polecenia az keyvault show --name "MySecureVault" --query KVresourceGroupplatformy Azure .
keyEncryptionKeyURL Adres URL klucza szyfrowania klucza, który jest używany do szyfrowania wygenerowanego klucza. Ten parametr jest opcjonalny, jeśli wybierzesz nokek na liście rozwijanej UseExistingKek . Jeśli wybierzesz kek na liście rozwijanej UseExistingKek , musisz wprowadzić wartość keyEncryptionKeyURL .
volumeType Typ woluminu wykonywanego przez operację szyfrowania. Prawidłowe obsługiwane wartości to system operacyjny lub wszystkie. (Zobacz obsługiwane dystrybucje systemu Linux i ich wersje dla dysków systemu operacyjnego i danych we wcześniejszej sekcji wymagań wstępnych).
sequenceVersion Sekwencja wersji operacji funkcji BitLocker. Zwiększ ten numer wersji za każdym razem, gdy na tej samej maszynie wirtualnej jest wykonywana operacja szyfrowania dysków.
vmName Nazwa maszyny wirtualnej, na którą ma być wykonywana operacja szyfrowania.
hasło Wpisz silne hasło jako klucz szyfrowania danych.

Używanie funkcji EncryptFormatAll dla dysków danych na maszynach wirtualnych IaaS z systemem Linux

Parametr EncryptFormatAll skraca czas szyfrowania dysków danych systemu Linux. Partycje spełniające określone kryteria są sformatowane (z bieżącym systemem plików). Następnie są one instalowane z powrotem do miejsca, w którym były przed wykonaniem polecenia. Jeśli chcesz wykluczyć dysk danych spełniający kryteria, możesz go odinstalować przed uruchomieniem polecenia.

Po uruchomieniu tego polecenia wszystkie zainstalowane wcześniej dyski są sformatowane. Następnie warstwa szyfrowania zaczyna się od teraz pustego dysku. Po wybraniu tej opcji dysk tymczasowy dołączony do maszyny wirtualnej jest również szyfrowany. Jeśli dysk efemeryczny zostanie zresetowany, zostanie ponownie sformatowany i zaszyfrowany dla maszyny wirtualnej przez rozwiązanie Azure Disk Encryption przy następnej okazji.

Ostrzeżenie

Funkcja EncryptFormatAll nie powinna być używana, gdy potrzebne są dane na woluminach danych maszyny wirtualnej. Dyski można wykluczyć z szyfrowania, odinstalując je. Wypróbuj parametr EncryptFormatAll na testowej maszynie wirtualnej, aby najpierw zrozumieć parametr funkcji i jego implikację przed wypróbowaniem go na produkcyjnej maszynie wirtualnej. Opcja EncryptFormatAll formatuje dysk danych, więc wszystkie dane na nim zostaną utracone. Przed kontynuowaniem sprawdź, czy wszystkie dyski, które chcesz wykluczyć, są prawidłowo niezainstalowane.

Jeśli ustawisz ten parametr podczas aktualizowania ustawień szyfrowania, może to prowadzić do ponownego uruchomienia przed rzeczywistym szyfrowaniem. W takim przypadku chcesz również usunąć dysk, którego nie chcesz sformatować z pliku fstab. Podobnie przed rozpoczęciem operacji szyfrowania należy dodać partycję, którą chcesz sformatować w pliku fstab.

Kryteria EncryptFormatAll

Parametr przechodzi przez wszystkie partycje i szyfruje je tak długo, jak spełniają wszystkie następujące kryteria:

  • Nie jest partycją root/OS/boot
  • Nie jest jeszcze zaszyfrowany
  • Nie jest woluminem BEK
  • Nie jest woluminem RAID
  • Nie jest woluminem LVM
  • Jest zainstalowany

Szyfruj dyski tworzące wolumin RAID lub LVM, a nie wolumin RAID lub LVM.

Używanie parametru EncryptFormatAll z szablonem

Aby użyć opcji EncryptFormatAll, użyj dowolnego istniejącego szablonu usługi Azure Resource Manager, który szyfruje maszynę wirtualną z systemem Linux i zmień pole EncryptionOperation dla zasobu AzureDiskEncryption.

  1. Na przykład użyj szablonu usługi Resource Manager, aby zaszyfrować działającą maszynę wirtualną IaaS z systemem Linux.
  2. Wybierz pozycję Wdróż na platformie Azure w szablonie Szybkiego startu platformy Azure.
  3. Zmień pole EncryptionOperation z EnableEncryption na EnableEncryptionFormatAl.
  4. Wybierz subskrypcję, grupę zasobów, lokalizację grupy zasobów, inne parametry, postanowienia prawne i umowę. Wybierz pozycję Utwórz , aby włączyć szyfrowanie na istniejącej lub uruchomionej maszynie wirtualnej IaaS.

Używanie parametru EncryptFormatAll z poleceniem cmdlet programu PowerShell

Użyj polecenia cmdlet Set-AzVMDiskEncryptionExtension z parametrem EncryptFormatAll.

Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza tajnego klienta i elementu EncryptFormatAll: na przykład poniższy skrypt inicjuje zmienne i uruchamia polecenie cmdlet Set-AzVMDiskEncryptionExtension za pomocą parametru EncryptFormatAll. Grupa zasobów, maszyna wirtualna, magazyn kluczy, aplikacja Microsoft Entra i wpis tajny klienta powinny już zostać utworzone jako wymagania wstępne. Zastąp wartości MyKeyVaultResourceGroup, MyVirtualMachineResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID i My-AAD-client-secret.

  $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

Używanie parametru EncryptFormatAll z menedżerem woluminów logicznych (LVM)

Zalecamy konfigurację szyfrowania LVM-on-crypt. We wszystkich poniższych przykładach zastąp ścieżkę urządzenia i punkty instalacji wszystkimi elementami odpowiadającymi Twoim przypadkom użycia. Tę konfigurację można wykonać w następujący sposób:

  • Dodaj dyski danych, które będą tworzyć maszynę wirtualną.

  • Sformatuj, zainstaluj i dodaj te dyski do pliku fstab.

    1. Sformatuj nowo dodany dysk. W tym miejscu używamy linków syymlinków generowanych przez platformę Azure. Używanie linków syymlinków pozwala uniknąć problemów związanych ze zmianą nazw urządzeń. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z nazwami urządzeń.

      mkfs -t ext4 /dev/disk/azure/scsi1/lun0
      
    2. Zainstaluj dyski.

      mount /dev/disk/azure/scsi1/lun0 /mnt/mountpoint
      
    3. Dodaj do pliku fstab.

      echo "/dev/disk/azure/scsi1/lun0 /mnt/mountpoint ext4 defaults,nofail 1 2" >> /etc/fstab
      
    4. Uruchom polecenie cmdlet programu PowerShell Set-AzVMDiskEncryptionExtension z parametrem -EncryptFormatAll, aby zaszyfrować te dyski.

       Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl "https://mykeyvault.vault.azure.net/" -EncryptFormatAll
      
    5. Skonfiguruj maszynę LVM na tych nowych dyskach. Pamiętaj, że zaszyfrowane dyski są odblokowywane po zakończeniu rozruchu maszyny wirtualnej. Tak więc montaż LVM będzie również musiał zostać opóźniony.

Nowe maszyny wirtualne IaaS utworzone na podstawie zaszyfrowanego przez klienta wirtualnego dysku twardego i kluczy szyfrowania

W tym scenariuszu można włączyć szyfrowanie przy użyciu szablonu usługi Resource Manager, poleceń cmdlet programu PowerShell lub poleceń interfejsu wiersza polecenia. W poniższych sekcjach opisano bardziej szczegółowo polecenia szablonu usługi Resource Manager i interfejsu wiersza polecenia.

Skorzystaj z instrukcji w dodatku do przygotowywania wstępnie zaszyfrowanych obrazów, które mogą być używane na platformie Azure. Po utworzeniu obrazu możesz użyć kroków w następnej sekcji, aby utworzyć zaszyfrowaną maszynę wirtualną platformy Azure.

Ważne

Przed włączeniem usługi Azure Disk Encryption wymagane jest utworzenie migawki lub utworzenie kopii zapasowej wystąpienia maszyny wirtualnej opartej na dysku zarządzanym poza usługą Azure Disk Encryption. Możesz utworzyć migawkę dysku zarządzanego z portalu lub użyć usługi Azure Backup. Kopie zapasowe zapewniają, że opcja odzyskiwania jest możliwa w przypadku nieoczekiwanego błędu podczas szyfrowania. Po utworzeniu kopii zapasowej użyj polecenia cmdlet Set-AzVMDiskEncryptionExtension, aby zaszyfrować dyski zarządzane, określając parametr -skipVmBackup. Polecenie Set-AzVMDiskEncryptionExtension kończy się niepowodzeniem względem zarządzanych maszyn wirtualnych opartych na dyskach do momentu utworzenia kopii zapasowej i określono ten parametr.

Szyfrowanie lub wyłączanie szyfrowania może spowodować ponowne uruchomienie maszyny wirtualnej.

Używanie programu Azure PowerShell do szyfrowania maszyn wirtualnych IaaS przy użyciu wstępnie zaszyfrowanych dysków VHD

Szyfrowanie dysków na zaszyfrowanym dysku VHD można włączyć przy użyciu polecenia cmdlet programu PowerShell Set-AzVMOSDisk. W poniższym przykładzie przedstawiono kilka typowych parametrów.

$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"

Włączanie szyfrowania na nowo dodanym dysku danych

Nowy dysk danych można dodać za pomocą polecenia az vm disk attach lub za pośrednictwem witryny Azure Portal. Przed rozpoczęciem szyfrowania należy najpierw zainstalować nowo dołączony dysk danych. Musisz zażądać szyfrowania dysku danych, ponieważ dysk będzie bezużyteczny, gdy szyfrowanie jest w toku.

Włączanie szyfrowania na nowo dodanym dysku przy użyciu interfejsu wiersza polecenia platformy Azure

Jeśli maszyna wirtualna została wcześniej zaszyfrowana za pomocą parametru "Wszystkie", parametr --volume-type powinien pozostać wszystkie. Wszystkie obejmują zarówno system operacyjny, jak i dyski danych. Jeśli maszyna wirtualna została wcześniej zaszyfrowana przy użyciu typu woluminu "system operacyjny", parametr --volume-type powinien zostać zmieniony na Wszystkie, aby uwzględnić zarówno system operacyjny, jak i nowy dysk danych. Jeśli maszyna wirtualna została zaszyfrowana tylko przy użyciu typu woluminu "Dane", może pozostać danymi, jak pokazano tutaj. Dodawanie i dołączanie nowego dysku danych do maszyny wirtualnej nie jest wystarczające do przygotowania do szyfrowania. Przed włączeniem szyfrowania należy również sformatować i poprawnie zainstalowany dysk na maszynie wirtualnej. W systemie Linux dysk musi być zainstalowany w pliku /etc/fstab z trwałą nazwą urządzenia blokowego.

W przeciwieństwie do składni programu PowerShell interfejs wiersza polecenia nie wymaga podania unikatowej wersji sekwencji podczas włączania szyfrowania. Interfejs wiersza polecenia automatycznie generuje i używa własnej unikatowej wartości wersji sekwencji.

  • Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza tajnego klienta:

        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"
    
  • Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza KEK, aby opakowować klucz tajny klienta:

        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"
    

Włączanie szyfrowania na nowo dodanym dysku za pomocą programu Azure PowerShell

W przypadku szyfrowania nowego dysku dla systemu Linux przy użyciu programu PowerShell należy określić nową wersję sekwencji. Wersja sekwencji musi być unikatowa. Poniższy skrypt generuje identyfikator GUID dla wersji sekwencji.

  • Szyfruj uruchomioną maszynę wirtualną przy użyciu klucza tajnego klienta: następujący skrypt inicjuje zmienne i uruchamia polecenie cmdlet Set-AzVMDiskEncryptionExtension. Grupa zasobów, maszyna wirtualna, magazyn kluczy, aplikacja Microsoft Entra i wpis tajny klienta powinny już zostać utworzone jako wymagania wstępne. Zastąp wartości MyVirtualMachineResourceGroup, MyKeyVaultResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID i My-AAD-client-secret. Parametr -VolumeType jest ustawiony na dyski danych, a nie dysk systemu operacyjnego. Jeśli maszyna wirtualna została wcześniej zaszyfrowana przy użyciu typu woluminu "System operacyjny" lub "Wszystkie", parametr -VolumeType powinien zostać zmieniony na Wszystkie, aby uwzględnić zarówno system operacyjny, jak i nowy dysk danych.

        $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;
    
  • Szyfrowanie uruchomionej maszyny wirtualnej przy użyciu klucza KEK w celu opakowania klucza tajnego klienta: usługa Azure Disk Encryption umożliwia określenie istniejącego klucza w magazynie kluczy w celu opakowania wpisów tajnych szyfrowania dysków, które zostały wygenerowane podczas włączania szyfrowania. Po określeniu klucza szyfrowania klucza usługa Azure Disk Encryption używa tego klucza do opakowania wpisów tajnych szyfrowania przed zapisaniem w magazynie kluczy. Parametr -VolumeType jest ustawiony na dyski danych, a nie dysk systemu operacyjnego. Jeśli maszyna wirtualna została wcześniej zaszyfrowana przy użyciu typu woluminu "System operacyjny" lub "Wszystkie", parametr -VolumeType powinien zostać zmieniony na Wszystkie, aby uwzględnić zarówno system operacyjny, jak i nowy dysk danych.

        $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;
    

Uwaga

Składnia wartości parametru disk-encryption-keyvault jest pełnym ciągiem identyfikatora: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name].

Składnia wartości parametru key-encryption-key jest pełnym identyfikatorem URI klucza, jak w artykule: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

Wyłączanie szyfrowania dla maszyn wirtualnych z systemem Linux

Szyfrowanie można wyłączyć przy użyciu programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub szablonu usługi Resource Manager.

Ważne

Wyłączenie szyfrowania za pomocą usługi Azure Disk Encryption na maszynach wirtualnych z systemem Linux jest obsługiwane tylko w przypadku woluminów danych. Nie jest obsługiwana na danych lub woluminach systemu operacyjnego, jeśli wolumin systemu operacyjnego został zaszyfrowany.

  • Wyłącz szyfrowanie dysków za pomocą programu Azure PowerShell: aby wyłączyć szyfrowanie, użyj polecenia cmdlet Disable-AzureRmVMDiskEncryption .

        Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM' [--volume-type {ALL, DATA, OS}]
    
  • Wyłącz szyfrowanie przy użyciu interfejsu wiersza polecenia platformy Azure: aby wyłączyć szyfrowanie, użyj polecenia az vm encryption disable .

        az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type [ALL, DATA, OS]
    
  • Wyłącz szyfrowanie przy użyciu szablonu usługi Resource Manager: aby wyłączyć szyfrowanie, użyj szablonu Wyłącz szyfrowanie na uruchomionej maszynie wirtualnej z systemem Linux.

    1. Wybierz pozycję Wdróż na platformie Azure.
    2. Wybierz subskrypcję, grupę zasobów, lokalizację, maszynę wirtualną, postanowienia prawne i umowę.
    3. Wybierz pozycję Kup , aby wyłączyć szyfrowanie dysków na uruchomionej maszynie wirtualnej z systemem Windows.

Następne kroki