Dela via


Använd Azure CLI för att aktivera kryptering på serversidan med kundhanterade nycklar för hanterade diskar

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar

Med Azure Disk Storage kan du hantera dina egna nycklar när du använder kryptering på serversidan (SSE) för hanterade diskar om du vill. Konceptuell information om SSE med kundhanterade nycklar samt andra krypteringstyper för hanterade diskar finns i avsnittet Kundhanterade nycklar i vår diskkrypteringsartikel.

Begränsningar

För tillfället har kundhanterade nycklar följande begränsningar:

  • Om den här funktionen är aktiverad för en disk med inkrementella ögonblicksbilder kan den inte inaktiveras på den disken eller dess ögonblicksbilder. För att undvika detta kopierar du alla data till en helt annan hanterad disk som inte använder kundhanterade nycklar. Du kan göra det med antingen Azure CLI eller Azure PowerShell-modulen.
  • En disk och alla dess associerade inkrementella ögonblicksbilder måste ha samma diskkrypteringsuppsättning.
  • Endast programvara och HSM RSA-nycklar i storlekarna 2 048-bitars, 3 072- och 4 096-bitars stöds, inga andra nycklar eller storlekar.
    • HSM-nycklar kräver premiumnivån för Azure Key Vaults.
  • Endast för Ultra Disks- och Premium SSD v2-diskar:
    • Diskar som skapas från ögonblicksbilder som krypteras med kryptering på serversidan och kundhanterade nycklar måste krypteras med samma diskkrypteringsuppsättning.
    • Användartilldelade hanterade identiteter stöds inte för Ultra Disks- och Premium SSD v2-diskar som krypterats med kundhanterade nycklar.
    • Kryptering av Ultra Disks- och Premium SSD v2-diskar med kundhanterade nycklar med hjälp av Azure Key Vaults som lagras i en annan Microsoft Entra-ID-klientorganisation stöds inte för närvarande.
  • De flesta resurser som är relaterade till dina kundhanterade nycklar (diskkrypteringsuppsättningar, virtuella datorer, diskar och ögonblicksbilder) måste finnas i samma prenumeration och region.
    • Azure Key Vaults kan användas från en annan prenumeration men måste finnas i samma region som diskkrypteringsuppsättningen. Som förhandsversion kan du använda Azure Key Vaults från olika Microsoft Entra-klienter.
  • Diskar som är krypterade med kundhanterade nycklar kan bara flyttas till en annan resursgrupp om den virtuella dator som de är anslutna till frigörs.
  • Diskar, ögonblicksbilder och bilder som krypterats med kundhanterade nycklar kan inte flyttas mellan prenumerationer.
  • Hanterade diskar som för närvarande eller tidigare krypterats med Azure Disk Encryption kan inte krypteras med hjälp av kundhanterade nycklar.
  • Det går bara att skapa upp till 5 000 diskkrypteringsuppsättningar per region per prenumeration.
  • Information om hur du använder kundhanterade nycklar med delade bildgallerier finns i Förhandsversion: Använda kundhanterade nycklar för kryptering av bilder.

Skapa resurser

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 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
  • 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:

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

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änkar innehåller exempelskript, var och en med ett respektive scenario, som du kan använda för att skydda dina hanterade diskar.

Exempel

Skapa en virtuell dator med en Marketplace-avbildning och kryptera operativsystemet och datadiskarna med kundhanterade nycklar

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

Kryptera befintliga hanterade diskar

Dina befintliga diskar får inte vara anslutna till en virtuell dator som körs för att du ska kunna kryptera dem med hjälp av följande skript:

rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName

az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId

Skapa en VM-skalningsuppsättning med en Marketplace-avbildning och kryptera operativsystemet och datadiskarna med kundhanterade nycklar

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

Skapa en tom disk krypterad med kryptering på serversidan med kundhanterade nycklar och koppla den till en virtuell dator

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

Ändra nyckeln för en DiskEncryptionSet för att rotera nyckeln för alla resurser som refererar till 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

Hitta status för kryptering på serversidan för en disk

az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv

Viktigt!

Kundhanterade nycklar förlitar sig på hanterade identiteter för Azure-resurser, en funktion i Microsoft Entra-ID. När du konfigurerar kundhanterade nycklar tilldelas en hanterad identitet automatiskt till dina resurser under täcket. Om du senare flyttar prenumerationen, resursgruppen eller den hanterade disken från en Microsoft Entra-katalog till en annan överförs inte den hanterade identiteten som är associerad med de hanterade diskarna till den nya klientorganisationen, så kundhanterade nycklar kanske inte längre fungerar. Mer information finns i Överföra en prenumeration mellan Microsoft Entra-kataloger.

Nästa steg