Erstellen und Konfigurieren eines Schlüsseltresors für Azure Disk Encryption mit Microsoft Entra ID (vorheriges Release) für Linux-VMs

Wichtig

Die Azure Disk Encryption wird am 15. September 2028 eingestellt. Bis zu diesem Datum können Sie die Azure Disk Encryption ohne Unterbrechung weiterhin verwenden. Am 15. September 2028 werden ADE-fähige Workloads weiterhin ausgeführt, verschlüsselte Datenträger werden jedoch nach dem Neustart des virtuellen Computers nicht entsperrt, was zu Dienstunterbrechungen führt.

Verwenden Sie die Verschlüsselung auf dem Host für neue virtuelle Computer, oder ziehen Sie vertrauliche VM-Größen mit Betriebssystemdatenträgerverschlüsselung für vertrauliche Computerarbeitslasten in Betracht. Alle ADE-fähigen VMs (einschließlich Sicherungen) müssen vor dem Deaktivierungsdatum zur Verschlüsselung auf dem Host migriert werden, um Dienstunterbrechungen zu vermeiden. Ausführliche Informationen finden Sie unter Migrieren von Azure Disk Encryption zu Verschlüsselung auf dem Host .

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

Beim neuen Release von Azure Disk Encryption muss kein Microsoft Entra-Anwendungsparameter mehr angegeben werden, um die VM-Datenträgerverschlüsselung zu aktivieren. Sie müssen beim neuen Release während des Schritts zum Aktivieren der Verschlüsselung keine Microsoft Entra-Anmeldeinformationen mehr angeben. Alle neuen VMs müssen mit dem neuen Release und ohne die Microsoft Entra-Anwendungsparameter verschlüsselt werden. Anweisungen zum Aktivieren der VM-Datenträgerverschlüsselung mithilfe der neuen Version finden Sie unter Azure Disk Encryption. VMs, die bereits mit Microsoft Entra-Anwendungsparametern verschlüsselt wurden, werden weiterhin unterstützt und sollten weiterhin mit der Microsoft Entra-Syntax verwaltet werden.

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 mit Microsoft Entra ID (vorheriges Release) umfasst drei Schritte:

  1. Erstellen Sie eine Key Vault.
  2. Einrichten einer Microsoft Entra-Anwendung und eines Dienstprinzipals
  3. Festlegen der Zugriffsrichtlinie für den Schlüsseltresor für die Microsoft Entra-App
  4. Legen Sie die erweiterten Zugriffsrichtlinien für den Schlüsseltresor fest.

Sie können auch einen Schlüsselverschlüsselungsschlüssel (KEY Encryption Key, KEK) generieren oder importieren.

Weitere Informationen zum Installieren von Tools und Herstellen einer Verbindung mit Azure finden Sie im Hauptartikel Erstellen und Konfigurieren eines Schlüsseltresors für Azure Disk Encryption.

Erstellen eines Schlüsseltresors

Azure Disk Encryption ist in Azure Key Vault integriert, damit Sie die Verschlüsselungsschlüssel und Geheimnisse für die Datenträgerverschlüsselung in Ihrem Key Vault-Abonnement steuern und verwalten können. Sie können für Azure Disk Encryption einen neuen Schlüsseltresor erstellen oder einen bereits vorhandenen verwenden. Weitere Informationen zu Schlüsseltresoren finden Sie unter Erste Schritte mit Azure Key Vault und Schützen eines Schlüsseltresors. Sie können eine Resource Manager Vorlage, Azure PowerShell oder die Azure CLI verwenden, um eine Key Vault zu erstellen.

Warnung

Um sicherzustellen, dass die Verschlüsselungsgeheimnisse keine regionalen Grenzen überschreiten, benötigt Azure Disk Encryption den Schlüsseltresor und die virtuellen Computer, die in derselben Region zugeordnet werden sollen. Erstellen und verwenden Sie einen Schlüsseltresor, der sich in derselben Region wie die zu verschlüsselnde VM befindet.

Erstellen eines Schlüsseltresors mit PowerShell

Sie können mit Azure PowerShell mit dem Cmdlet New-AzKeyVault einen Schlüsseltresor erstellen. Weitere Cmdlets für Key Vault finden Sie unter Az.KeyVault.

  1. Erstellen Sie ggf. mit New-AzResourceGroup eine neue Ressourcengruppe. Verwenden Sie Get-AzLocation, um Standorte von Rechenzentren aufzulisten.

    # Get-AzLocation
    New-AzResourceGroup –Name 'MyKeyVaultResourceGroup' –Location 'East US'
    
  2. Erstellen Sie mit New-AzKeyVault einen neuen Schlüsseltresor.

    New-AzKeyVault -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -Location 'East US'
    
  3. Notieren Sie Tresorname, Ressourcengruppenname, Ressourcen-ID, Vault-URI und Objekt-ID, die zur späteren Verwendung beim Verschlüsseln der Datenträger zurückgegeben werden.

Erstellen eines Schlüsseltresors mit der Azure-Befehlszeilenschnittstelle

Sie können Ihren Schlüsseltresor mit Azure CLI verwalten, indem Sie die Az keyvault-Befehle verwenden. Verwenden Sie az keyvault create, um einen Schlüsseltresor zu erstellen.

  1. Erstellen Sie ggf. mit az group create eine neue Ressourcengruppe. Verwenden Sie az account list-locations, um die Standorte aufzulisten.

    # To list locations: az account list-locations --output table
    az group create -n "MyKeyVaultResourceGroup" -l "East US"
    
  2. Erstellen Sie einen neuen Schlüsseltresor mithilfe von az keyvault create.

    az keyvault create --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --location "East US"
    
  3. Notieren Sie Tresorname (Name), Ressourcengruppenname, Ressourcen-ID (ID), Vault-URI und Objekt-ID, die zur späteren Verwendung zurückgegeben werden.

Erstellen eines Schlüsseltresors mit einer Resource Manager-Vorlage

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

  1. Wählen Sie in der Azure-Schnellstartvorlage In Azure bereitstellen aus.
  2. Wählen Sie das Abonnement, die Ressourcengruppe, den Standort der Ressourcengruppe, den Schlüsseltresornamen, die Objekt-ID, die rechtlichen Bedingungen und die Vereinbarung aus, und wählen Sie dann Kaufen aus.

Einrichten einer Microsoft Entra-App und eines Dienstprinzipals

Wenn Sie die Verschlüsselung auf einer ausgeführten VM in Azure aktivieren müssen, generiert Azure Disk Encryption die Verschlüsselungsschlüssel und schreibt sie in Ihren Schlüsseltresor. Das Verwalten von Verschlüsselungsschlüsseln im Schlüsseltresor erfordert die Microsoft Entra-Authentifizierung. Erstellen Sie hierfür eine Microsoft Entra-Anwendung. Zu Authentifizierungszwecken können Sie entweder die auf einem geheimen Clientschlüssel basierende Authentifizierung oder die auf einem Clientzertifikat basierende Microsoft Entra-Authentifizierung verwenden.

Einrichten einer Microsoft Entra-App und eines Dienstprinzipals mit Azure PowerShell

Für die folgenden Befehle rufen Sie das Azure AD PowerShell-Modul und verwenden Sie es.

  1. Verwenden Sie das PowerShell-Cmdlet New-AzADApplication, um eine Microsoft Entra-Anwendung zu erstellen. Die Werte für „MyApplicationHomePage“ und „MyApplicationUri“ können beliebig sein.

    $aadClientSecret = "My AAD client secret"
    $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force
    $azureAdApplication = New-AzADApplication -DisplayName "My Application Display Name" -HomePage "https://MyApplicationHomePage" -IdentifierUris "https://MyApplicationUri" -Password $aadClientSecretSec
    $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor
    
  2. „$azureAdApplication.ApplicationId“ ist die Microsoft Entra-ClientID und „$aadClientSecret“ ist der geheime Clientschlüssel. Sie benötigen diese Angaben später zum Aktivieren von Azure Disk Encryption. Sorgen Sie für eine sichere Aufbewahrung des geheimen Microsoft Entra-Clientschlüssels. Wenn Sie $azureAdApplication.ApplicationId ausführen, wird Ihnen die „ApplicationID“ angezeigt.

Einrichten einer Microsoft Entra-App und eines Dienstprinzipals mit der Azure CLI

Sie können Ihre Dienstprinzipale mit Azure CLI mithilfe der az ad sp-Befehle verwalten. Weitere Informationen finden Sie unter Erstellen eines Azure-Dienstprinzipals.

  1. Erstellen Sie einen neuen Dienstprinzipal.

    az ad sp create-for-rbac --name "ServicePrincipalName" --password "My-AAD-client-secret" --role Contributor --scopes /subscriptions/<subscription_id>
    
  2. Die zurückgegeben App-ID (appId) ist die Microsoft Entra-ClientID, die in anderen Befehlen verwendet wird. Sie ist außerdem der Dienstprinzipalname für „az keyvault set-policy“. Das Kennwort ist der geheime Clientschlüssel, mit dem Sie später Azure Disk Encryption aktivieren werden. Sorgen Sie für eine sichere Aufbewahrung des geheimen Microsoft Entra-Clientschlüssels.

Einrichten einer Microsoft Entra-App und eines Dienstprinzipals über das Azure-Portal

Im Artikel Erstellen einer Microsoft Entra-Anwendung und eines Dienstprinzipals mit Ressourcenzugriff mithilfe des Portals finden Sie eine Anleitung, wie Sie eine Microsoft Entra-Anwendung erstellen. Jeder unten aufgeführte Schritt führt Sie direkt zum entsprechenden Artikelabschnitt.

  1. Überprüfen Sie die erforderlichen Berechtigungen.
  2. Erstellen einer Microsoft Entra-Anwendung
    • Sie können einen beliebigen Namen und eine beliebige Anmelde-URL verwenden, wenn Sie die Anwendung erstellen.
  3. Rufen Sie die Anwendungs-ID und den Authentifizierungsschlüssel ab.
    • Der Authentifizierungsschlüssel ist der geheime Clientschlüssel und wird als „AadClientSecret“ für „Set-AzVMDiskEncryptionExtension“ verwendet.
      • Der Authentifizierungsschlüssel wird von der Anwendung als Anmeldeinformation für die Anmeldung bei Microsoft Entra ID verwendet. Im Azure-Portal heißt dieses Geheimnis „Schlüssel“, hat jedoch keinen Bezug zu Schlüsseltresoren. Schützen Sie dieses Geheimnis entsprechend.
    • Die Anwendungs-ID wird später als „AadClientId“ für „Set-AzVMDiskEncryptionExtension“ und als „ServicePrincipalName“ für „Set-AzKeyVaultAccessPolicy“ verwendet.

Festlegen der Zugriffsrichtlinie für den Schlüsseltresor für die Microsoft Entra-App

Um Verschlüsselungsgeheimnisse in eine angegebene key vault zu schreiben, benötigt Azure Disk Encryption die Client-ID und den geheimen Clientschlüssel der Microsoft Entra Anwendung, die über Berechtigungen zum Schreiben von geheimen Schlüsseln in die Key Vault verfügt.

Hinweis

Azure Disk Encryption erfordert das Konfigurieren der folgenden Zugriffsrichtlinien für Ihre Microsoft Entra-Clientanwendung: Berechtigungen WrapKey und Set.

Festlegen der Zugriffsrichtlinie für den Schlüsseltresor für die Microsoft Entra-App mit Azure PowerShell

Ihre Microsoft Entra-Anwendung benötigt Rechte zum Zugreifen auf die Schlüssel oder geheimen Schlüssel im Tresor. Verwenden Sie das Cmdlet Set-AzKeyVaultAccessPolicy, um der Anwendung Berechtigungen zu erteilen. Verwenden Sie die Client-ID (die bei der Anwendungsregistrierung generiert wurde) als –ServicePrincipalName-Parameterwert. Weitere Informationen finden Sie im Blogbeitrag Azure Key Vault - Step by Step (Azure Key Vault – Schritt für Schritt).

  1. Legen Sie die Zugriffsrichtlinie für den Schlüsseltresor für die Microsoft Entra Anwendung mit PowerShell fest.

    $keyVaultName = 'MySecureVault'
    $aadClientID = 'MyAadAppClientID'
    $KVRGname = 'MyKeyVaultResourceGroup'
    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname
    

Festlegen der Zugriffsrichtlinie für den Schlüsseltresor für die Microsoft Entra-App mit der Azure CLI

Verwenden Sie az keyvault set-policy, um die Zugriffsrichtlinie festzulegen. Weitere Informationen finden Sie in Verwalten des Schlüsselspeichers mit CLI 2.0.

Gewähren Sie dem Dienstprinzipal, den Sie über die Azure CLI erstellt haben, mit dem folgenden Befehl Zugriff zum Abrufen von Geheimnissen und zum Umschließen von Schlüsseln:

az keyvault set-policy --name "MySecureVault" --spn "<spn created with CLI/the Microsoft Entra ClientID>" --key-permissions wrapKey --secret-permissions set

Festlegen der Zugriffsrichtlinie für den Schlüsseltresor für die Microsoft Entra-App über das Portal

  1. Öffnen Sie die Ressourcengruppe mit Ihrem Key Vault.
  2. Wählen Sie Ihren Schlüsseltresor aus, öffnen Sie Zugriffsrichtlinien, und wählen Sie dann Neu hinzufügen aus.
  3. Suchen Sie unter Prinzipal auswählen nach der Microsoft Entra-Anwendung, die Sie erstellt haben, und wählen Sie sie aus.
  4. Aktivieren Sie für Schlüsselberechtigungen unter Kryptografische Vorgänge die Option Schlüssel packen.
  5. Aktivieren Sie für Berechtigungen für Geheimnis unter Verwaltungsvorgänge für Geheimnisse die Option Festlegen.
  6. Wählen Sie OK aus, um die Richtlinie zu speichern.

Azure Key Vault: „Kryptografische Vorgänge“ und „Schlüssel packen“

„Berechtigungen für Geheimnis“ in Azure Key Vault auf „Festlegen“

Festlegen von erweiterten Zugriffsrichtlinien für Schlüsseltresore

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. Aktivieren Sie die Datenträgerverschlüsselung im Schlüsseltresor, damit Bereitstellungen nicht fehlschlagen.

Festlegen der erweiterten Zugriffsrichtlinien für Schlüsseltresore mit 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 sie den Schlüsseltresor für die Datenträgerverschlüsselung: EnabledForDiskEncryption ist für Azure Datenträgerverschlüsselung erforderlich.

    Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDiskEncryption
    
  • Aktivieren Sie bei Bedarf den Key Vault für die Bereitstellung: Aktiviert Microsoft. Compute-Ressourcenanbieter, 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 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDeployment
    
  • Aktivieren Sie bei Bedarf den Schlüsseltresor für die Bereitstellung von Vorlagen: Ermöglicht Azure Resource Manager, geheime Schlüssel aus diesem Schlüsseltresor abzurufen, wenn auf diesen Schlüsseltresor in einer Vorlagenbereitstellung verwiesen wird.

    Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForTemplateDeployment
    

Erweiterte Zugriffsrichtlinien für den Schlüsseltresor mithilfe der Azure CLI festlegen

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

  • Aktivieren Sie den Schlüsseltresor für die Datenträgerverschlüsselung: Enabled-for-disk-encryption muss aktiviert sein.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-disk-encryption "true"
    
  • Aktivieren Sie bei Bedarf den Schlüsseltresor für die Bereitstellung: Zulassen, dass virtuelle Computer Zertifikate abrufen, die als geheime Schlüssel aus dem Tresor gespeichert sind.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-deployment "true"
    
  • Aktivieren Sie bei Bedarf den Schlüsseltresor für die Bereitstellung von Vorlagen: Zulassen, dass Resource Manager geheime Schlüssel aus dem Tresor abrufen können.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-template-deployment "true"
    

Festlegen der erweiterten Zugriffsrichtlinien für Schlüsseltresore im Azure-Portal

  1. Wählen Sie Ihren Schlüsseltresor aus, wählen Sie "Zugriffsrichtlinien" und dann "Klicken" aus, um erweiterte Zugriffsrichtlinien anzuzeigen.
  2. Wählen Sie das Feld Zugriff auf Azure Disk Encryption für Volumeverschlüsselung aktivieren aus.
  3. Wählen Sie "Zugriff auf Azure virtuelle Computer für die Bereitstellung aktivieren" oder bei Bedarf den Zugriff auf Azure Resource Manager für die Vorlagenbereitstellung aktivieren.
  4. Wählen Sie Speichern aus.

Azure Key Vault erweiterten Zugriffsrichtlinien

Einrichten eines Schlüsselverschlüsselungsschlüssels (optional)

Wenn Sie einen Schlüsselverschlüsselungsschlüssel (KEK) für eine zusätzliche Sicherheitsebene für Verschlüsselungsschlüssel verwenden möchten, fügen Sie ihrem Schlüsseltresor einen KEK hinzu. Verwenden Sie das Cmdlet Add-AzKeyVaultKey, um im Schlüsseltresor einen Schlüsselverschlüsselungsschlüssel zu erstellen. Sie können den KEK auch aus Ihrem lokalen Hardwaresicherheitsmodul (HSM) für die Schlüsselverwaltung importieren. Weitere Informationen finden Sie in Key Vault Dokumentation. 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.

  • Verwenden Sie beim Generieren von Schlüsseln einen RSA-Schlüsseltyp. Azure Disk Encryption unterstützt noch nicht die Verwendung von Elliptic Curve-Schlüsseln.

  • Ihre URLs für das Geheimnis des Schlüsseltresors und den Schlüsselverschlüsselungsschlüssel (Key Encryption Key, 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:

    • Beispiel für eine gültige Geheimnis-URL: https://contosovault.vault.azure.net/secrets/EncryptionSecretWithKek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    • Beispiel für eine gültige KEK-URL: https://contosovault.vault.azure.net/keys/diskencryptionkek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Die Angabe von Portnummern als Teil von URLs für Schlüsseltresorgeheimnisse und KEK-URLs wird von Azure Disk Encryption nicht unterstützt. Beispiele für nicht unterstützte und unterstützte Schlüsseltresor-URLs finden Sie hier:

    • Unzulässige Key Vault-URL: https://contosovault.vault.azure.net:443/secrets/contososecret/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    • Zulässige Schlüsseltresor-URL: https://contosovault.vault.azure.net/secrets/contososecret/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Festlegen eines Schlüssels für die Schlüsselverschlüsselung mit Azure PowerShell

Bevor Sie das PowerShell-Skript verwenden, sollten Sie mit den Voraussetzungen für Azure Disk Encryption vertraut sein, um die Schritte im Skript zu verstehen. Das Beispielskript muss ggf. an Ihre Umgebung angepasst werden. Dieses Skript erstellt alle Voraussetzungen für Azure Disk Encryption und verschlüsselt eine vorhandene IaaS-VM, indem es den Datenträgerschlüssel mit einem Schlüssel für die Schlüsselverschlüsselung umschließt.

 # Step 1: Create a new resource group and key vault in the same location.
	 # Fill in 'MyLocation', 'MyKeyVaultResourceGroup', and 'MySecureVault' with your values.
	 # Use Get-AzLocation to get available locations and use the DisplayName.
	 # To use an existing resource group, comment out the line for New-AzResourceGroup

     $Loc = 'MyLocation';
     $KVRGname = 'MyKeyVaultResourceGroup';
     $KeyVaultName = 'MySecureVault';
     New-AzResourceGroup –Name  $KVRGname –Location $Loc;
     New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc;
     $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname;
     $KeyVaultResourceId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname).ResourceId;
     $diskEncryptionKeyVaultUrl = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname).VaultUri;

 # Step 2: Create the Microsoft Entra application and service principal.
	 # Fill in 'MyAADClientSecret', "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
	 # MyApplicationHomePage and the MyApplicationUri can be any values you wish.

	 $aadClientSecret =  'MyAADClientSecret';
     $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force;
     $azureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -Password $aadClientSecretSec
     $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor;
     $aadClientID = $azureAdApplication.ApplicationId;

 #Step 3: Enable the vault for disk encryption and set the access policy for the Microsoft Entra application.

	 Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption;
     Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName  $KVRGname;

 #Step 4: Create a new key in the key vault with the Add-AzKeyVaultKey cmdlet.
	 # Fill in 'MyKeyEncryptionKey' with your value.

	 $keyEncryptionKeyName = 'MyKeyEncryptionKey';
     Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName -Destination 'Software';
     $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;

 #Step 5: Encrypt the disks of an existing IaaS VM
	 # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

	 $VMName = 'MySecureVM';
      $VMRGName = 'MyVirtualMachineResourceGroup';
     Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId;

Zertifikatbasierte Authentifizierung (optional)

Wenn Sie die Zertifikatauthentifizierung verwenden möchten, können Sie einen in Ihren Schlüsseltresor hochladen und auf dem Client bereitstellen. Bevor Sie das PowerShell-Skript verwenden, sollten Sie mit den Voraussetzungen für Azure Disk Encryption vertraut sein, um die Schritte im Skript zu verstehen. Das Beispielskript muss ggf. an Ihre Umgebung angepasst werden.


 # Fill in "MyKeyVaultResourceGroup", "MySecureVault", and 'MyLocation' ('My location' only if needed)

   $KVRGname = 'MyKeyVaultResourceGroup'
   $KeyVaultName= 'MySecureVault'

   # Create a key vault and set enabledForDiskEncryption property on it.
   # Comment out the next three lines if you already have an existing key vault enabled for encryption. No need to set 'My location' in this case.

   $Loc = 'MyLocation'
   New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption

   #Setting some variables with the key vault information
   $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
   $DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
   $KeyVaultResourceId = $KeyVault.ResourceId

   # Create the Microsoft Entra application and associate the certificate with it.
   # Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
   # MyApplicationHomePage and the MyApplicationUri can be any values you wish

   $CertPath = "C:\certificates\mycert.pfx"
   $CertPassword = "Password"
   $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
   $CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

   $AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
   $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor

   $AADClientID = $AzureAdApplication.ApplicationId
   $aadClientCertThumbprint= $cert.Thumbprint

   Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname

   # Upload the pfx file to the Key Vault.
   # Fill in "MyAADCert".

   $KeyVaultSecretName = "MyAADCert"
   $FileContentBytes = get-content $CertPath -Encoding Byte
   $FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
           $JSONObject = @"
           {
               "data" : "$filecontentencoded",
               "dataType" : "pfx",
               "password" : "$CertPassword"
           }
"@

   $JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
   $JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)

   #Set the secret and set the key vault policy for -EnabledForDeployment

   $Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
   Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment

   # Deploy the certificate to the VM
   # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

   $VMName = 'MySecureVM'
   $VMRGName = 'MyVirtualMachineResourceGroup'
   $CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
   $SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
   $VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
   $VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
   Update-AzVM -VM $VM -ResourceGroupName $VMRGName

   #Enable encryption on the VM using Microsoft Entra client ID and the client certificate thumbprint

   Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId

Zertifikatbasierte Authentifizierung und Schlüssel für die Schlüsselverschlüsselung (optional)

Wenn Sie die Zertifikatauthentifizierung verwenden und den Verschlüsselungsschlüssel mit einem KEK umschließen möchten, können Sie das folgende Skript als Beispiel verwenden. Wenn Sie das PowerShell-Skript verwenden möchten, sollten Sie mit allen zuvor genannten Voraussetzungen für Azure Disk Encryption vertraut sein, um die Schritte im Skript zu verstehen. Das Beispielskript muss ggf. an Ihre Umgebung angepasst werden.

Wichtig

Die zertifikatbasierte Microsoft Entra-Authentifizierung wird auf Linux-VMs aktuell nicht unterstützt.

# Fill in 'MyKeyVaultResourceGroup', 'MySecureVault', and 'MyLocation' (if needed)

   $KVRGname = 'MyKeyVaultResourceGroup'
   $KeyVaultName= 'MySecureVault'

   # Create a key vault and set enabledForDiskEncryption property on it.
   # Comment out the next three lines if you already have an existing key vault enabled for encryption.

   $Loc = 'MyLocation'
   New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption

   # Create the Microsoft Entra application and associate the certificate with it.
   # Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
   # MyApplicationHomePage and the MyApplicationUri can be any values you wish

   $CertPath = "C:\certificates\mycert.pfx"
   $CertPassword = "Password"
   $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
   $CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

   $AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
   $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor

   $AADClientID = $AzureAdApplication.ApplicationId
   $aadClientCertThumbprint= $cert.Thumbprint

   ## Give access for setting secrets and wrapping keys
   Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname

   # Upload the pfx file to the Key Vault.
   # Fill in "MyAADCert".

   $KeyVaultSecretName = "MyAADCert"
   $FileContentBytes = get-content $CertPath -Encoding Byte
   $FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
           $JSONObject = @"
           {
               "data" : "$filecontentencoded",
               "dataType" : "pfx",
               "password" : "$CertPassword"
           }
"@

   $JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
   $JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)

   #Set the secret and set the key vault policy for deployment

   $Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
   Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment

   #Setting some variables with the key vault information and generating a KEK
   # Fill in 'KEKName'

   $KEKName ='KEKName'
   $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
   $DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
   $KeyVaultResourceId = $KeyVault.ResourceId
   $KEK = Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $KEKName -Destination "Software"
   $KeyEncryptionKeyUrl = $KEK.Key.kid



   # Deploy the certificate to the VM
   # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

   $VMName = 'MySecureVM';
   $VMRGName = 'MyVirtualMachineResourceGroup';
   $CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
   $SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
   $VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
   $VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
   Update-AzVM -VM $VM -ResourceGroupName $VMRGName

   #Enable encryption on the VM using Microsoft Entra client ID and the client certificate thumbprint

   Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId

Nächste Schritte

Aktivieren von Azure Disk Encryption mit Microsoft Entra ID auf Linux-VMs (vorheriges Release)