Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
När du aktiverar kryptering på värden krypteras data som lagras i den virtuella datorvärden när den är i vila och överförs krypterad till lagringstjänsten. Konceptuell information om kryptering på värden och andra krypteringstyper för hanterade diskar finns i Kryptering på värden – Kryptering från slutpunkt till slutpunkt-kryptering för dina VM-data.
Begränsningar
- Det går inte att aktivera på virtuella datorer (VM) eller virtuella datorers skalningsuppsättningar som för närvarande eller någonsin har haft Azure Disk Encryption aktiverad.
- Azure Disk Encryption kan inte aktiveras på diskar som har kryptering på värden aktiverat.
- Krypteringen kan aktiveras på befintliga skalningsgrupper för virtuella maskiner. Men endast nya virtuella datorer som skapas efter aktivering av krypteringen krypteras automatiskt.
- Befintliga virtuella datorer måste frigöras och omallokeras för att kunna krypteras.
Följande begränsningar gäller endast för Ultra Disks och Premium SSD v2:
- Diskar med en sektorstorlek på 512e måste ha skapats efter 2023-05-13.
- Om disken skapades före det här datumet ska du ögonblicksbildera disken och skapa en ny disk med hjälp av ögonblicksbilden.
VM-storlekar som stöds
Den fullständiga listan över vm-storlekar som stöds kan hämtas programmatiskt. Mer information om hur du hämtar dem programmatiskt finns i avsnittet Hitta vm-storlekar som stöds . Uppgradering av vm-storleken resulterar i validering för att kontrollera om den nya VM-storleken stöder funktionen EncryptionAtHost.
Förutsättningar
Du måste aktivera funktionen för din prenumeration innan du använder egenskapen EncryptionAtHost för din virtuella dator/VMSS. Använd följande steg för att aktivera funktionen för din prenumeration:
- Kör följande kommando för att registrera funktionen för din prenumeration
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Kontrollera att registreringstillståndet är Registrerat (tar några minuter) med hjälp av kommandot nedan innan du testar funktionen.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Skapa resurser
Kommentar
Det här avsnittet gäller endast för konfigurationer med kundhanterade nycklar. Om du använder plattformshanterade nycklar kan du gå vidare till avsnittet Exempelskript .
När funktionen är aktiverad måste du konfigurera en DiskEncryptionSet och antingen ett Azure Key Vault eller en Hanterad HSM för Azure Key Vault.
Azure 密钥保管库
- Installera den senaste Azure CLI och logga in på ett Azure-konto med az login.
- Skapa ett Azure Key Vault och en krypteringsnyckel.
När du skapar Key Vault måste du aktivera rensningsskydd. Rensningsskydd säkerställer att en borttagen nyckel inte kan tas bort permanent förrän kvarhållningsperioden upphör att gälla. De här inställningarna skyddar dig från att förlora data på grund av oavsiktlig borttagning. De här inställningarna är obligatoriska när du använder ett Key Vault för att kryptera hanterade diskar.
Viktigt!
Använd inte kamelnotation för regionen, om du gör det kan det uppstå problem när du tilldelar ytterligare diskar till resursen i Azure-portalen.
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
- Skapa en DiskEncryptionSet. Du kan ange enable-auto-key-rotation till true för att aktivera automatisk rotation av nyckeln. När du aktiverar automatisk rotation uppdaterar systemet automatiskt alla hanterade diskar, ögonblicksbilder och bilder som refererar till diskkrypteringsuppsättningen för att använda den nya versionen av nyckeln inom en timme.
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
- Ge resursen DiskEncryptionSet åtkomst till nyckelvalvet.
Kommentar
Det kan ta några minuter för Azure att skapa identiteten för diskEncryptionSet i ditt Microsoft Entra-ID. Om du får ett felmeddelande som "Det går inte att hitta Active Directory-objektet" när du kör följande kommando väntar du några minuter och försöker igen.
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
Hanterad HSM för Azure Key Vault
Alternativt kan du använda en hanterad HSM för att hantera dina nycklar.
För att göra detta måste du uppfylla följande krav:
- Installera den senaste Azure CLI och logga in på ett Azure-konto med az login.
- Skapa och konfigurera en hanterad HSM.
- Tilldela behörigheter till en användare så att de kan hantera din hanterade HSM.
Konfiguration
När du har skapat en hanterad HSM och lagt till behörigheter aktiverar du rensningsskydd och skapar en krypteringsnyckel.
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
Skapa sedan en 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
Slutligen beviljar du DiskEncryptionSet åtkomst till Managed 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
Exempelskript
Skapa en virtuell dator med kryptering på värddatorn aktiverad med kundhanterade nycklar
Skapa en virtuell dator med hanterade diskar med hjälp av resurs-URI:n för DiskEncryptionSet som skapades tidigare för att kryptera cacheminnet för operativsystem och datadiskar med kundhanterade nycklar. De temporära diskarna krypteras med plattformshanterade nycklar.
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
Skapa en virtuell dator med aktiverad kryptering på värden med plattformshanterade nycklar
Skapa en virtuell dator med kryptering på värd aktiverad för att kryptera cachen på OS-/datadiskar och temporära diskar med nycklar som hanteras av plattformen.
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 \
Uppdatera en virtuell dator för att aktivera kryptering på värd
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Kontrollera krypteringsstatus på värden för en virtuell dator
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Uppdatera en virtuell dator för att inaktivera kryptering på värden
Du måste frigöra den virtuella datorn innan du kan inaktivera kryptering på värden.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Skapa en VM-skalningsuppsättning med kryptering på värden aktiverad med kundhanterade nycklar
Skapa en virtuell maskinskala med hanterade diskar genom att använda resurs-URI:n för DiskEncryptionSet som skapades tidigare för att kryptera cacheminnet för OS- och datadiskar med kundhanterade nycklar. De temporära diskarna krypteras med plattformshanterade nycklar.
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara i flexibelt orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Brytande ändring för VMSS PowerShell/CLI-kunder – 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
Skapa en VM-skalningsuppsättning med kryptering på värdnivå aktiverad med plattformshanterade nycklar
Skapa en VM-skalningsuppsättning med kryptering på värden aktiverad för att kryptera cachelagring av OS/datadiskar och temporära diskar med plattformshanterade nycklar.
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara i flexibelt orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Brytande ändring för VMSS PowerShell/CLI-kunder – 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 \
Uppdatera en VM-skalningsuppsättning för att aktivera kryptering på värden
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Kontrollera status för kryptering på värden för en VM-skalningsuppsättning
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Uppdatera en VM-skalningsuppsättning för att inaktivera kryptering på värdnivå
Du kan inaktivera värdkrypteringen på din Virtual Machine Scale Set, men detta påverkar bara virtuella datorer som skapas efter att du inaktiverar värdkrypteringen. För befintliga virtuella datorer måste du deallokera den virtuella datorn, inaktivera kryptering på värd på den enskilda virtuella datorn och sedan omallokera den.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Hitta vm-storlekar som stöds
Äldre VM-storlekar stöds inte. Du hittar listan över vm-storlekar som stöds med hjälp av resurs-SKU-API:er eller Azure CLI.
När du anropar API:et Resource Skus kontrollerar du att funktionen är inställd på True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUS"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
För Azure CLI använder du kommandot az vm image list-skus .
location=centralus
az vm list-skus --location $location --all \
--resource-type virtualMachines \
--query "[?capabilities[?name=='EncryptionAtHostSupported' && value=='True']].{VMName:name, EncryptionAtHost:capabilities[?name=='EncryptionAtHostSupported'].value | [0]}" \
--output table
Nästa steg
Nu när du har skapat och konfigurerat dessa resurser kan du använda dem för att skydda dina hanterade diskar. Följande länk innehåller exempelskript, var och en med ett respektive scenario, som du kan använda för att skydda dina hanterade diskar.