Gebruik de Azure CLI om versleuteling aan de serverzijde in te schakelen met door de klant beheerde sleutels voor beheerde schijven

Applies to: ✔️ Linux VMs ✔️ Windows VMs ✔️ Flexibele schaalsets ✔️ Uniforme schaalsets

Azure Disk Storage kunt u uw eigen sleutels beheren wanneer u SSE (Server-Side Encryption) gebruikt voor beheerde schijven, indien u dat kiest. Voor conceptuele informatie over SSE met door de klant beheerde sleutels, evenals andere typen beheerde schijfversleuteling, raadpleegt u de sectie Door de klant beheerde sleutels van ons artikel over schijfversleuteling.

Beperkingen

Op dit moment hebben door de klant beheerde sleutels de volgende beperkingen:

  • Als deze functie is ingeschakeld voor een schijf met incrementele momentopnamen, kan deze niet worden uitgeschakeld op die schijf of de bijbehorende momentopnamen. U kunt dit omzeilen door alle gegevens te kopiëren naar een volledig andere beheerde schijf die geen door de klant beheerde sleutels gebruikt. U kunt dit doen met de Azure CLI of de module Azure PowerShell.
  • Een schijf en alle bijbehorende incrementele momentopnamen moeten dezelfde schijfversleutelingsset hebben.
  • Alleen software- en HSM RSA-sleutels van grootten 2048-bits, 3072-bits en 4.096-bits worden ondersteund, geen andere sleutels of grootten.
    • voor HSM-sleutels is de premiumlaag van Azure Sleutelkluizen vereist.
  • Alleen voor Ultra Disks en Premium SSD v2-schijven:
    • (Preview) Door de gebruiker toegewezen beheerde identiteiten zijn beschikbaar voor Ultra Disks- en Premium SSD v2-schijven die zijn versleuteld met door de klant beheerde sleutels.
  • De meeste resources met betrekking tot uw door de klant beheerde sleutels (schijfversleutelingssets, VM's, schijven en momentopnamen) moeten zich in hetzelfde abonnement en dezelfde regio bevinden.
  • Schijven die zijn versleuteld met door de klant beheerde sleutels, kunnen alleen worden verplaatst naar een andere resourcegroep als de virtuele machine waaraan ze gekoppeld zijn, gedealloceerd is.
  • Schijven, momentopnamen en afbeeldingen die met klantbeheerde sleutels zijn versleuteld, kunnen niet tussen abonnementen worden verplaatst.
  • Beheerde schijven die momenteel of eerder zijn versleuteld met Azure Disk Encryption kunnen niet worden versleuteld met door de klant beheerde sleutels.
  • Kan maximaal 5000 schijfversleutelingssets per regio per abonnement maken.
  • Zie Preview: Gebruik door de klant beheerde sleutels voor het versleutelen van afbeeldingen voor meer informatie over het gebruik van door de klant beheerde sleutels met gedeelde afbeeldingsgalerijen.

Resources maken

Zodra de functie is ingeschakeld, moet u een DiskEncryptionSet configureren en een Azure Key Vault of een Azure Key Vault Managed HSM opzetten.

Azure Key Vault

  • Installeer de meest recente Azure CLI en meld u aan bij een Azure-account met az login.
  • Maak een Azure Key Vault en versleutelingssleutel.

Wanneer u de Key Vault maakt, moet u beveiliging tegen opschonen inschakelen. Beveiliging tegen opschonen zorgt ervoor dat een verwijderde sleutel pas definitief kan worden verwijderd als de bewaarperiode is verstreken. Met deze instellingen kunt u geen gegevens kwijtraken vanwege onbedoelde verwijdering. Deze instellingen zijn verplicht wanneer u een Key Vault gebruikt voor het versleutelen van beheerde schijven.

Belangrijk

Gebruik geen camelcase voor de regio; als u dit doet, kunt u problemen ondervinden bij het toewijzen van extra schijven aan de resource in de 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
  • Maak een DiskEncryptionSet. U kunt inschakelen-automatische-sleutelrotatie instellen op true om automatische rotatie van de sleutel in te schakelen. Wanneer u automatische rotatie inschakelt, werkt het systeem automatisch alle beheerde schijven, momentopnamen en installatiekopieën bij die verwijzen naar de schijfversleutelingsset om binnen één uur de nieuwe versie van de sleutel te gebruiken.
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
  • Geef de DiskEncryptionSet-resource toegang tot de sleutelkluis.

Opmerking

Het kan enkele minuten duren voordat Azure de identiteit van uw DiskEncryptionSet in uw Microsoft Entra ID maakt. Als er een foutbericht wordt weergegeven als 'Kan het Active Directory-object niet vinden' bij het uitvoeren van de volgende opdracht, wacht u enkele minuten en probeert u het opnieuw.

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 Beheerde HSM

U kunt ook een beheerde HSM gebruiken om uw sleutels te verwerken.

Hiervoor moet u de volgende vereisten voltooien:

Configuratie

Nadat u een beheerde HSM hebt gemaakt en machtigingen hebt toegevoegd, schakelt u opschoningsbeveiliging in en maakt u een versleutelingssleutel.

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

Maak vervolgens een 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

Verleen ten slotte de DiskEncryptionSet toegang tot de beheerde 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 u deze resources hebt gemaakt en geconfigureerd, kunt u deze gebruiken om uw beheerde schijven te beveiligen. De volgende koppelingen bevatten voorbeeldscripts, elk met een respectieve scenario, die u kunt gebruiken om uw beheerde schijven te beveiligen.

Voorbeelden

Een virtuele machine maken met een Marketplace-afbeelding, waarbij het besturingssysteem en de gegevensschijven worden versleuteld met door de klant beheerde sleutels.

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

Bestaande beheerde schijven versleutelen

Uw bestaande schijven mogen niet worden gekoppeld aan een actieve VM om ze te versleutelen met behulp van het volgende script:

rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName

diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId

Een virtuele machineschaalset maken met behulp van een Marketplace-afbeelding, waarbij het besturingssysteem en de gegevensschijven worden versleuteld met door de klant beheerde sleutels

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

Een lege schijf maken die is versleuteld met behulp van versleuteling aan de serverzijde met door de klant beheerde sleutels en deze koppelen aan een VIRTUELE machine

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

Wijzig de sleutel van een DiskEncryptionSet om de sleutel te roteren voor alle resources die verwijzen naar de 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

De status van versleuteling aan de serverzijde van een schijf zoeken

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

Belangrijk

Door de klant beheerde sleutels zijn afhankelijk van beheerde identiteiten voor Azure resources, een functie van Microsoft Entra ID. Wanneer u sleutels beheerd door de klant configureert, wordt achter de schermen automatisch een beheerde identiteit aan uw resources toegewezen. Als u vervolgens het abonnement, de resourcegroep of de beheerde schijf van de ene Microsoft Entra map naar een andere verplaatst, wordt de beheerde identiteit die is gekoppeld aan de beheerde schijven niet overgebracht naar de nieuwe tenant, zodat door de klant beheerde sleutels mogelijk niet meer werken. Zie Transferring van een abonnement tussen Microsoft Entra mappen voor meer informatie.

Volgende stappen