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.
- Momenteel niet ondersteund in Azure Government of Azure China.
- 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 Vault beheerde 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:
- Installeer de nieuwste Azure CLI en meld u aan bij een Azure-account in met az login.
- Een beheerde HSM maken en configureren.
- Wijs machtigingen toe aan een gebruiker, zodat ze uw beheerde HSM kunnen beheren.
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
- Verken de Azure Resource Manager-sjablonen voor het maken van versleutelde schijven met door de klant beheerde sleutels
- Machines repliceren met door de klant beheerde sleutels ingeschakelde schijven
- Herstel na noodgevallen van virtuele VMware-machines naar Azure instellen met PowerShell
- Herstel na noodgeval instellen naar Azure voor Hyper-V-VM's met behulp van PowerShell en Azure Resource Manager
- Zie Een beheerde schijf maken op basis van een momentopname met CLI voor een codevoorbeeld.