Anteckning
Å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: ✔️ för 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 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 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:
- (Förhandsversion) Användartilldelade hanterade identiteter är tillgängliga för Ultra Disks- och Premium SSD v2-diskar som krypterats med kundhanterade nycklar.
- (Förhandsversion) Du kan kryptera 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.
- 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 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 ett 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 av Azure PowerShell och att du är inloggad på ett Azure-konto med Connect-AzAccount
Skapa en instans av Azure Key Vault och krypteringsnyckeln.
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 ett Key Vault för att kryptera 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 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.
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 nyckelvalvet 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 ett nyckelvalv 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 använda 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 avsnittet "Icke-bakåtkompatibel ändring för VMSS PowerShell/CLI-kunder" på 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 kundhanterade nycklar
- Replikera maskiner med diskar som har kundhanterade nycklar
- Konfigurera haveriberedskap för virtuella VMware-datorer till Azure med PowerShell
- Konfigurera katastrofåterställning till Azure för Hyper-V virtuella datorer med hjälp av PowerShell och Azure Resource Manager