Guida: Utilizzare i riferimenti nel Key Vault in un'app Python

Questa esercitazione illustra come implementare i riferimenti a Key Vault in un'applicazione Python usando Configurazione app. Si basa sull'applicazione web introdotta nel quickstart. Prima di continuare, completare le procedure descritte in Creare un'app Python con Configurazione app.

In questa esercitazione apprenderai a:

  • Creare una chiave di Configurazione app che faccia riferimento a un valore archiviato in Key Vault.
  • Accedere al valore di questa chiave da un'applicazione Python.

Prerequisiti

Creare un insieme di credenziali delle chiavi

  1. Accedere al portale di Azure e quindi selezionare Crea una risorsa.

  2. Nella casella di ricerca immettere Key Vault. Nell'elenco dei risultati selezionare Key Vault.

  3. Nella pagina Key Vault selezionare Crea.

  4. Nella pagina Crea una Cassaforte delle chiavi, immettere le informazioni seguenti:

    • Per Sottoscrizione: selezionare una sottoscrizione.
    • Per Gruppo di risorse immettere il nome di un gruppo di risorse esistente oppure selezionare Crea nuovo e immettere un nome del gruppo di risorse.
    • Per Nome Key Vault: immettere un nome univoco.
    • Per Area: selezionare una località.
  5. Per le altre opzioni, usare i valori predefiniti.

  6. Selezionare Rivedi e crea.

  7. Dopo che il sistema convalida e visualizza gli input, selezionare Crea.

A questo punto, il tuo account Azure è l'unico autorizzato ad accedere a questa nuova cassaforte.

Aggiungere un segreto a Key Vault

Aggiungere un segreto al Key Vault per testare il recupero. Il segreto è denominato Message e il relativo valore è "Hello from Key Vault".

  1. Nel menu della risorsa Key Vault selezionare Segreti degli oggetti>.

  2. Seleziona Genera/Importa.

  3. Nella finestra di dialogo Crea un segreto immettere i valori seguenti:

    • Per Opzioni di caricamento: immettere Manuale.
    • Per Nome: immettere Messaggio.
    • Per Valore segreto: immettere Hello from Key Vault.
  4. Per le altre opzioni, usare i valori predefiniti.

  5. Fare clic su Crea.

Aggiungere a Configurazione app un riferimento a Key Vault

  1. Accedi al portale di Azure. Selezionare Tutte le risorse e quindi selezionare il tuo store di App Configuration.

  2. Selezionare Esplora configurazioni.

  3. Selezionare + Crea>Riferimento Key Vault e quindi specificare i valori seguenti:

    • In Chiave: immettere TestApp:Settings:KeyVaultMessage.
    • Etichetta: lasciare vuoto questo valore.
    • Sottoscrizione, gruppo di risorse e Insieme di credenziali delle chiavi: immettere i valori corrispondenti all'insieme di credenziali delle chiavi creato nella sezione precedente.
    • Segreto: selezionare il segreto denominato Message creato nella sezione precedente.

Concedere all'app l'accesso a Key Vault

L'applicazione usa DefaultAzureCredential per eseguire l'autenticazione sia in Configurazione app che in Key Vault. Questa credenziale funziona automaticamente con le identità gestite in Azure e con le credenziali dello sviluppatore in locale.

  1. Concedere l'accesso basato su identità a Key Vault. Assegnare il ruolo Key Vault Secrets User all'account utente o all'identità gestita:

    az role assignment create --role "Key Vault Secrets User" --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.KeyVault/vaults/<KeyVaultName> --assignee <AzureAdUserOrManagedIdentity>
    
  2. Concedere all'identità l'accesso alla Configurazione app. Assegnare il ruolo Lettore dati di Configurazione dell'app :

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

Aggiornare il codice per usare un riferimento a Key Vault

  1. Installare i pacchetti necessari eseguendo il comando seguente:

    pip install azure-appconfiguration-provider azure-identity
    
  2. Creare una variabile di ambiente denominata AZURE_APPCONFIG_ENDPOINT. Impostarne il valore sull'endpoint dell'archivio di Configurazione app. È possibile trovare l'endpoint nel pannello Panoramica nel portale di Azure.

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

    Riavviare il prompt dei comandi per rendere effettiva la modifica.

  3. Aggiornare il file dell'applicazione Python per caricare i riferimenti a Key Vault. Creare o aggiornare un file denominato 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"])
    

    Il keyvault_credential parametro indica al provider di usare le credenziali fornite durante la risoluzione dei riferimenti a Key Vault. La stessa DefaultAzureCredential istanza viene usata sia per l'autenticazione di Configurazione App sia per quella di Key Vault.

    Annotazioni

    Se i riferimenti a Key Vault puntano a più Key Vault che richiedono credenziali diverse, è possibile usare il parametro keyvault_client_configs per specificare le credenziali per ogni Key Vault. Per ulteriori informazioni, vedere il riferimento del provider Python.

  4. Eseguire l'applicazione:

    python app.py
    

    Viene visualizzato il messaggio immesso in Configurazione app. Viene inoltre visualizzato il messaggio che hai inserito in Key Vault, risolto tramite il riferimento a Key Vault.

Pulire le risorse

Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.
  2. Nella casella Filtra per nome immettere il nome del gruppo di risorse.
  3. Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
  4. Selezionare Elimina gruppo di risorse.
  5. Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.

Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.

Passaggi successivi

In questa esercitazione è stata creata una chiave di Configurazione app che fa riferimento a un valore archiviato in Key Vault. Per altre informazioni sul provider Python per Configurazione app di Azure, vedere la documentazione di riferimento sul provider Python.