Lernprogramm: Verwenden von Key Vault-Verweisen in einer Python-App

In diesem Lernprogramm erfahren Sie, wie Sie Key Vault-Verweise in einer Python-Anwendung mithilfe der App-Konfiguration implementieren. Sie baut auf der Web-App auf, die in der Schnellstartanleitung eingeführt wurde. Bevor Sie fortfahren, müssen Sie zuerst eine Python-App mit App-Konfiguration erstellen .

In diesem Tutorial erfahren Sie, wie:

  • Erstellen eines App Configuration-Schlüssels, der auf einen in Key Vault gespeicherten Wert verweist
  • Greifen Sie über eine Python-Anwendung auf den Wert dieses Schlüssels zu.

Voraussetzungen

Erstellen eines Schlüsseltresors

  1. Melden Sie sich beim Azure-Portal an, und wählen Sie dann "Ressource erstellen" aus.

  2. Geben Sie Key Vault in das Suchfeld ein. Wählen Sie in der Ergebnisliste Key Vault aus.

  3. Wählen Sie auf der Seite "Key Vault " die Option "Erstellen" aus.

  4. Geben Sie auf der Seite "Key Vault erstellen" die folgenden Informationen ein:

    • Für Abonnement: Wählen Sie ein Abonnement aus.
    • Für Ressourcengruppe: Geben Sie den Namen einer vorhandenen Ressourcengruppe ein, oder wählen Sie "Neu erstellen" aus, und geben Sie einen Ressourcengruppennamen ein.
    • Für Schlüsseltresorname: Geben Sie einen eindeutigen Namen ein.
    • Für Region: Wählen Sie einen Speicherort aus.
  5. Verwenden Sie für die anderen Optionen die Standardwerte.

  6. Klicken Sie auf Überprüfen + erstellen.

  7. Nachdem das System Ihre Eingaben überprüft und anzeigt, wählen Sie "Erstellen" aus.

An diesem Punkt ist nur Ihr Azure-Konto für den Zugriff auf diesen neuen Tresor autorisiert.

Hinzufügen eines Geheimnisses zu Key Vault

Fügen Sie dem Vault ein Secret hinzu, um die Abfrage des Key Vault zu testen. Der geheime Schlüssel heißt "Nachricht", und sein Wert lautet "Hello from Key Vault".

  1. Wählen Sie im Ressourcenmenü "Key Vault" die Option "Geheime Objekte"> aus.

  2. Wählen Sie die Option Generieren/Importieren aus.

  3. Geben Sie im Dialogfeld " Geheime Schlüssel erstellen " die folgenden Werte ein:

    • Für Uploadoptionen: Geben Sie Manuell ein.
    • Name:Nachricht eingeben.
    • Für Geheimwert: Geben Sie Hello from Key Vault ein.
  4. Verwenden Sie für die anderen Optionen die Standardwerte.

  5. Wählen Sie "Erstellen" aus.

Hinzufügen eines Key Vault-Verweises zu App Configuration

  1. Melden Sie sich im Azure-Portal an. Wählen Sie "Alle Ressourcen" und dann Ihren App-Konfigurationsspeicher aus.

  2. Wählen Sie Konfigurations-Explorer aus.

  3. Wählen Sie + Erstellen>Schlüsseltresorverweis aus, und geben Sie dann die folgenden Werte an:

    • Schlüssel: Geben Sie "TestApp:Settings:KeyVaultMessage" ein.
    • Bezeichnung: Lassen Sie diesen Wert leer.
    • Abonnement, Ressourcengruppe und Schlüsseltresor: Geben Sie die Werte ein, die dem schlüsseltresor entsprechen, den Sie im vorherigen Abschnitt erstellt haben.
    • Geheimnis: Wählen Sie das Geheimnis mit dem Namen Nachricht aus, das Sie im vorherigen Abschnitt erstellt haben.

Gewähren des Zugriffs auf Key Vault für Ihre App

Ihre Anwendung verwendet DefaultAzureCredential zur Authentifizierung sowohl für die App-Konfiguration als auch für Key Vault. Diese Anmeldeinformationen funktionieren nahtlos mit verwalteten Identitäten in Azure und lokal mit Ihren Entwickleranmeldeinformationen.

  1. Gewähren Sie Ihrer Identität Zugriff auf den Key Vault. Weisen Sie Ihrem Benutzerkonto oder verwalteter Identität die Rolle "Key Vault Secrets-Benutzer" zu:

    az role assignment create --role "Key Vault Secrets User" --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.KeyVault/vaults/<KeyVaultName> --assignee <AzureAdUserOrManagedIdentity>
    
  2. Gewähren Sie Ihrer Identität Zugriff auf die App-Konfiguration. Zuweisen der Rolle " App-Konfigurationsdatenleser ":

    az role assignment create --role "App Configuration Data Reader" --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.AppConfiguration/configurationStores/<AppConfigurationStoreName> --assignee <AzureAdUserOrManagedIdentity>
    

Aktualisieren Sie Ihren Code, um einen Key Vault-Verweis zu verwenden.

  1. Installieren Sie die erforderlichen Pakete, indem Sie den folgenden Befehl ausführen:

    pip install azure-appconfiguration-provider azure-identity
    
  2. Erstellen Sie eine Umgebungsvariable namens AZURE_APPCONFIG_ENDPOINT. Legen Sie den Wert auf den Endpunkt Ihres App-Konfigurationsspeichers fest. Sie finden den Endpunkt auf dem Blatt "Übersicht" im Azure-Portal.

    setx AZURE_APPCONFIG_ENDPOINT "endpoint-of-your-app-configuration-store"
    

    Starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird.

  3. Aktualisieren Sie Ihre Python-Anwendungsdatei, um Key Vault-Verweise zu laden. Erstellen oder Aktualisieren einer Datei namens app.py:

    from azure.appconfiguration.provider import load
    from azure.identity import DefaultAzureCredential
    import os
    
    endpoint = os.environ.get("AZURE_APPCONFIG_ENDPOINT")
    credential = DefaultAzureCredential()
    
    # Connect to Azure App Configuration and resolve Key Vault references.
    config = load(
        endpoint=endpoint,
        credential=credential,
        keyvault_credential=credential,
    )
    
    # Access configuration values, including resolved Key Vault references.
    print(config["TestApp:Settings:KeyVaultMessage"])
    

    Der keyvault_credential Parameter weist den Anbieter an, beim Auflösen von Key Vault-Verweisen die angegebenen Anmeldeinformationen zu verwenden. Die gleiche DefaultAzureCredential Instanz wird sowohl für die App-Konfiguration als auch für die Key Vault-Authentifizierung verwendet.

    Hinweis

    Wenn Ihre Key Vault-Verweise auf mehrere Schlüsseltresor verweisen, die unterschiedliche Anmeldeinformationen erfordern, können Sie stattdessen den keyvault_client_configs Parameter verwenden, um Anmeldeinformationen pro Tresor bereitzustellen. Weitere Informationen finden Sie in der Python-Anbieterreferenz.

  4. Führen Sie die Anwendung aus.

    python app.py
    

    Die Meldung, die Sie in die App-Konfiguration eingegeben haben, wird angezeigt. Sie sehen auch die Nachricht, die Sie in Key Vault eingegeben haben, behoben durch die Key Vault-Referenz.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.

Von Bedeutung

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte

In diesem Tutorial haben Sie einen App Configuration-Schlüssel erstellt, mit dem auf einen in Key Vault gespeicherten Wert verwiesen wird. Weitere Informationen zum Python-Anbieter für die Azure App-Konfiguration finden Sie in der Python-Anbieterreferenzdokumentation.