Använd Azure CLI för att aktivera kryptering från slutpunkt till slutpunkt med hjälp av kryptering på värden
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
När du aktiverar kryptering på värden krypteras data som lagras på den virtuella datorvärden i vila och flöden krypteras 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
- Stöds för 4k sektorstorlek Ultra Diskar och Premium SSD v2.
- Stöds endast på 512e-sektorns storlek Ultra Disks och Premium SSD v2 om de skapades efter 2023-05-13.
- För diskar som skapats före det här datumet ska du ögonblicksbildera disken och skapa en ny disk med hjälp av ögonblicksbilden.
- Det går inte att aktivera på virtuella datorer (VM) eller vm-skalningsuppsättningar som för närvarande eller någonsin har azure diskkryptering aktiverat.
- Azure Disk Encryption kan inte aktiveras på diskar som har kryptering på värden aktiverat.
- Krypteringen kan aktiveras på befintliga VM-skalningsuppsättningar. 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.
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 Key Vault
- 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 förfaller. 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!
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 lika med 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
Azure Key Vault Managed HSM
Du kan också 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ärden aktiverat 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 kryptering på värden aktiverat med plattformshanterade nycklar
Skapa en virtuell dator med kryptering på värden aktiverat för att kryptera cachelagring av OS/datadiskar och temporära diskar med plattformshanterade nycklar.
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ärden
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Kontrollera status för kryptering 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 vm-skalningsuppsättning 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.
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara flexibla 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 Icke-bakåtkompatibla ändringar 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ärden 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 flexibla 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 Icke-bakåtkompatibla ändringar 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ärden
Du kan inaktivera kryptering på värden på vm-skalningsuppsättningen, men detta påverkar bara virtuella datorer som skapats när du inaktiverar kryptering på värden. För befintliga virtuella datorer måste du frigöra den virtuella datorn, inaktivera kryptering på värden på den enskilda virtuella datorn och sedan omallokera den virtuella datorn.
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 PowerShell-modulen. Du hittar inte de storlekar som stöds med hjälp av CLI.
När du anropar Resource Skus-API:et EncryptionAtHostSupported
kontrollerar du att funktionen är inställd på Sant.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUSEUAP"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
För Azure PowerShell-modulen använder du cmdleten 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
}
}
}
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.