Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✔️ Windows virtuella datorer ✔️ Flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar
Azure-disklagring gör att du kan 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 och 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 antingen med modulen Azure CLI eller modulen Azure PowerShell.
- 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 premienivå för Azure Key Vault.
- Endast för Ultra Disks- och Premium SSD v2-diskar:
- (Förhandsversion) Användartilldelade hanterade identiteter är tillgängliga för Ultra Disks- och Premium SSD v2-diskar som krypterats med kundhanterade nycklar.
- 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. Azure Key Vaults i olika Microsoft Entra klienter stöds för hanterade diskar. Mer information finns i Kryptera hanterade diskar med kundhanterade nycklar mellan klientorganisationer.
- Diskar som krypterats 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.
Konfigurera en Azure Key Vault och DiskEncryptionSet med automatisk nyckelrotation
Om du vill använda kundhanterade nycklar med SSE måste du konfigurera en Azure Key Vault och en DiskEncryptionSet-resurs.
Kontrollera att du har installerat den senaste versionen Azure PowerShell och att du är inloggad på ett Azure-konto i med Connect-AzAccount
Skapa en instans av Azure Key Vault och krypteringsnyckel.
När du skapar Key Vault-instansen 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 en Key Vault för kryptering av hanterade diskar.
$ResourceGroupName="yourResourceGroupName" $LocationName="westcentralus" $keyVaultName="yourKeyVaultName" $keyName="yourKeyName" $keyDestination="Software" $diskEncryptionSetName="yourDiskEncryptionSetName" $keyVault = New-AzKeyVault -Name $keyVaultName ` -ResourceGroupName $ResourceGroupName ` -Location $LocationName ` -EnablePurgeProtection $key = Add-AzKeyVaultKey -VaultName $keyVaultName ` -Name $keyName ` -Destination $keyDestination Set-AzKeyVaultKeyRotationPolicy -VaultName $keyVaultName -KeyName $keyName -ExpiresIn P2Y -KeyRotationLifetimeAction @{Action="Rotate";TimeBeforeExpiry = "P18M"}Skapa en instans av en DiskEncryptionSet. Det här skriptet anger RotationToLatestKeyVersionEnabled 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.
$desConfig=New-AzDiskEncryptionSetConfig -Location $LocationName ` -SourceVaultId $keyVault.ResourceId ` -KeyUrl $key.Key.Kid ` -IdentityType SystemAssigned ` -RotationToLatestKeyVersionEnabled $true $des=New-AzDiskEncryptionSet -Name $diskEncryptionSetName ` -ResourceGroupName $ResourceGroupName ` -InputObject $desConfigGe resursen DiskEncryptionSet åtkomst till nyckelvalvet.
Anmärkning
Det kan ta några minuter för Azure att skapa identiteten för DiskEncryptionSet i Microsoft Entra ID. Om du får ett felmeddelande som "Det går inte att hitta služba Active Directory-objektet" när du kör följande kommando väntar du några minuter och försöker igen.
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get
Använda ett nyckelvalv i en annan prenumeration
Du kan också hantera dina Azure Key Vaults centralt från en enda prenumeration och använda nycklarna som lagras i Key Vault för att kryptera hanterade diskar och ögonblicksbilder i andra prenumerationer i din organisation. På så sätt kan ditt säkerhetsteam framtvinga och enkelt hantera en robust säkerhetsprincip för en enda prenumeration.
Viktigt!
För den här konfigurationen måste både din Key Vault och diskkrypteringsuppsättningen finnas i samma region och använda samma klientorganisation.
Följande skript är ett exempel på hur du konfigurerar en diskkrypteringsuppsättning för att använda en nyckel från en Key Vault i en annan prenumeration, men samma region:
$sourceSubscriptionId="<sourceSubID>"
$sourceKeyVaultName="<sourceKVName>"
$sourceKeyName="<sourceKeyName>"
$targetSubscriptionId="<targetSubID>"
$targetResourceGroupName="<targetRGName>"
$targetDiskEncryptionSetName="<targetDiskEncSetName>"
$location="<targetRegion>"
Set-AzContext -Subscription $sourceSubscriptionId
$key = Get-AzKeyVaultKey -VaultName $sourceKeyVaultName -Name $sourceKeyName
Set-AzContext -Subscription $targetSubscriptionId
$desConfig=New-AzDiskEncryptionSetConfig -Location $location `
-KeyUrl $key.Key.Kid `
-IdentityType SystemAssigned `
-RotationToLatestKeyVersionEnabled $true
$des=New-AzDiskEncryptionSet -Name $targetDiskEncryptionSetName `
-ResourceGroupName $targetResourceGroupName `
-InputObject $desConfig
Exempel
Nu när du har skapat och konfigurerat dessa resurser kan du använda dem för att skydda dina hanterade diskar. Följande är exempelskript, var och en med ett respektive scenario, som du kan använda för att skydda dina hanterade diskar.
Skapa en virtuell dator med en Marketplace-avbildning och kryptera operativsystemet och datadiskarna med kundhanterade nycklar
Kopiera skriptet, ersätt alla exempelvärden med dina egna parametrar och kör det sedan.
$VMLocalAdminUser = "yourVMLocalAdminUserName"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "yourRegion"
$ResourceGroupName = "yourResourceGroupName"
$ComputerName = "yourComputerName"
$VMName = "yourVMName"
$VMSize = "yourVMSize"
$diskEncryptionSetName="yourdiskEncryptionSetName"
$NetworkName = "yourNetworkName"
$NICName = "yourNICName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2012-R2-Datacenter' -Version latest
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $($VMName +"_OSDisk") -DiskEncryptionSetId $diskEncryptionSet.Id -CreateOption FromImage
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name $($VMName +"DataDisk1") -DiskSizeInGB 128 -StorageAccountType Premium_LRS -CreateOption Empty -Lun 0 -DiskEncryptionSetId $diskEncryptionSet.Id
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose
Skapa en tom disk krypterad med kryptering på serversidan med kundhanterade nycklar och koppla den till en virtuell dator
Kopiera skriptet, ersätt alla exempelvärden med dina egna parametrar och kör det sedan.
$vmName = "yourVMName"
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$diskName = "yourDiskName"
$diskSKU = "Premium_LRS"
$diskSizeinGiB = 30
$diskLUN = 1
$diskEncryptionSetName="yourDiskEncryptionSetName"
$vm = Get-AzVM -Name $vmName -ResourceGroupName $ResourceGroupName
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
$vm = Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Empty -DiskSizeInGB $diskSizeinGiB -StorageAccountType $diskSKU -Lun $diskLUN -DiskEncryptionSetId $diskEncryptionSet.Id
Update-AzVM -ResourceGroupName $ResourceGroupName -VM $vm
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"
$diskEncryptionSet = Get-AzDiskEncryptionSet -ResourceGroupName $rgName -Name $diskEncryptionSetName
New-AzDiskUpdateConfig -EncryptionType "EncryptionAtRestWithCustomerKey" -DiskEncryptionSetId $diskEncryptionSet.Id | Update-AzDisk -ResourceGroupName $rgName -DiskName $diskName
Kryptera en befintlig skala av virtuella maskiner (enhetligt orkestreringsläge) med serverbaserad kryptering (SSE) och kundhanterade nycklar.
Det här skriptet fungerar endast för skalningsuppsättningar i enhetligt orkestreringsläge. För skalningsuppsättningar i flexibelt orkestreringsläge, krypterar du befintliga hanterade diskar för varje virtuell dator.
Kopiera skriptet, ersätt alla exempelvärden med dina egna parametrar och kör det sedan:
#set variables
$vmssname = "name of the vmss that is already created"
$diskencryptionsetname = "name of the diskencryptionset already created"
$vmssrgname = "vmss resourcegroup name"
$diskencryptionsetrgname = "diskencryptionset resourcegroup name"
#get vmss object and create diskencryptionset object attach to vmss os disk
$ssevmss = get-azvmss -ResourceGroupName $vmssrgname -VMScaleSetName $vmssname
$ssevmss.VirtualMachineProfile.StorageProfile.OsDisk.ManagedDisk.DiskEncryptionSet = New-Object -TypeName Microsoft.Azure.Management.Compute.Models.DiskEncryptionSetParameters
#get diskencryption object and retrieve the resource id
$des = Get-AzDiskEncryptionSet -ResourceGroupName $diskencryptionsetrgname -Name $diskencryptionsetname
write-host "the diskencryptionset resource id is:" $des.Id
#associate DES resource id to os disk and update vmss
$ssevmss.VirtualMachineProfile.StorageProfile.OsDisk.ManagedDisk.DiskEncryptionSet.id = $des.Id
$ssevmss | update-azvmss
Skapa en VM-skalningsuppsättning med en Marketplace-avbildning och kryptera operativsystemet och datadiskarna med kundhanterade nycklar
Kopiera skriptet, ersätt alla exempelvärden med dina egna parametrar och kör det sedan.
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara flexibelt 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 Breaking Change for VMSS PowerShell/CLI Customers – Microsoft Community Hub
$VMLocalAdminUser = "yourLocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString Password@123 -AsPlainText -Force
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$ComputerNamePrefix = "yourComputerNamePrefix"
$VMScaleSetName = "yourVMSSName"
$VMSize = "Standard_DS3_v2"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$NetworkName = "yourVNETName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$ipConfig = New-AzVmssIpConfig -Name "myIPConfig" -SubnetId $Vnet.Subnets[0].Id
$VMSS = New-AzVmssConfig -Location $LocationName -SkuCapacity 2 -SkuName $VMSize -UpgradePolicyMode 'Automatic' -OrchestrationMode 'Uniform'
$VMSS = Add-AzVmssNetworkInterfaceConfiguration -Name "myVMSSNetworkConfig" -VirtualMachineScaleSet $VMSS -Primary $true -IpConfiguration $ipConfig
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
# Enable encryption at rest with customer managed keys for OS disk by setting DiskEncryptionSetId property
$VMSS = Set-AzVmssStorageProfile $VMSS -OsDiskCreateOption "FromImage" -DiskEncryptionSetId $diskEncryptionSet.Id -ImageReferenceOffer 'WindowsServer' -ImageReferenceSku '2012-R2-Datacenter' -ImageReferenceVersion latest -ImageReferencePublisher 'MicrosoftWindowsServer'
$VMSS = Set-AzVmssOsProfile $VMSS -ComputerNamePrefix $ComputerNamePrefix -AdminUsername $VMLocalAdminUser -AdminPassword $VMLocalAdminSecurePassword
# Add a data disk encrypted at rest with customer managed keys by setting DiskEncryptionSetId property
$VMSS = Add-AzVmssDataDisk -VirtualMachineScaleSet $VMSS -CreateOption Empty -Lun 1 -DiskSizeGB 128 -StorageAccountType Premium_LRS -DiskEncryptionSetId $diskEncryptionSet.Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
New-AzVmss -VirtualMachineScaleSet $VMSS -ResourceGroupName $ResourceGroupName -VMScaleSetName $VMScaleSetName
Ändra nyckeln för en DiskEncryptionSet för att rotera nyckeln för alla resurser som refererar till DiskEncryptionSet
Kopiera skriptet, ersätt alla exempelvärden med dina egna parametrar och kör det sedan.
$ResourceGroupName="yourResourceGroupName"
$keyVaultName="yourKeyVaultName"
$keyName="yourKeyName"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$keyVault = Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $ResourceGroupName
$keyVaultKey = Get-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName
Update-AzDiskEncryptionSet -Name $diskEncryptionSetName -ResourceGroupName $ResourceGroupName -SourceVaultId $keyVault.ResourceId -KeyUrl $keyVaultKey.Id
Hitta status för kryptering på serversidan för en disk
$ResourceGroupName="yourResourceGroupName"
$DiskName="yourDiskName"
$disk=Get-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName
$disk.Encryption.Type
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 bakom kulisserna. 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
- Utforska Azure Resource Manager-mallarna för att skapa krypterade diskar med nycklar som hanteras av kunden
- Replikera maskiner med diskar som har kundhanterade nycklar
- Konfigurera katastrofåterställning av VMware-Virtual Machines till Azure med PowerShell
- Ställ in katastrofåterställning till Azure för Hyper-V VM:er med PowerShell och Azure Resource Manager