Erstellen und Konfigurieren eines Schlüsseltresors für Azure Disk Encryption

Azure Disk Encryption verwendet Azure Key Vault zum Steuern und Verwalten von Verschlüsselungsschlüsseln und Geheimnissen für die Datenträgerverschlüsselung. Weitere Informationen zu Schlüsseltresoren finden Sie unter Erste Schritte mit Azure Key Vault und Schützen eines Schlüsseltresors.

Das Erstellen und Konfigurieren eines Schlüsseltresors für Azure Disk Encryption umfasst drei Schritte:

  1. Erstellen einer Ressourcengruppe (bei Bedarf)
  2. Erstellen eines Schlüsseltresors
  3. Festlegen von erweiterten Zugriffsrichtlinien für den Schlüsseltresor

Sie können auch einen Schlüssel für die Schlüsselverschlüsselung (Key Encryption Key, KEK) generieren oder importieren.

Installieren von Tools und Herstellen einer Verbindung mit Azure

Die Schritte in diesem Artikel können mit der Azure-Befehlszeilenschnittstelle, dem Azure PowerShell-Az-Modul oder dem Azure-Portal abgeschlossen werden.

Erstellen einer Ressourcengruppe

Wenn Sie bereits über eine Ressourcengruppe verfügen, können Sie mit dem Erstellen eines Schlüsseltresors fortfahren.

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie eine Ressourcengruppe mit dem Azure CLI-Befehl az group create, dem Azure PowerShell-Befehl New-AzResourceGroup oder dem Azure-Portal.

Azure CLI

az group create --name "myResourceGroup" --location eastus

Azure PowerShell

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Erstellen eines Schlüsseltresors

Wenn Sie bereits über einen Schlüsseltresor verfügen, können Sie mit dem Festlegen von erweiterten Zugriffsrichtlinien für Schlüsseltresore fortfahren.

Erstellen Sie mit dem Azure CLI-Befehl az keyvault create, dem Azure PowerShell-Befehl New-AzKeyvault, dem Azure-Portal oder einer Resource Manager-Vorlage einen Schlüsseltresor.

Warnung

Um sicherzustellen, dass die Verschlüsselungsgeheimnisse die Regionsgrenzen nicht verlassen, müssen Sie einen Schlüsseltresor erstellen und verwenden, der sich in derselben Region und in demselben Mandanten wie die zu verschlüsselnden virtuellen Computer befindet.

Jeder Schlüsseltresor muss einen eindeutigen Namen haben. Ersetzen Sie in den folgenden Beispielen <your-unique-keyvault-name> durch den Namen Ihres Schlüsseltresors.

Azure CLI

Fügen Sie beim Erstellen eines Schlüsseltresors mithilfe der Azure CLI das Flag --enabled-for-disk-encryption hinzu.

az keyvault create --name "<your-unique-keyvault-name>" --resource-group "myResourceGroup" --location "eastus" --enabled-for-disk-encryption

Azure PowerShell

Fügen Sie beim Erstellen eines Schlüsseltresors mithilfe von Azure-PowerShell das Flag „-EnabledForDiskEncryption“ hinzu.

New-AzKeyvault -name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "eastus" -EnabledForDiskEncryption

Resource Manager-Vorlage

Sie können auch mit der Resource Manager-Vorlage einen Schlüsseltresor erstellen.

  1. Klicken Sie in der Azure-Schnellstartvorlage auf In Azure bereitstellen.
  2. Wählen Sie Abonnement, Ressourcengruppe, Ressourcengruppenstandort, Schlüsseltresorname, Objekt-ID, rechtliche Bedingungen und Vereinbarung aus, und klicken Sie auf Kaufen.

Festlegen von erweiterten Zugriffsrichtlinien für Schlüsseltresore

Wichtig

Für neu erstellte Schlüsseltresore ist standardmäßig vorläufiges Löschen festgelegt. Wenn Sie einen bereits vorhandenen Schlüsseltresor verwenden, müssen Sie vorläufiges Löschen aktivieren. Siehe Übersicht über die Azure Key Vault-Funktion für vorläufiges Löschen.

Die Azure-Plattform benötigt Zugriff auf die Verschlüsselungsschlüssel oder geheimen Schlüssel in Ihrem Schlüsseltresor, um sie für den virtuellen Computer zur Verfügung zu stellen, damit die Volumes gestartet und entschlüsselt werden können.

Wenn Sie Ihren Schlüsseltresor nicht zum Zeitpunkt der Erstellung für Datenträgerverschlüsselung, Bereitstellung oder Vorlagenbereitstellung aktiviert haben (wie im vorherigen Schritt gezeigt), müssen Sie die erweiterten Zugriffsrichtlinien aktualisieren.

Azure CLI

Verwenden Sie az keyvault update, um die Datenträgerverschlüsselung für den Schlüsseltresor zu aktivieren.

  • Aktivieren von Key Vault für die Datenträgerverschlüsselung: „Enabled-for-disk-encryption“ ist erforderlich.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-disk-encryption "true"
    
  • Aktivieren von Key Vault für die Bereitstellung (falls erforderlich): Der Ressourcenanbieter „Microsoft.Compute“ wird aktiviert, um Geheimnisse aus diesem Schlüsseltresor abzurufen, wenn dieser Schlüsseltresor bei der Ressourcenerstellung (z. B. beim Erstellen einer VM) referenziert wird.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-deployment "true"
    
  • Aktivieren von Key Vault für die Vorlagenbereitstellung (falls erforderlich): Der Resource Manager kann Geheimnisse aus dem Tresor abrufen.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-template-deployment "true"
    

Azure PowerShell

Verwenden Sie das PowerShell-Cmdlet für Schlüsseltresore Set-AzKeyVaultAccessPolicy, um die Datenträgerverschlüsselung für den Schlüsseltresor zu aktivieren.

  • Aktivieren von Key Vault für die Datenträgerverschlüsselung: „EnabledForDiskEncryption“ ist für die Verwendung von Azure Disk Encryption erforderlich.

    Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDiskEncryption
    
  • Aktivieren von Key Vault für die Bereitstellung (falls erforderlich): Der Ressourcenanbieter „Microsoft.Compute“ wird aktiviert, um Geheimnisse aus diesem Schlüsseltresor abzurufen, wenn dieser Schlüsseltresor bei der Ressourcenerstellung (z. B. beim Erstellen einer VM) referenziert wird.

     Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDeployment
    
  • Aktivieren von Key Vault für die Vorlagenbereitstellung (falls erforderlich): Azure Resource Manager kann aus diesem Schlüsseltresor Geheimnisse abrufen, wenn dieser Schlüsseltresor in einer Vorlagenbereitstellung referenziert wird.

    Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForTemplateDeployment
    

Azure-Portal

  1. Wählen Sie Ihren Schlüsseltresor aus, und wechseln Sie zu Zugriffsrichtlinien.

  2. Aktivieren Sie unter „Zugriff ermöglichen auf“ das Kontrollkästchen Azure Disk Encryption für Volumeverschlüsselung.

  3. Wählen Sie ggf. Azure Virtual Machines für Bereitstellung und/oder Azure Resource Manager für Vorlagenbereitstellung aus.

  4. Klicken Sie auf Speichern.

    Erweiterte Zugriffsrichtlinien für Schlüsseltresore in Azure

Azure Disk Encryption and automatische Rotation

In Azure Key Vault ist jetzt zwar eine automatische Schlüsselrotation verfügbar, diese ist jedoch derzeit nicht mit Azure Disk Encryption kompatibel. Insbesondere verwendet Azure Disk Encryption weiterhin den ursprünglichen Verschlüsselungsschlüssel, auch nachdem er automatisch rotiert wurde.

Beim Rotieren eines Verschlüsselungsschlüssels tritt kein Fehler in Azure Disk Encryption auf, beim Deaktivieren des „alten“ Verschlüsselungsschlüssels (d. h. des Schlüssels, der noch von Azure Disk Encryption verwendet wird) jedoch schon.

Einrichten eines Schlüssels zur Schlüsselverschlüsselung (Key Encryption Key, KEK)

Wichtig

Das Konto, das zum Aktivieren der Datenträgerverschlüsselung über den Schlüsseltresor ausgeführt wird, muss über Leseberechtigungen verfügen.

Wenn Sie Verschlüsselungsschlüssel mit einem Schlüssel für die Schlüsselverschlüsselung zusätzlich schützen möchten, fügen Sie Ihrem Schlüsseltresor einen Schlüsselverschlüsselungsschlüssel hinzu. Wenn ein Schlüsselverschlüsselungsschlüssel angegeben wird, verwendet Azure Disk Encryption diesen, um Verschlüsselungsgeheimnisse vor dem Schreiben in Key Vault zu umschließen.

Sie können einen neuen KEK mit dem Azure CLI-Befehl az keyvault key create, dem Azure PowerShell-Cmdlet Add-AzKeyVaultKey oder dem Azure-Portal generieren. Sie müssen einen Schlüssel des Typs RSA generieren, da Azure Disk Encryption derzeit keine Elliptic Curve-Schlüssel unterstützt.

Sie können den KEK auch aus Ihrem lokalen Hardwaresicherheitsmodul (HSM) für die Schlüsselverwaltung importieren. Weitere Informationen finden Sie in der Key Vault-Dokumentation.

Ihre URLs für den KEK müssen mit einer Versionsangabe versehen sein. Azure erzwingt diese Einschränkung der Versionsverwaltung. Gültige URLs für Geheimnisse und KEKs finden Sie in den folgenden Beispielen:

Azure CLI

Generieren Sie mit dem Azure CLI-Befehl az keyvault key create einen neuen KEK, und speichern Sie ihn in Ihrem Schlüsseltresor.

az keyvault key create --name "myKEK" --vault-name "<your-unique-keyvault-name>" --kty RSA --size 4096

Sie können stattdessen auch einen privaten Schlüssel mithilfe des Befehls az keyvault key import in der Azure-Befehlszeilenschnittstelle importieren:

In beiden Fällen geben Sie den Namen des KEK im Parameter --key-encryption-key für den Azure CLI-Befehl az vm encryption enable an.

az vm encryption enable -g "MyResourceGroup" --name "myVM" --disk-encryption-keyvault "<your-unique-keyvault-name>" --key-encryption-key "myKEK"

Azure PowerShell

Generieren Sie mit dem Azure PowerShell-Cmdlet Add-AzKeyVaultKey einen neuen KEK, und speichern Sie ihn in Ihrem Schlüsseltresor.

Add-AzKeyVaultKey -Name "myKEK" -VaultName "<your-unique-keyvault-name>" -Destination "HSM" -Size 4096

Sie können stattdessen auch einen privaten Schlüssel mithilfe des Azure PowerShell-Befehls az keyvault key import importieren.

In beiden Fällen geben Sie die ID Ihres KEK-Schlüsseltresors und die URL Ihres KEK in den Parametern „-KeyEncryptionKeyVaultId“ und „-KeyEncryptionKeyUrl“ des Azure PowerShell-Befehls Set-AzVMDiskEncryptionExtension an. In diesem Beispiel wird davon ausgegangen, dass Sie für den Datenträger-Verschlüsselungsschlüssel und den KEK denselben Schlüsseltresor verwenden.

$KeyVault = Get-AzKeyVault -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup"
$KEK = Get-AzKeyVaultKey -VaultName "<your-unique-keyvault-name>" -Name "myKEK"

Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyUrl $KEK.Id -SkipVmBackup -VolumeType All

Nächste Schritte