Używanie interfejsu wiersza polecenia platformy Azure do włączania kompleksowego szyfrowania przy użyciu szyfrowania na hoście
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️
Po włączeniu szyfrowania na hoście dane przechowywane na hoście maszyny wirtualnej są szyfrowane w spoczynku i przepływy szyfrowane w usłudze Storage. Aby uzyskać informacje koncepcyjne dotyczące szyfrowania na hoście i innych typów szyfrowania dysków zarządzanych, zobacz Szyfrowanie na hoście — kompleksowe szyfrowanie danych maszyny wirtualnej.
Ograniczenia
- Obsługiwane w przypadku dysków Ultra Disk o rozmiarze 4k i ssd w warstwie Premium w wersji 2.
- Obsługiwane tylko w przypadku dysków Ultra Disk o rozmiarze 512e i ssd w warstwie Premium w wersji 2, jeśli zostały utworzone po 13.05.2023.
- W przypadku dysków utworzonych przed tą datą utwórz migawkę dysku i utwórz nowy dysk przy użyciu migawki.
- Nie można włączyć na maszynach wirtualnych ani w zestawach skalowania maszyn wirtualnych, które obecnie lub kiedykolwiek miały włączoną usługę Azure Disk Encryption.
- Nie można włączyć usługi Azure Disk Encryption na dyskach z włączonym szyfrowaniem na hoście.
- Szyfrowanie można włączyć w istniejących zestawach skalowania maszyn wirtualnych. Jednak tylko nowe maszyny wirtualne utworzone po włączeniu szyfrowania są automatycznie szyfrowane.
- Aby można było zaszyfrować istniejące maszyny wirtualne, należy cofnąć przydział i przydzielić ich przydział.
Obsługiwane rozmiary maszyn wirtualnych
Pełną listę obsługiwanych rozmiarów maszyn wirtualnych można ściągnąć programowo. Aby dowiedzieć się, jak je programowo pobrać, zobacz sekcję Znajdowanie obsługiwanych rozmiarów maszyn wirtualnych . Uaktualnienie rozmiaru maszyny wirtualnej powoduje sprawdzenie poprawności, aby sprawdzić, czy nowy rozmiar maszyny wirtualnej obsługuje funkcję EncryptionAtHost.
Wymagania wstępne
Przed użyciem właściwości EncryptionAtHost dla maszyny wirtualnej/usługi VMSS należy włączyć tę funkcję dla subskrypcji. Aby włączyć funkcję dla subskrypcji, wykonaj następujące kroki:
- Wykonaj następujące polecenie, aby zarejestrować funkcję dla subskrypcji
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Przed wypróbowaniem funkcji sprawdź, czy stan rejestracji to Zarejestrowano (trwa kilka minut) przy użyciu poniższego polecenia.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Tworzenie zasobów
Uwaga
Ta sekcja dotyczy tylko konfiguracji z kluczami zarządzanymi przez klienta. Jeśli używasz kluczy zarządzanych przez platformę, możesz przejść do sekcji Przykładowe skrypty .
Po włączeniu tej funkcji należy skonfigurować element DiskEncryptionSet i usługę Azure Key Vault lub zarządzany moduł HSM usługi Azure Key Vault.
Azure Key Vault
- Zainstaluj najnowszy interfejs wiersza polecenia platformy Azure i zaloguj się do konta platformy Azure za pomocą polecenia az login.
- Utwórz usługę Azure Key Vault i klucz szyfrowania.
Podczas tworzenia usługi Key Vault należy włączyć ochronę przed przeczyszczeniem. Ochrona przed przeczyszczeniem gwarantuje, że usunięty klucz nie może zostać trwale usunięty, dopóki okres przechowywania nie wygaśnie. Te ustawienia chronią cię przed utratą danych z powodu przypadkowego usunięcia. Te ustawienia są obowiązkowe w przypadku używania usługi Key Vault do szyfrowania dysków zarządzanych.
Ważne
Jeśli to zrobisz, nie wystąpią problemy podczas przypisywania dodatkowych dysków do zasobu w witrynie Azure Portal.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- Utwórz element DiskEncryptionSet. Możesz ustawić wartość enable-auto-key-rotation równą true, aby włączyć automatyczną rotację klucza. Po włączeniu rotacji automatycznej system automatycznie zaktualizuje wszystkie dyski zarządzane, migawki i obrazy odwołujące się do zestawu szyfrowania dysku, aby używać nowej wersji klucza w ciągu jednej godziny.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- Udziel zasobowi DiskEncryptionSet dostępu do magazynu kluczy.
Uwaga
Utworzenie tożsamości elementu DiskEncryptionSet na platformie Azure w identyfikatorze Entra firmy Microsoft może potrwać kilka minut. Jeśli podczas uruchamiania następującego polecenia wystąpi błąd, taki jak "Nie można odnaleźć obiektu usługi Active Directory", zaczekaj kilka minut i spróbuj ponownie.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
Zarządzany moduł HSM usługi Azure Key Vault
Alternatywnie możesz użyć zarządzanego modułu HSM do obsługi kluczy.
W tym celu należy spełnić następujące wymagania wstępne:
- Zainstaluj najnowszy interfejs wiersza polecenia platformy Azure i zaloguj się do konta platformy Azure za pomocą polecenia az login.
- Tworzenie i konfigurowanie zarządzanego modułu HSM.
- Przypisz uprawnienia do użytkownika, aby mógł zarządzać zarządzanym modułem HSM.
Konfigurowanie
Po utworzeniu zarządzanego modułu HSM i dodaniu uprawnień włącz ochronę przed przeczyszczaniem i utwórz klucz szyfrowania.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
Następnie utwórz element DiskEncryptionSet.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Na koniec przyznaj usłudze DiskEncryptionSet dostęp do zarządzanego modułu HSM.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Przykładowe skrypty
Tworzenie maszyny wirtualnej z szyfrowaniem na hoście z włączonymi kluczami zarządzanymi przez klienta
Utwórz maszynę wirtualną z dyskami zarządzanymi przy użyciu identyfikatora URI zasobu utworzonego wcześniej diskEncryptionSet w celu szyfrowania pamięci podręcznej dysków systemu operacyjnego i danych przy użyciu kluczy zarządzanych przez klienta. Dyski tymczasowe są szyfrowane przy użyciu kluczy zarządzanych przez platformę.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 128 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Tworzenie maszyny wirtualnej z szyfrowaniem na hoście z włączonymi kluczami zarządzanymi przez platformę
Utwórz maszynę wirtualną z szyfrowaniem na hoście, która umożliwia szyfrowanie pamięci podręcznej dysków systemu operacyjnego/danych i dysków tymczasowych przy użyciu kluczy zarządzanych przez platformę.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \
Aktualizowanie maszyny wirtualnej w celu włączenia szyfrowania na hoście
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Sprawdzanie stanu szyfrowania na hoście maszyny wirtualnej
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Aktualizowanie maszyny wirtualnej w celu wyłączenia szyfrowania na hoście
Przed wyłączeniem szyfrowania na hoście należy cofnąć przydział maszyny wirtualnej.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Tworzenie zestawu skalowania maszyn wirtualnych z szyfrowaniem na hoście włączonym przy użyciu kluczy zarządzanych przez klienta
Utwórz zestaw skalowania maszyn wirtualnych z dyskami zarządzanymi przy użyciu identyfikatora URI zasobu utworzonego wcześniej diskEncryptionSet w celu szyfrowania pamięci podręcznej dysków systemu operacyjnego i danych przy użyciu kluczy zarządzanych przez klienta. Dyski tymczasowe są szyfrowane przy użyciu kluczy zarządzanych przez platformę.
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
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Tworzenie zestawu skalowania maszyn wirtualnych z szyfrowaniem na hoście z włączonymi kluczami zarządzanymi przez platformę
Utwórz zestaw skalowania maszyn wirtualnych z szyfrowaniem na hoście, który umożliwia szyfrowanie pamięci podręcznej dysków systemu operacyjnego/danych i dysków tymczasowych przy użyciu kluczy zarządzanych przez platformę.
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
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \
Aktualizowanie zestawu skalowania maszyn wirtualnych w celu włączenia szyfrowania na hoście
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Sprawdzanie stanu szyfrowania na hoście dla zestawu skalowania maszyn wirtualnych
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Aktualizowanie zestawu skalowania maszyn wirtualnych w celu wyłączenia szyfrowania na hoście
Szyfrowanie można wyłączyć na hoście w zestawie skalowania maszyn wirtualnych, ale będzie to miało wpływ tylko na maszyny wirtualne utworzone po wyłączeniu szyfrowania na hoście. W przypadku istniejących maszyn wirtualnych należy cofnąć przydział maszyny wirtualnej, wyłączyć szyfrowanie na hoście na tej pojedynczej maszynie wirtualnej, a następnie ponownie przydzielić maszynę wirtualną.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Znajdowanie obsługiwanych rozmiarów maszyn wirtualnych
Starsze rozmiary maszyn wirtualnych nie są obsługiwane. Listę obsługiwanych rozmiarów maszyn wirtualnych można znaleźć przy użyciu interfejsów API jednostki SKU zasobów lub modułu Programu Azure PowerShell. Nie można znaleźć obsługiwanych rozmiarów przy użyciu interfejsu wiersza polecenia.
Podczas wywoływania interfejsu API jednostek SKU zasobów sprawdź, czy EncryptionAtHostSupported
funkcja jest ustawiona na wartość True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUSEUAP"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
W przypadku modułu Azure PowerShell użyj polecenia cmdlet Get-AzComputeResourceSku .
$vmSizes=Get-AzComputeResourceSku | where{$_.ResourceType -eq 'virtualMachines' -and $_.Locations.Contains('CentralUSEUAP')}
foreach($vmSize in $vmSizes)
{
foreach($capability in $vmSize.capabilities)
{
if($capability.Name -eq 'EncryptionAtHostSupported' -and $capability.Value -eq 'true')
{
$vmSize
}
}
}
Następne kroki
Po utworzeniu i skonfigurowaniu tych zasobów można ich użyć do zabezpieczenia dysków zarządzanych. Poniższy link zawiera przykładowe skrypty, z których każdy ma odpowiedni scenariusz, którego można użyć do zabezpieczenia dysków zarządzanych.