Tutorial: Verwenden der systemseitig zugewiesenen verwalteten Identität eines virtuellen Windows-Computers für den Zugriff auf Azure Key Vault

Verwaltete Identitäten für Azure-Ressourcen ist eine Funktion von Microsoft Entra ID. Für alle Azure-Dienste, die verwaltete Identitäten unterstützen, gilt ein eigener Zeitplan. Sehen Sie sich den Verfügbarkeitsstatus der verwalteten Identitäten für Ihre Ressource und die bekannten Probleme an, bevor Sie beginnen.

In diesem Tutorial erfahren Sie, wie ein virtueller Windows-Computer mithilfe einer systemseitig zugewiesenen verwalteten Identität auf Azure Key Vault zugreifen kann. Key Vault ermöglicht es Ihrer Clientanwendung, mithilfe eines Geheimnisses auf Ressourcen zuzugreifen, die nicht durch Microsoft Entra ID geschützt sind. Verwaltete Identitäten werden von Azure automatisch verwaltet. Sie ermöglichen Ihnen die Authentifizierung bei Diensten, die Microsoft Entra-Authentifizierung unterstützen, ohne dass Authentifizierungsinformationen in Ihren Code eingebettet werden müssen.

Folgendes wird vermittelt:

  • Gewähren des Zugriffs auf ein in einer Key Vault gespeicherten Geheimnisses für den virtuellen Computer
  • Abrufen eines Zugriffstokens mithilfe der VM-Identität und Verwenden dieses Zugriffstokens zum Abrufen des Geheimnisses aus der Key Vault

Voraussetzungen

Erstellen eines Schlüsseltresors

Tipp

Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.

In diesem Abschnitt wird gezeigt, wie Sie einem virtuellen Computer den Zugriff auf ein in einer Key Vault-Instanz gespeichertes Geheimnis gewähren. Mithilfe von verwalteten Identitäten für Azure-Ressourcen kann der Code Zugriffstoken zur Authentifizierung von Ressourcen abrufen, die die Microsoft Entra-Authentifizierung unterstützen.  Jedoch nicht alle Azure-Dienste unterstützen die Microsoft Entra-Authentifizierung. Um verwaltete Identitäten für Azure-Ressourcen mit diesen Diensten zu verwenden, speichern Sie die Dienstanmeldeinformationen in Azure Key Vault, und greifen Sie mit der verwalteten Identität des virtuellen Computers auf Key Vault zu, um die Anmeldeinformationen abzurufen.

Zunächst müssen Sie eine Key Vault-Instanz erstellen und der systemseitig zugewiesenen verwalteten Identität des virtuellen Computers den Zugriff darauf erteilen.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie oben in der linken Navigationsleiste Ressource erstellen aus.

  3. Geben Sie im Feld Marketplace durchsuchen den Suchbegriff Key Vault ein, und drücken Sie die EINGABETASTE.

  4. Wählen Sie in den Ergebnissen Key Vault aus.

  5. Klicken Sie auf Erstellen.

  6. Geben Sie unter Name einen Namen für den neuen Schlüsseltresor an.

    Bildschirm: Erstellen eines Schlüsseltresors

  7. Füllen Sie alle erforderlichen Informationen aus. Wählen Sie unbedingt das Abonnement und die Ressourcengruppe aus, die Sie für dieses Tutorial verwenden.

  8. Wählen Sie Überprüfen + erstellen aus.

  9. Klicken Sie auf Erstellen

Erstellen eines Geheimnisses

Fügen Sie als Nächstes der Key Vault-Instanz ein Geheimnis hinzu, das Sie später mithilfe von Code abrufen können, der auf dem virtuellen Computer ausgeführt wird. Im Rahmen dieses Tutorials wird PowerShell verwendet. Die gleichen Konzepte gelten jedoch für jeden Code, der auf diesem virtuellen Computer ausgeführt wird.

  1. Navigieren Sie zur neu erstellten Key Vault-Instanz.

  2. Wählen Sie Geheimnisse und dann Hinzufügen aus.

  3. Wählen Sie die Option Generieren/importieren aus.

  4. Lassen Sie auf dem Bildschirm Geheimnis erstellen unter Uploadoptionen die Option Manuell ausgewählt.

  5. Geben Sie einen Namen und einen Wert für das Geheimnis ein.  Dabei kann es sich um einen beliebigen Wert handeln. 

  6. Lassen Sie das Aktivierungs- und das Ablaufdatum leer, und übernehmen Sie für Aktiviert die ausgewählte Option Ja

  7. Wählen Sie Erstellen aus, um das Geheimnis zu erstellen.

    Screenshot: Erstellen eines geheimen Schlüssels

Gewähren von Zugriff

Der vom virtuellen Computer verwalteten Identität muss Zugriff gewährt werden, damit sie das in Key Vault gespeicherte Geheimnis lesen kann.

  1. Navigieren Sie zur neu erstellten Key Vault-Instanz.

  2. Wählen Sie im Menü auf der linken Seite die Option Zugriffsrichtlinie aus.

  3. Wählen Sie Zugriffsrichtlinie hinzufügen aus.

    Screenshot: Bildschirm mit Zugriffsrichtlinie für Schlüsseltresor

  4. Wählen Sie im Abschnitt Zugriffsrichtlinie hinzufügen unter Anhand einer Vorlage konfigurieren (optional) im Pulldownmenü die Option Verwaltung von Geheimnissen aus.

  5. Wählen Sie Prinzipal auswählen, und geben Sie im Suchfeld den Namen des zuvor erstellten virtuellen Computers ein.  Wählen Sie in der Ergebnisliste den virtuellen Computer und dann Auswählen aus.

  6. Wählen Sie Hinzufügen aus.

  7. Wählen Sie Speichern aus.

Zugreifen auf Daten

In diesem Abschnitt wird gezeigt, wie Sie mithilfe der VM-Identität ein Zugriffstoken abrufen und es zum Abrufen des Geheimnisses aus Key Vault verwenden. Wenn bei Ihnen nicht PowerShell 4.3.1 oder höher installiert ist, müssen Sie die neueste Version herunterladen und installieren.

Zuerst wird mit der systemseitig zugewiesenen verwalteten Identität des virtuellen Computers ein Zugriffstoken für die Authentifizierung bei Key Vault abgerufen:

  1. Navigieren Sie im Portal zu Virtuelle Computer, wechseln Sie dann zu Ihrem virtuellen Windows-Computer, und wählen Sie in der Übersicht die Option Verbinden aus.
  2. Geben Sie Ihren Benutzernamen und Ihr Kennwort ein, das Sie beim Erstellen des rs hinzugefügt haben.  
  3. Sie haben nun eine Remotedesktopverbindung mit der VM erstellt. Öffnen Sie jetzt PowerShell in der Remotesitzung.  
  4. Rufen Sie in PowerShell die Webanforderung für den Mandanten auf, um das Token für den lokalen Host am spezifischen Port des virtuellen Computers abzurufen.  

Die PowerShell-Anforderung:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"} 

Die Antwort sieht in etwa wie folgt aus:

Screenshot: Anforderung mit Tokenantwort

Extrahieren Sie dann das Zugriffstoken aus der Antwort.  

   $KeyVaultToken = $Response.access_token

Verwenden Sie abschließend den PowerShell-Befehl „Invoke-WebRequest“, um das zuvor in der Key Vault erstellte Geheimnis abzurufen. Übergeben Sie dabei das Zugriffstoken im Autorisierungsheader.  Sie benötigen die URL Ihrer Key Vaults. Diese befindet sich im Abschnitt Zusammenfassung der Seite Übersicht der Key Vault.  

Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}

Die Antwort sieht so aus:

  value       id                                                                                    attributes
  -----       --                                                                                    ----------
  'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…

Nachdem Sie das Geheimnis aus der Key Vault abgerufen haben, können Sie es für die Authentifizierung bei einem Dienst verwenden, für den ein Name und ein Kennwort angegeben werden müssen.

Bereinigen von Ressourcen

Gehen Sie wie folgt vor, wenn Sie die Ressourcen bereinigen möchten: Melden Sie sich im Azure-Portal an, wählen Sie die Option Ressourcengruppen und dann die Ressourcengruppe aus, die in diesem Tutorial erstellt wurde (z. B. mi-test), und verwenden Sie anschließend den Befehl Ressourcengruppe löschen.

Alternativ können Sie Ressourcen auch über PowerShell oder die CLI bereinigen.

Nächste Schritte

In diesem Tutorial haben Sie gelernt, wie Sie eine systemseitig zugewiesene verwaltete Identität eines virtuellen Windows-Computers verwenden, um auf Azure Key Vault zuzugreifen. Weitere Informationen zu Azure Key Vault finden Sie in folgendem Artikel: