Archiviare segreti di livello applicativo per Funzioni di Azure in App contenitore di Azure

I segreti a livello di app sono valori di configurazione usati dal codice della funzione e dai binding in fase di esecuzione. A differenza delle chiavi di accesso di Funzioni, che proteggono gli endpoint HTTP, i segreti a livello di app sono le credenziali necessarie per connettersi ad altri servizi.

Esempi comuni prevedono:

  • Connessioni dell'infrastruttura - AzureWebJobsStorage stringhe di connessione, connessioni di trigger e binding per Event Hubs, bus di servizio, Cosmos DB e SQL.
  • Credenziali aziendali : chiavi API di terze parti, password del database, token della piattaforma SaaS.
  • Configurazione personalizzata : qualsiasi valore sensibile letto dal codice dalle variabili di ambiente.

Scegliere un'opzione di archiviazione

App contenitore di Azure offre due modi per archiviare i segreti a livello di app:

Opzione Ideale per Gestione centralizzata Rotazione automatica Registrazione della verifica
Segreti delle App di container Sviluppo/test e carichi di lavoro semplici per singole app No - limitato a una sola app No Solo log delle attività
Riferimenti a Key Vault Produzione, multi-app, conformità Sì- in tutte le app Sì (URI senza versione) Diagnostica completa del Key Vault

Tip

Inizia con i segreti delle applicazioni container per semplificare. Passare a Key Vault riferimenti quando è necessaria una gestione centralizzata, una rotazione automatica o un controllo di livello di conformità.

Prerequisiti

Usare i segreti delle app contenitore

Le App container archivia i segreti nella matrice dell'app configuration.secrets e crittografa i valori a riposo. È possibile fare riferimento ai segreti in variabili di ambiente, regole di scalabilità, montaggi di volumi e componenti Dapr.

Archiviare un segreto

  1. Vai all'app di contenitori Function nel portale Azure.

  2. In Impostazioni selezionare Segreti.

  3. Selezionare Aggiungi e immettere i valori seguenti:

    Proprietà Valore
    Nome Un nome segreto come database-password. Usare solo lettere minuscole, numeri e trattini.
    Type Segreto App container
    Valore Il tuo valore segreto
  4. Seleziona Aggiungi.

Fare riferimento al segreto in una variabile di ambiente

Dopo aver archiviato un segreto, farvi riferimento in una variabile di ambiente in modo che il codice della funzione possa leggerlo.

  1. Nell'app contenitore funzioni, in Applicazione selezionare Revisioni e repliche.

  2. Selezionare Crea nuova revisione.

  3. Nella scheda Contenitore selezionare il contenitore e quindi selezionare Modifica.

  4. Selezionare la scheda Variabili di ambiente e quindi selezionare Aggiungi.

  5. Immettere i valori seguenti:

    Proprietà Valore
    Nome DATABASE_PASSWORD
    Fonte Fare riferimento a un segreto
    Valore database-password
  6. Selezionare Salva e quindi Crea per distribuire la nuova revisione.

Verificare il segreto

Verificare che la funzione possa leggere il valore del segreto richiamando la funzione e verificando che venga eseguita senza errori correlati alla configurazione mancante.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Importante

App Contenitore inserisce il valore del segreto nella variabile di ambiente in fase di esecuzione. Il codice legge la variabile di ambiente e non accede direttamente all'archivio segreto.

Limitations

I segreti delle app contenitore presentano le limitazioni seguenti:

  • Nessuna centralizzazione : ogni app contenitore archivia i propri segreti separatamente.
  • Nessuna rotazione automatica : è necessario aggiornare manualmente i valori dei segreti.
  • Nessuna scadenza : i segreti non scadono automaticamente.
  • Controllo limitato - solo log attività di base; nessun controllo dettagliato dell'accesso segreto.
  • Nessun controllo delle versioni : nessuna cronologia delle versioni dei segreti predefinita.
  • Comportamento di aggiornamento : la modifica di un segreto non attiva una nuova revisione. È necessario creare una nuova revisione o riavviare le revisioni esistenti per selezionare le modifiche.

Usare i riferimenti di Key Vault

I riferimenti di Key Vault permettono alla tua app contenitore di recuperare i segreti direttamente da Azure Key Vault utilizzando un'identità gestita. Questo approccio offre la gestione centralizzata, la rotazione automatica e il controllo di livello di conformità.

Passaggio 1: Configurare l'identità gestita

L'app contenitore necessita di un'identità gestita per l'autenticazione per Key Vault senza credenziali.

  1. Vai all'app di contenitori Function nel portale Azure.

  2. In Impostazioni selezionare Identità.

  3. Nella scheda Assegnata dal sistema impostare Stato su .

  4. Selezionare Salva e quindi Sì per confermare.

Passaggio 2: Concedere l'accesso Key Vault

Assegnare il ruolo Key Vault Secrets User all'identità gestita in modo che possa leggere i segreti.

  1. Vai al Key Vault nel portale Azure.

  2. In Impostazioni, selezionare Controllo di accesso (IAM).

  3. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

  4. Nella scheda Role selezionare Utente segreti di Key Vault.

  5. Seleziona Avanti.

  6. Nella scheda Membri selezionare Identità gestita e quindi Seleziona membri.

  7. Nel riquadro Seleziona identità gestite selezionare la sottoscrizione, scegliere App di contenitore per il tipo di identità gestita, selezionare l'app di contenitore di Funzioni e quindi selezionare Seleziona.

  8. Seleziona Rivedi + assegna.

Passaggio 3: Archiviare un segreto in Key Vault

  1. Nel Key Vault, in Objects selezionare Secrets.

  2. Seleziona Genera/Importa.

  3. Immettere i valori seguenti:

    Proprietà Valore
    Opzioni di caricamento Manuale
    Nome Un nome segreto, ad esempio DatabasePassword.
    Valore Il tuo valore segreto
  4. Fare clic su Crea.

  5. Selezionare il segreto appena creato e quindi selezionare la versione corrente.

  6. Copia l'URI dell'identificatore segreto. Usare l'URI senza versione (senza il segmento di versione finale) per abilitare la rotazione automatica.

Passaggio 4: Fare riferimento al segreto di Key Vault in Container Apps

Creare un segreto di App contenitore che faccia riferimento al segreto Key Vault, quindi associarlo a una variabile di ambiente.

  1. Vai alla tua applicazione contenitore delle funzioni. In Impostazioni selezionare Segreti.

  2. Seleziona Aggiungi.

  3. In Aggiungi segreto immettere i valori seguenti:

    Proprietà Valore
    Nome database-password
    Type Riferimento a Key Vault
    URL del segreto di Key Vault L'URI dell'identificatore segreto che hai copiato.
    Identità Identità assegnata dal sistema (o identità assegnata dall'utente).
  4. Seleziona Aggiungi.

  5. In Applicazione selezionare Revisioni e repliche. Creare una nuova revisione con la variabile DATABASE_PASSWORD di ambiente che fa riferimento al database-password segreto.

Passaggio 5: Verificare il riferimento Key Vault

Richiamare la funzione e confermarne l'esecuzione senza errori correlati alla configurazione mancante.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Rotazione automatica dei segreti

Quando si fa riferimento a un segreto Key Vault con un URI senza versione, Container Apps recupera automaticamente la versione più recente:

  • URI senza versione: https://myvault.vault.azure.net/secrets/mysecret - usa sempre la versione più recente.
  • URI con versione: https://myvault.vault.azure.net/secrets/mysecret/ec96f020... - aggiunto a una versione specifica.

Con gli URI senza versione, Container Apps verifica la disponibilità di nuove versioni entro 30 minuti e riavvia automaticamente le revisioni attive per acquisire il nuovo valore.