Udostępnij przez


Szyfrowanie dysków systemu operacyjnego i dołączonych dysków danych w zestawie skalowania maszyn wirtualnych przy użyciu programu Azure PowerShell

Ważne

Usługa Azure Disk Encryption ma zostać wycofana 15 września 2028 r. Do tej pory można nadal korzystać z usługi Azure Disk Encryption bez zakłóceń. 15 września 2028 r. obciążenia z obsługą programu ADE będą nadal działać, ale zaszyfrowane dyski nie będą mogły zostać odblokowane po ponownym uruchomieniu maszyny wirtualnej, co spowoduje przerwy w działaniu usługi.

Użyj szyfrowania na hoście dla nowych maszyn wirtualnych. Wszystkie maszyny wirtualne z obsługą programu ADE (w tym kopie zapasowe) muszą migrować do szyfrowania na hoście przed datą wycofania, aby uniknąć przerw w działaniu usługi. Aby uzyskać szczegółowe informacje, zobacz Migrowanie z usługi Azure Disk Encryption do szyfrowania na hoście .

Moduł Azure PowerShell służy do tworzenia zasobów platformy Azure i zarządzania nimi za pomocą wiersza polecenia programu PowerShell lub skryptów. W tym artykule pokazano, jak używać programu Azure PowerShell do tworzenia i szyfrowania zestawu skalowania maszyn wirtualnych. Aby uzyskać więcej informacji na temat stosowania usługi Azure Disk Encryption do zestawu skalowania maszyn wirtualnych, zobacz Usługa Azure Disk Encryption dla zestawów skalowania maszyn wirtualnych.

Azure Cloud Shell

Na platformie Azure hostowane jest interaktywne środowisko wiersza poleceń Azure Cloud Shell, z którego można korzystać przez przeglądarkę. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.

Aby uruchomić środowisko Azure Cloud Shell:

Option Przykład/link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. Zrzut ekranu przedstawiający przykład narzędzia Try It dla usługi Azure Cloud Shell.
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Przycisk uruchamiania usługi Azure Cloud Shell.
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Zrzut ekranu przedstawiający przycisk usługi Cloud Shell w witrynie Azure Portal

Aby użyć usługi Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.

  3. Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając Ctrl+Shift+ w systemach Windows i Linux lub wybierając pozycję Cmd++V w systemie macOS.

  4. Wybierz Enter, aby uruchomić kod lub polecenie.

Tworzenie usługi Azure Key Vault włączonej na potrzeby szyfrowania dysków

Usługa Azure Key Vault może przechowywać klucze, wpisy tajne lub hasła, które umożliwiają bezpieczne implementowanie ich w aplikacjach i usługach. Klucze kryptograficzne są przechowywane w usłudze Azure Key Vault przy użyciu ochrony oprogramowania lub można zaimportować lub wygenerować klucze w sprzętowych modułach zabezpieczeń (HSM) certyfikowanych przez standard FIPS 140 . Te klucze kryptograficzne służą do szyfrowania i odszyfrowywania dysków wirtualnych dołączonych do maszyny wirtualnej. Zachowasz kontrolę nad tymi kluczami kryptograficznymi i możesz przeprowadzić inspekcję ich użycia.

Utwórz Key Vault za pomocą New-AzKeyVault. Aby zezwolić usłudze Key Vault na szyfrowanie dysków, ustaw parametr EnabledForDiskEncryption . W poniższym przykładzie zdefiniowano również zmienne dla nazwy grupy zasobów, nazwy magazynu kluczy i lokalizacji. Podaj własną unikatową nazwę usługi Key Vault:

$rgName="myResourceGroup"
$vaultName="myuniquekeyvault"
$location = "EastUS"

New-AzResourceGroup -Name $rgName -Location $location
New-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName -Location $location -EnabledForDiskEncryption

Korzystanie z istniejącej usługi Key Vault

Ten krok jest wymagany tylko wtedy, gdy masz istniejącą usługę Key Vault, której chcesz używać z szyfrowaniem dysków. Pomiń ten krok, jeśli utworzono usługę Key Vault w poprzedniej sekcji.

Możesz włączyć istniejący Key Vault w tej samej subskrypcji i regionie, co zestaw skalowania dla szyfrowania dysków przy użyciu polecenia Set-AzKeyVaultAccessPolicy. Zdefiniuj nazwę istniejącej usługi Key Vault w zmiennej $vaultName w następujący sposób:

$vaultName="myexistingkeyvault"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName -EnabledForDiskEncryption

Tworzenie zestawu skalowania

Ważne

Od listopada 2023 r. zestawy skalowania maszyn wirtualnych utworzone przy użyciu programu PowerShell i interfejsu wiersza polecenia platformy Azure będą domyślnie ustawiać tryb elastycznej orkiestracji, jeśli nie określono trybu aranżacji. Aby uzyskać więcej informacji na temat tej zmiany i akcji, które należy wykonać, zobacz Zmiana powodująca niezgodność dla klientów programu PowerShell/interfejsu wiersza polecenia usługi VMSS — Microsoft Community Hub

Najpierw ustaw nazwę użytkownika i hasło administratora dla wystąpień maszyn wirtualnych za pomocą Get-Credential:

$cred = Get-Credential

Teraz utwórz zestaw skalowania maszyn wirtualnych za pomocą New-AzVmss. Aby dystrybuować ruch do poszczególnych wystąpień maszyn wirtualnych, tworzony jest również moduł równoważenia obciążenia. Moduł równoważenia obciążenia zawiera reguły do dystrybucji ruchu na porcie TCP 80, a także zezwala na ruch pulpitu zdalnego na porcie TCP 3389 i na komunikację zdalną programu PowerShell na porcie TCP 5985.

$vmssName="myScaleSet"

New-AzVmss `
    -ResourceGroupName $rgName `
    -VMScaleSetName $vmssName `
    -OrchestrationMode "flexible" `
    -Location $location `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -PublicIpAddressName "myPublicIPAddress" `
    -LoadBalancerName "myLoadBalancer" `
    -Credential $cred

Włączanie szyfrowania

Aby zaszyfrować wystąpienia maszyn wirtualnych w zestawie skalowania, najpierw uzyskaj informacje na temat identyfikatora URI usługi Key Vault i identyfikatora zasobu za pomocą polecenia Get-AzKeyVault. Te zmienne są używane do rozpoczęcia procesu szyfrowania za pomocą polecenia Set-AzVmssDiskEncryptionExtension:

$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"

Po wyświetleniu monitu wpisz y, aby kontynuować proces szyfrowania dysku w instancjach maszyn wirtualnych w zestawie skalowania.

Włączanie szyfrowania przy użyciu klucza KEK w celu zawinięcia klucza

Dla dodatkowego zabezpieczenia możesz również użyć klucza szyfrującego podczas szyfrowania zestawu skalowania maszyn wirtualnych.

$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $vaultName -Name $keyEncryptionKeyName).Key.kid;

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId `
    -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"

Uwaga / Notatka

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 dla KEK, w formacie:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Sprawdzanie postępu szyfrowania

Aby sprawdzić stan szyfrowania dysków, użyj polecenia Get-AzVmssDiskEncryption:

Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Gdy wystąpienia maszyn wirtualnych są szyfrowane, kod EncryptionSummary zgłasza wartość ProvisioningState/succeeded , jak pokazano w następujących przykładowych danych wyjściowych:

ResourceGroupName            : myResourceGroup
VmScaleSetName               : myScaleSet
EncryptionSettings           :
  KeyVaultURL                : https://myuniquekeyvault.vault.azure.net/
  KeyEncryptionKeyURL        :
  KeyVaultResourceId         : /subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myuniquekeyvault
  KekVaultResourceId         :
  KeyEncryptionAlgorithm     :
  VolumeType                 : All
  EncryptionOperation        : EnableEncryption
EncryptionSummary[0]         :
  Code                       : ProvisioningState/succeeded
  Count                      : 2
EncryptionEnabled            : True
EncryptionExtensionInstalled : True

Wyłączanie szyfrowania

Jeśli nie chcesz już używać zaszyfrowanych dysków wystąpień maszyn wirtualnych, możesz wyłączyć szyfrowanie za pomocą polecenia Disable-AzVmssDiskEncryption w następujący sposób:

Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Dalsze kroki