Självstudie: Använda Key Vault-referenser i en Python-app

I den här självstudien får du lära dig hur du implementerar Key Vault-referenser i ett Python-program med App Configuration. Den bygger på webbappen som introducerades i snabbstarten. Innan du fortsätter slutför du Skapa en Python-app med App Configuration först.

I den här tutorialen lär du dig följande:

  • Skapa en appkonfigurationsnyckel som refererar till ett värde som lagras i Key Vault.
  • Få åtkomst till värdet för den här nyckeln från ett Python-program.

Förutsättningar

Skapa ett nyckelvalv

  1. Logga in på Azure Portal och välj sedan Skapa en resurs.

  2. Ange Key Vault i sökrutan. I resultatlistan väljer du Key Vault.

  3. På sidan Key Vault väljer du Skapa.

  4. På sidan Skapa ett nyckelvalv anger du följande information:

    • För Prenumeration: Välj en prenumeration.
    • För Resursgrupp: Ange namnet på en befintlig resursgrupp eller välj Skapa ny och ange ett resursgruppsnamn.
    • För Key Vault-namn: Ange ett unikt namn.
    • För Region: Välj en plats.
  5. Använd standardvärdena för de andra alternativen.

  6. Välj Förhandsgranska + skapa.

  7. När systemet har verifierat och visar dina indata väljer du Skapa.

I det här läget är ditt Azure-konto det enda som har behörighet att komma åt det nya valvet.

Lägga till en hemlighet i Key Vault

Lägg till en hemlighet i valvet för att testa hämtningen av Key Vault. Hemligheten kallas Meddelande och dess värde är "Hello from Key Vault".

  1. I resursmenyn för nyckelvalvet, välj Objekt> Hemligheter.

  2. Välj Generera/Importera.

  3. I dialogrutan Skapa en hemlighet anger du följande värden:

    • För uppladdningsalternativ: Ange Manuell.
    • För Namn: Ange meddelande.
    • För Hemligt värde: Ange Hello från Key Vault.
  4. Använd standardvärdena för de andra alternativen.

  5. Välj Skapa.

Lägga till en Key Vault-referens till App Configuration

  1. Logga in på Azure-portalen. Välj Alla resurser och välj sedan din App Configuration butik.

  2. Välj Configuration Explorer.

  3. Välj + Skapa>key vault-referens och ange sedan följande värden:

    • Nyckel: Skriv in TestApp:Settings:KeyVaultMessage.
    • Etikett: Lämna det här värdet tomt.
    • Prenumeration, Resursgrupp och Nyckelvalv: Ange de värden som motsvarar det nyckelvalv som du skapade i föregående avsnitt.
    • Hemlighet: Välj hemligheten med namnet Meddelande som du skapade i föregående avsnitt.

Ge din app åtkomst till Key Vault

Ditt program använder DefaultAzureCredential för att autentisera till både App Configuration och Key Vault. Den här autentiseringsuppgiften fungerar automatiskt med hanterade identiteter i Azure och med dina autentiseringsuppgifter för utvecklare lokalt.

  1. Ge din identitet åtkomst till Key Vault. Tilldela rollen Key Vault Secrets User till ditt användarkonto eller din hanterade identitet:

    az role assignment create --role "Key Vault Secrets User" --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.KeyVault/vaults/<KeyVaultName> --assignee <AzureAdUserOrManagedIdentity>
    
  2. Ge din identitet åtkomst till App Configuration. Tilldela rollen App Configuration Data Reader :

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

Uppdatera koden så att den använder en Key Vault-referens

  1. Installera de paket som krävs genom att köra följande kommando:

    pip install azure-appconfiguration-provider azure-identity
    
  2. Skapa en miljövariabel med namnet AZURE_APPCONFIG_ENDPOINT. Ställ in dess värde på slutpunkten för din App-konfigurationsbutik. Du hittar slutpunkten på bladet Översikt i Azure-portalen.

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

    Starta om kommandotolken så att ändringen börjar gälla.

  3. Uppdatera Python-programfilen för att läsa in Key Vault-referenser. Skapa eller uppdatera en fil med namnet 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"])
    

    Parametern keyvault_credential instruerar providern att använda den angivna autentiseringsuppgiften vid matchning av Key Vault-referenser. Samma DefaultAzureCredential instans används för både appkonfiguration och Key Vault-autentisering.

    Anmärkning

    Om dina Key Vault-referenser pekar på flera nyckelvalv som kräver olika autentiseringsuppgifter kan du använda parametern keyvault_client_configs i stället för att ange autentiseringsuppgifter per valv. Mer information finns i Python-providerreferensen.

  4. Kör programmet:

    python app.py
    

    Du ser meddelandet som du angav i App Configuration. Du ser också meddelandet som du angav i Key Vault, löst via Key Vault-referensen.

Rensa resurser

Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.

Viktigt!

Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.

  1. Logga in på Azure Portal och välj Resursgrupper.
  2. I rutan Filtrera efter namn anger du namnet på resursgruppen.
  3. I resultatlistan väljer du resursgruppens namn för att se en översikt.
  4. Välj Ta bort resursgrupp.
  5. Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.

Efter en liten stund tas resursgruppen och alla dess resurser bort.

Nästa steg

I den här självstudien skapade du en appkonfigurationsnyckel som refererar till ett värde som lagras i Key Vault. Mer information om Python-providern för Azure App Configuration finns i referensdokumentationen för Python-providern.