Verwenden der Azure CLI zum Aktivieren der serverseitigen Verschlüsselung mit kundenseitig verwalteten Schlüsseln für verwaltete Datenträger

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

Mit Azure Disk Storage können Sie Ihre eigenen Schlüssel verwalten, wenn Sie die serverseitige Verschlüsselung (Server Side Encryption, SSE) für verwaltete Datenträger verwenden. Informationen zum Konzept der SSE mit kundenseitig verwalteten Schlüsseln sowie weitere Typen der Verschlüsselung von Daten auf verwalteten Datenträgern finden Sie im Abschnitt Vom Kunden verwaltete Schlüssel des Artikels 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. Sie können dies entweder mit der Azure CLI oder mit dem Azure PowerShell-Modul tun.
  • Es werden ausschließlich Software- und HSM RSA-Schlüssel der Größen 2.048 Bit, 3.072 Bit und 4.096 Bit unterstützt.
    • Für HSM-Schlüssel ist der Premium-Tarif von Azure Key Vault erforderlich.
  • Nur für Disk Ultra- oder SSD Premium v2-Datenträger:
    • Momentaufnahmen, die von Datenträgern erstellt werden, die mit serverseitiger Verschlüsselung und vom Kunden verwalteten Schlüsseln verschlüsselt wurden, müssen mit denselben vom Kunden verwalteten Schlüsseln verschlüsselt werden.
    • Benutzerseitig zugewiesene verwaltete Identitäten werden für Disk Ultra- und SSD Premium v2-Datenträger, die mit kundenseitig verwalteten Schlüsseln verschlüsselt sind, nicht unterstützt.
  • 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 Vault-Instanzen können aus einem anderen Abonnement verwendet werden, müssen sich aber in derselben Region wie Ihr Datenträgerverschlüsselungssatz befinden. Als Vorschau können Sie Azure Key Vaults in verschiedenen Microsoft Entra-Mandanten verwenden.
  • Datenträger, die mit kundenseitig verwalteten Schlüsseln verschlüsselt sind, können nur in eine andere Ressourcengruppe verschoben werden, wenn die Zuordnung der VM, an die sie angefügt sind, aufgehoben wird.
  • Mit kundenseitig verwalteten Schlüsseln verschlüsselte Datenträger, Momentaufnahmen und Images können nicht zwischen Abonnements verschoben werden.
  • Verwaltete Datenträger, die vorher oder aktuell mit Azure Disk Encryption verschlüsselt wurden, können nicht mit kundenseitig 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.

Erstellen von Ressourcen

Nach dem Aktivieren des Features müssen Sie ein DiskEncryptionSet und entweder einen Azure Key Vault oder ein per Azure Key Vault verwaltetes HSM einrichten.

Azure-Schlüsseltresor

  • Installieren Sie die neueste Version der Azure CLI, und melden Sie sich mit az login bei einem Azure-Konto an.
  • Erstellen einer Azure Key Vault-Instanz und eines Verschlüsselungsschlüssels.

Beim Erstellen der Key Vault-Instanz müssen Sie den Schutz vor endgültigem Löschen 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 ein Schlüsseltresor für die Verschlüsselung verwalteter Datenträger verwendet wird.

Wichtig

Verwenden Sie keine gemischte Groß-/Kleinschreibung für die Region, da ansonsten Probleme beim Zuweisen zusätzlicher Datenträger zur Ressource im Azure-Portal auftreten.

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
  • Erstellen Sie ein DiskEncryptionSet (Datenträgerverschlüsselungssatz). Sie können „enable-auto-key-rotation“ auf TRUE festlegen, um die automatische Rotation des Schlüssels zu aktivieren. Wenn Sie die automatische Rotation aktivieren, aktualisiert das System innerhalb von einer Stunde automatisch alle verwalteten Datenträger, Momentaufnahmen und Images, die auf den Datenträgerverschlüsselungssatz verweisen, damit die neue Version des Schlüssels verwendet wird.
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
  • Gewähren Sie der DiskEncryptionSet-Ressource Zugriff auf den Schlüsseltresor.

Hinweis

Es kann einige Minuten dauern, bis Azure die Identität des Datenträgerverschlüsselungssatzes in Microsoft Entra ID erstellt hat. Wenn Sie bei der Ausführung des folgenden Befehls einen ähnlichen Fehler wie „Active Directory-Objekt kann nicht gefunden werden“ erhalten, warten Sie einige Minuten, und versuchen Sie es erneut.

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

Über Azure Key Vault verwaltetes HSM

Alternativ können Sie ein verwaltetes HSM verwenden, um Ihre Schlüssel zu verarbeiten.

Dazu müssen die folgenden Voraussetzungen erfüllt sein:

Konfiguration

Nachdem Sie ein verwaltetes HSM erstellt und Berechtigungen hinzugefügt haben, aktivieren Sie den Schutz vor endgültigem Löschen, und erstellen Sie einen Verschlüsselungsschlüssel.

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

Erstellen Sie anschließend ein DiskEncryptionSet (Datenträgerverschlüsselungssatz).

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

Erteilen Sie dem DiskEncryptionSet schließlich Zugriff auf das verwaltete 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

Nachdem Sie diese Ressourcen erstellt und konfiguriert haben, können Sie diese zum Sichern Ihrer verwalteten Datenträger verwenden. Der folgende Link enthält Beispielskripts mit jeweils einem entsprechenden Szenario, die Sie zum Sichern Ihrer verwalteten Datenträger verwenden können.

Beispiele

Erstellen einer VM mit einem Marketplace-Image, Verschlüsseln der Datenträger für Betriebssystem und Daten mit vom Kunden verwalteten Schlüsseln

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

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

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

Erstellen einer VM-Skalierungsgruppe mit einem Marketplace-Image, Verschlüsseln der Datenträger für Betriebssystem und Daten mit vom Kunden verwalteten Schlüsseln

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

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

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

Ändern des Schlüssels eines DiskEncryptionSet, um den Schlüssel für alle Ressourcen, die auf das DiskEncryptionSet verweisen, zu rotieren


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

Ermitteln des Status der serverseitigen Verschlüsselung eines Datenträgers

az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv

Wichtig

Kundenseitig verwaltete Schlüssel basieren auf den verwalteten Identitäten von Azure-Ressourcen, einem 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 Verzeichnis verschieben, wird die den verwalteten Datenträgern zugeordnete verwaltete Identität nicht an den neuen Mandanten übertragen, sodass kundenseitig verwaltete Schlüssel möglicherweise nicht mehr funktionieren. Weitere Informationen finden Sie unter Übertragen eines Abonnements zwischen Microsoft Entra-Verzeichnissen.

Nächste Schritte