Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Windows VMs ✔️ Flexible Skalierungssätze ✔️ Einheitliche Skalierungssätze
mit Azure Disk Storage können Sie ihre eigenen Schlüssel verwalten, wenn Sie serverseitige Verschlüsselung (SSE) für verwaltete Datenträger verwenden, wenn Sie dies auswählen. Informationen zum Konzept der SSE mit kundenseitig verwalteten Schlüsseln sowie weitere Verschlüsselungstypen für verwaltete Datenträger finden Sie im Abschnitt Kundenseitig verwaltete Schlüssel in folgenden Artikeln zur Datenträgerverschlüsselung.
Beschränkungen
Vorerst gelten für vom Kunden verwaltete Schlüssel die folgenden Einschränkungen:
- Wenn dieses Feature für einen Datenträger mit inkrementellen Momentaufnahmen aktiviert ist, kann es auf diesem Datenträger oder seinen Momentaufnahmen nicht deaktiviert werden. Um dieses Problem zu umgehen, kopieren Sie alle Daten auf einen anderen verwalteten Datenträger ohne kundenseitig verwaltete Schlüssel. Dazu können Sie entweder die Azure CLI oder das modul Azure PowerShell verwenden.
- Ein Datenträger und alle zugehörigen inkrementellen Momentaufnahmen müssen denselben Datenträgerverschlüsselungssatz aufweisen.
- Es werden ausschließlich Software- und HSM RSA-Schlüssel mit den Größen 2.048 Bit, 3.072 Bit und 4.096 Bit unterstützt, keine anderen Schlüssel oder Größen.
- HSM-Schlüssel erfordern die Premium-Ebene der Azure-Schlüsseltresore.
- Nur für Ultra-Datenträger und Premium SSD v2-Datenträger:
- (Vorschau) Vom Benutzer zugewiesene verwaltete Identitäten sind für Ultra Disks und Premium SSD v2-Datenträger verfügbar, die mit vom Kunden verwalteten Schlüsseln verschlüsselt sind.
- Die meisten Ressourcen, die sich auf Ihre vom Kunden verwalteten Schlüssel (Datenträgerverschlüsselungssätze, VMs, Datenträger und Momentaufnahmen) beziehen, müssen sich im selben Abonnement und in derselben Region befinden.
- Azure Key Vaults können aus einem anderen Abonnement verwendet werden, müssen sich aber in derselben Region befinden wie Ihre Datenträgerverschlüsselungsgruppe. Azure Key Vaults in verschiedenen Microsoft Entra-Mandanten werden für verwaltete Datenträger unterstützt. Ausführliche Informationen finden Sie unter Verschlüsseln verwalteter Datenträger mit mandantenübergreifenden vom Kunden verwalteten Schlüsseln.
- Datenträger, die mit vom Kunden verwalteten Schlüsseln verschlüsselt sind, können nur zu einer anderen Ressourcengruppe wechseln, wenn die virtuelle Maschine, der sie zugeordnet sind, freigegeben ist.
- Mit kundenseitig verwalteten Schlüsseln verschlüsselte Datenträger, Momentaufnahmen und Images können nicht zwischen Abonnements verschoben werden.
- Verwaltete Datenträger, die derzeit oder zuvor mit Azure Disk Encryption verschlüsselt wurden, können nicht mit vom Kunden verwalteten Schlüsseln verschlüsselt werden.
- Pro Region und Abonnement können nur bis zu 5.000 Datenträgerverschlüsselungssätze erstellt werden.
- Informationen über die Verwendung von kundenseitig verwalteter Schlüssel mit Shared Image Gallerys finden Sie unter Vorschau: Verwenden von kundenseitig verwalteten Schlüsseln zum Verschlüsseln von Images.
Einrichten eines Azure Key Vault und DiskEncryptionSets mit automatischer Schlüsseldrehung
Um vom Kunden verwaltete Schlüssel mit SSE zu verwenden, müssen Sie eine Azure Key Vault und eine DiskEncryptionSet-Ressource einrichten.
Stellen Sie sicher, dass Sie die neueste Azure PowerShell-Version installiert haben und sich mit Connect-AzAccount bei einem Azure Konto angemeldet haben.
Erstellen Sie eine Instanz von Azure Key Vault und Verschlüsselungsschlüsseln.
Beim Erstellen der Key Vault Instanz müssen Sie den Löschschutz aktivieren. Der Schutz vor endgültigem Löschen stellt sicher, dass ein gelöschter Schlüssel erst nach Ablauf der Aufbewahrungsdauer dauerhaft gelöscht werden kann. Diese Einstellungen schützen Sie vor dem Verlust von Daten durch versehentliches Löschen. Diese Einstellungen sind obligatorisch, wenn Sie eine Key Vault zum Verschlüsseln von verwalteten Datenträgern verwenden.
$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"}Erstellen Sie eine DiskEncryptionSet-Instanz. Dieses Skript legt RotationToLatestKeyVersionEnabled auf $true fest, um die automatische Drehung des Schlüssels zu ermöglichen. Wenn Sie die automatische Rotation aktivieren, aktualisiert das System automatisch alle verwalteten Datenträger, Momentaufnahmen und Images, die auf den Datenträgerverschlüsselungssatz verweisen, sodass die neue Version des Schlüssels innerhalb einer Stunde verwendet wird.
$desConfig=New-AzDiskEncryptionSetConfig -Location $LocationName ` -SourceVaultId $keyVault.ResourceId ` -KeyUrl $key.Key.Kid ` -IdentityType SystemAssigned ` -RotationToLatestKeyVersionEnabled $true $des=New-AzDiskEncryptionSet -Name $diskEncryptionSetName ` -ResourceGroupName $ResourceGroupName ` -InputObject $desConfigGewähren Sie der DiskEncryptionSet-Ressource Zugriff auf den Schlüsseltresor.
Hinweis
Es kann einige Minuten dauern, bis Azure die Identität Ihres DiskEncryptionSets in Ihrer Microsoft Entra ID erstellt. Wenn beim Ausführen des folgenden Befehls eine Fehlermeldung wie "Das Active Directory Objekt nicht gefunden" angezeigt wird, warten Sie einige Minuten, und versuchen Sie es erneut.
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get
Verwenden eines Schlüsseltresors in einem anderen Abonnement
Alternativ können Sie Ihre Azure Key Vaults zentral über ein einzelnes Abonnement verwalten und die im Key Vault gespeicherten Schlüssel verwenden, um verwaltete Datenträger und Momentaufnahmen in anderen Abonnements in Ihrer Organisation zu verschlüsseln. Dadurch kann Ihr Sicherheitsteam eine stabile Sicherheitsrichtlinie für ein einzelnes Abonnement erzwingen und einfach verwalten.
Wichtig
Für diese Konfiguration müssen sich sowohl Ihr Key Vault als auch der Datenträgerverschlüsselungssatz in derselben Region befinden und denselben Mandanten verwenden.
Das folgende Skript ist ein Beispiel dafür, wie Sie einen Datenträgerverschlüsselungssatz für die Verwendung eines Schlüssels aus einem Key Vault in einem anderen Abonnement, aber derselben Region konfigurieren würden:
$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
Beispiele
Nachdem Sie diese Ressourcen erstellt und konfiguriert haben, können Sie sie zum Schützen Ihrer verwalteten Datenträger verwenden. Nachfolgend sehen Sie Beispielskripts mit jeweils einem entsprechenden Szenario, die Sie zum Schützen Ihrer verwalteten Datenträger verwenden können.
Erstellen einer VM mit einem Marketplace-Image, Verschlüsseln der Datenträger für Betriebssystem und Daten mit vom Kunden verwalteten Schlüsseln
Kopieren Sie das Skript, ersetzen Sie alle Beispielwerte durch Ihre eigenen Parameter, und führen Sie es dann aus.
$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
Erstellen eines leeren Datenträgers, der mit serverseitiger Verschlüsselung und vom Kunden verwalteten Schlüsseln verschlüsselt wird, und Anfügen an eine VM
Kopieren Sie das Skript, ersetzen Sie alle Beispielwerte durch Ihre eigenen Parameter, und führen Sie es dann aus.
$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
Verschlüsseln vorhandener verwalteter Datenträger
Die vorhandenen Datenträger dürfen nicht an einen laufenden virtuellen Computer angefügt werden, damit Sie sie mithilfe des folgenden Skripts verschlüsseln können:
$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
Verschlüsseln einer vorhandenen VM-Skalierungsgruppe (uniformer Orchestrierungsmodus) mit SSE und kundenseitig verwalteten Schlüsseln
Dieses Skript funktioniert nur für Skalierungsgruppen im einheitlichen Orchestrierungsmodus. Für Skalierungsgruppen im flexiblen Orchestrierungsmodus befolgen Sie Anleitungen unter „Verschlüsseln vorhandener verwalteter Datenträgern für jede VM“.
Kopieren Sie das Skript, ersetzen Sie alle Beispielwerte durch Ihre eigenen Parameter, und führen Sie es dann aus:
#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
Erstellen einer VM-Skalierungsgruppe mit einem Marketplace-Image, Verschlüsseln der Datenträger für Betriebssystem und Daten mit vom Kunden verwalteten Schlüsseln
Kopieren Sie das Skript, ersetzen Sie alle Beispielwerte durch Ihre eigenen Parameter, und führen Sie es dann aus.
Wichtig
Ab November 2023 werden VM-Skalierungssätze, die mit PowerShell und Azure CLI erstellt wurden, standardmäßig auf den flexiblen Orchestrierungsmodus festgelegt, wenn kein Orchestrierungsmodus angegeben wird. Weitere Informationen zu dieser Änderung und zu den aktionen, die Sie ausführen sollten, finden Sie unter 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
Ändern des Schlüssels eines DiskEncryptionSet, um den Schlüssel für alle Ressourcen, die auf das DiskEncryptionSet verweisen, zu rotieren
Kopieren Sie das Skript, ersetzen Sie alle Beispielwerte durch Ihre eigenen Parameter, und führen Sie es dann aus.
$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
Ermitteln des Status der serverseitigen Verschlüsselung eines Datenträgers
$ResourceGroupName="yourResourceGroupName"
$DiskName="yourDiskName"
$disk=Get-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName
$disk.Encryption.Type
Wichtig
Vom Kunden verwaltete Schlüssel basieren auf verwalteten Identitäten für Azure Ressourcen, ein Feature von Microsoft Entra ID. Wenn Sie vom Kunden verwaltete Schlüssel konfigurieren, wird Ihren Ressourcen im Hintergrund automatisch eine verwaltete Identität zugewiesen. Wenn Sie anschließend das Abonnement, die Ressourcengruppe oder den verwalteten Datenträger von einem Microsoft Entra Verzeichnis in ein anderes verschieben, wird die verwaltete Identität, die den verwalteten Datenträgern zugeordnet ist, nicht an den neuen Mandanten übertragen, sodass vom Kunden verwaltete Schlüssel möglicherweise nicht mehr funktionieren. Weitere Informationen finden Sie unter Transferieren eines Abonnements zwischen Microsoft Entra Verzeichnissen.
Nächste Schritte
- Erkunden Sie die Azure Resource Manager-Vorlagen zum Erstellen von verschlüsselten Datenträgern mit kundenverwalteten Schlüsseln
- Maschinen mit aktivierten Datenträgern, kundenseitig verwalteter Schlüssel, replizieren
- Einrichten der Desaster-Wiederherstellung von VMware-VMs in Azure mit PowerShell
- Richten Sie die Notfallwiederherstellung zu Azure für Hyper-V VMs mit PowerShell und Azure Resource Manager ein