Używanie interfejsu wiersza polecenia platformy Azure do włączania szyfrowania po stronie serwera przy użyciu kluczy zarządzanych przez klienta dla dysków zarządzanych
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania
Usługa Azure Disk Storage umożliwia zarządzanie własnymi kluczami podczas korzystania z szyfrowania po stronie serwera (SSE) dla dysków zarządzanych, jeśli wybierzesz. Aby uzyskać informacje koncepcyjne dotyczące SSE z kluczami zarządzanymi przez klienta, a także inne typy szyfrowania dysków zarządzanych przez klienta, zobacz sekcję Klucze zarządzane przez klienta w artykule dotyczącym szyfrowania dysków.
Ograniczenia
Na razie klucze zarządzane przez klienta mają następujące ograniczenia:
- Jeśli ta funkcja jest włączona dla dysku z migawkami przyrostowymi, nie można jej wyłączyć na tym dysku ani jego migawkach. Aby obejść ten problem, skopiuj wszystkie dane na zupełnie inny dysk zarządzany, który nie korzysta z kluczy zarządzanych przez klienta. Można to zrobić za pomocą interfejsu wiersza polecenia platformy Azure lub modułu Azure PowerShell.
- Dysk i wszystkie skojarzone z nim migawki przyrostowe muszą mieć ten sam zestaw szyfrowania dysku.
- Obsługiwane są tylko klucze oprogramowania i modułu HSM RSA o rozmiarach 2048-bitowych, 3072-bitowych i 4096-bitowych, bez innych kluczy ani rozmiarów.
- Klucze HSM wymagają warstwy Premium usługi Azure Key Vault.
- Tylko w przypadku dysków w warstwie Ultra Disk i SSD w warstwie Premium w wersji 2:
- Dyski utworzone na podstawie migawek zaszyfrowanych za pomocą szyfrowania po stronie serwera i kluczy zarządzanych przez klienta muszą być szyfrowane przy użyciu tego samego zestawu szyfrowania dysków.
- Tożsamości zarządzane przypisane przez użytkownika nie są obsługiwane w przypadku dysków w warstwie Ultra i dysków SSD w warstwie Premium w wersji 2 zaszyfrowanych przy użyciu kluczy zarządzanych przez klienta.
- Szyfrowanie dysków w warstwie Ultra i dysków SSD w warstwie Premium w wersji 2 przy użyciu kluczy zarządzanych przez klienta przy użyciu usługi Azure Key Vault przechowywanych w innej dzierżawie identyfikatora Entra firmy Microsoft nie jest obecnie obsługiwane.
- Większość zasobów związanych z kluczami zarządzanymi przez klienta (zestawy szyfrowania dysków, maszyny wirtualne, dyski i migawki) musi znajdować się w tej samej subskrypcji i regionie.
- Usługi Azure Key Vault mogą być używane z innej subskrypcji, ale muszą znajdować się w tym samym regionie co zestaw szyfrowania dysków. Jako wersja zapoznawcza możesz używać usługi Azure Key Vault z różnych dzierżaw firmy Microsoft Entra.
- Dyski zaszyfrowane za pomocą kluczy zarządzanych przez klienta mogą być przenoszone tylko do innej grupy zasobów, jeśli maszyna wirtualna, do której są dołączone, zostanie cofnięto przydział.
- Dysków, migawek i obrazów zaszyfrowanych przy użyciu kluczy zarządzanych przez klienta nie można przenosić między subskrypcjami.
- Dyski zarządzane obecnie lub wcześniej zaszyfrowane przy użyciu usługi Azure Disk Encryption nie mogą być szyfrowane przy użyciu kluczy zarządzanych przez klienta.
- Można utworzyć maksymalnie 5000 zestawów szyfrowania dysków na region na subskrypcję.
- Aby uzyskać informacje na temat używania kluczy zarządzanych przez klienta z galeriami obrazów udostępnionych, zobacz Wersja zapoznawcza: używanie kluczy zarządzanych przez klienta do szyfrowania obrazów.
Tworzenie zasobów
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
Po utworzeniu i skonfigurowaniu tych zasobów można ich użyć do zabezpieczenia dysków zarządzanych. Poniższe linki zawierają przykładowe skrypty, z których każdy ma odpowiedni scenariusz, których można użyć do zabezpieczenia dysków zarządzanych.
Przykłady
Tworzenie maszyny wirtualnej przy użyciu obrazu witryny Marketplace, szyfrowanie dysków systemu operacyjnego i danych przy użyciu kluczy zarządzanych przez klienta
rgName=yourResourceGroupName
vmName=yourVMName
location=westcentralus
vmSize=Standard_DS3_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 --image $image --size $vmSize --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 128 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Szyfrowanie istniejących dysków zarządzanych
Istniejące dyski nie mogą być dołączone do uruchomionej maszyny wirtualnej w celu zaszyfrowania ich przy użyciu następującego skryptu:
rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName
az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId
Tworzenie zestawu skalowania maszyn wirtualnych przy użyciu obrazu witryny Marketplace, szyfrowanie dysków systemu operacyjnego i danych przy użyciu kluczy zarządzanych przez klienta
rgName=yourResourceGroupName
vmssName=yourVMSSName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image $image --upgrade-policy automatic --admin-username azureuser --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 64 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Tworzenie pustego dysku zaszyfrowanego przy użyciu szyfrowania po stronie serwera z kluczami zarządzanymi przez klienta i dołączanie go do maszyny wirtualnej
vmName=yourVMName
rgName=yourResourceGroupName
diskName=yourDiskName
diskSkuName=Premium_LRS
diskSizeinGiB=30
location=westcentralus
diskLUN=2
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk create -n $diskName -g $rgName -l $location --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId --size-gb $diskSizeinGiB --sku $diskSkuName
diskId=$(az disk show -n $diskName -g $rgName --query [id] -o tsv)
az vm disk attach --vm-name $vmName --lun $diskLUN --ids $diskId
Zmień klucz elementu DiskEncryptionSet, aby obrócić klucz dla wszystkich zasobów odwołujących się do elementu DiskEncryptionSet
rgName=yourResourceGroupName
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
keyVaultId=$(az keyvault show --name $keyVaultName--query [id] -o tsv)
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set update -n keyrotationdes -g keyrotationtesting --key-url $keyVaultKeyUrl --source-vault $keyVaultId
Znajdowanie stanu szyfrowania po stronie serwera dysku
az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv
Ważne
Klucze zarządzane przez klienta opierają się na tożsamościach zarządzanych dla zasobów platformy Azure— funkcji identyfikatora Entra firmy Microsoft. Podczas konfigurowania kluczy zarządzanych przez klienta tożsamość zarządzana jest automatycznie przypisywana do zasobów w ramach tych elementów. Jeśli następnie przeniesiesz subskrypcję, grupę zasobów lub dysk zarządzany z jednego katalogu firmy Microsoft Entra do innego, tożsamość zarządzana skojarzona z dyskami zarządzanymi nie zostanie przeniesiona do nowej dzierżawy, więc klucze zarządzane przez klienta mogą już nie działać. Aby uzyskać więcej informacji, zobacz Przenoszenie subskrypcji między katalogami firmy Microsoft Entra.
Następne kroki
- Eksplorowanie szablonów usługi Azure Resource Manager na potrzeby tworzenia zaszyfrowanych dysków przy użyciu kluczy zarządzanych przez klienta
- Replikowanie maszyn z włączonymi kluczami zarządzanymi przez klienta
- Skonfiguruj odzyskiwanie po awarii maszyn wirtualnych VMware na platformę Azure za pomocą programu PowerShell
- Skonfiguruj odzyskiwania po awarii na platformie Azure dla maszyn wirtualnych funkcji Hyper-V przy użyciu programu PowerShell i Azure Resource Manager
- Zobacz Tworzenie dysku zarządzanego na podstawie migawki za pomocą interfejsu wiersza polecenia , aby zapoznać się z przykładem kodu.