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

Van toepassing op: ✔️ Virtuele Linux-machines voor Windows-VM's ✔️ ✔️ Flexibele schaalsets Uniform-schaalsets ✔️

Met Azure Disk Storage kunt u uw eigen sleutels beheren bij gebruik van versleuteling aan de serverzijde (SSE) voor beheerde schijven, als 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 Azure PowerShell-module.
  • Alleen software- en HSM RSA-sleutels van grootten 2048-bits, 3072-bits en 4.096-bits worden ondersteund, geen andere sleutels of grootten.
    • HSM-sleutels vereisen de Premium-laag van Azure Key Vaults.
  • Alleen voor Ultra Disks en Premium SSD v2-schijven:
    • Momentopnamen die zijn gemaakt op basis van schijven die zijn versleuteld met versleuteling aan de serverzijde en door de klant beheerde sleutels moeten worden versleuteld met dezelfde door de klant beheerde sleutels.
    • Door de gebruiker toegewezen beheerde identiteiten worden niet ondersteund 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.
    • Azure Key Vaults kunnen worden gebruikt vanuit een ander abonnement, maar moeten zich in dezelfde regio bevinden als uw schijfversleutelingsset. Als preview-versie kunt u Azure Key Vaults van verschillende Microsoft Entra-tenants gebruiken.
  • Schijven die zijn versleuteld met door de klant beheerde sleutels, kunnen alleen worden verplaatst naar een andere resourcegroep als de virtuele machine waaraan ze zijn gekoppeld, ongedaan wordt gemaakt.
  • Schijven, momentopnamen en installatiekopieën die zijn versleuteld met door de klant beheerde sleutels, kunnen niet worden verplaatst tussen abonnementen.
  • Beheerde schijven die momenteel of eerder zijn versleuteld met Behulp van Azure Disk Encryption, kunnen niet worden versleuteld met door de klant beheerde sleutels.
  • Kan maximaal 5000 schijfversleutelingssets per regio per abonnement maken.
  • Zie Preview voor meer informatie over het gebruik van door de klant beheerde sleutels met galerieën met gedeelde installatiekopieën: door de klant beheerde sleutels gebruiken voor het versleutelen van afbeeldingen.

Resources maken

Zodra de functie is ingeschakeld, moet u een DiskEncryptionSet en een Door Azure Key Vaultbeheerde HSM instellen.

Azure Key Vault

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

Wanneer u de Sleutelkluis 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 sleutelkluis gebruikt voor het versleutelen van beheerde schijven.

Belangrijk

Als u dit doet, ondervindt u mogelijk problemen bij het toewijzen van extra schijven aan de resource in 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 voor het inschakelen van automatische sleutelrotatie gelijk aan waar instellen om automatische rotatie van de sleutel in te schakelen. Wanneer u automatische rotatie inschakelt, worden alle beheerde schijven, momentopnamen en installatiekopieën die naar de schijfversleuteling verwijzen, automatisch bijgewerkt 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
  • Verdeel de DiskEncryptionSet-resource toegang tot de sleutelkluis.

Notitie

Het kan enkele minuten duren voordat Azure de identiteit van uw DiskEncryptionSet in uw Microsoft Entra-id heeft gemaakt. Als er een foutbericht wordt weergegeven als 'Kan het Active Directory-object niet vinden' wanneer u de volgende opdracht uitvoert, 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

Beheerde HSM van Azure Key Vault

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 behulp van een Marketplace-installatiekopieën, het besturingssysteem en de gegevensschijven versleutelen 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

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

Een virtuele-machineschaalset maken met behulp van een Marketplace-installatiekopieën, het besturingssysteem en de gegevensschijven versleutelen 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 door de klant beheerde sleutels configureert, wordt automatisch een beheerde identiteit toegewezen aan uw resources onder de dekking. 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 overgedragen naar de nieuwe tenant, zodat door de klant beheerde sleutels mogelijk niet meer werken. Zie Een abonnement overdragen tussen Microsoft Entra-mappen voor meer informatie.

Volgende stappen