Ricaricare automaticamente i segreti e i certificati da Key Vault

Configurazione app e Key Vault sono servizi complementari usati affiancati in molte applicazioni. Configurazione app consente di usare i servizi insieme creando chiavi nell'archivio Configurazione app che fanno riferimento a segreti o certificati archiviati in Key Vault. Poiché Key Vault archivia la coppia di chiavi pubblica e privata di un certificato come segreto, l'applicazione può recuperare qualsiasi certificato come segreto da Key Vault.

Come procedura di sicurezza consigliata, i segreti e i certificati devono essere ruotati periodicamente. Una volta ruotati in Key Vault, è consigliabile che l'applicazione rilevi i valori più recenti di segreto e certificato. Esistono due modi per ottenere questo risultato senza riavviare l'applicazione:

  • Aggiornare un valore chiave-valore sentinel per attivare l'aggiornamento dell'intera configurazione, ricaricando quindi tutti i segreti e i certificati Key Vault. Per altre informazioni, vedere come usare la configurazione dinamica in un'app ASP.NET Core.
  • Ricarica periodicamente alcuni o tutti i segreti e i certificati da Key Vault.

Nella prima opzione sarà necessario aggiornare il valore della chiave sentinel in Configurazione app ogni volta che si ruotano segreti e certificati in Key Vault. Questo approccio funziona correttamente quando si vuole forzare un ricaricamento immediato di segreti e certificati nell'applicazione. Tuttavia, quando i segreti e i certificati vengono ruotati automaticamente in Key Vault, l'applicazione potrebbe riscontrare errori se non si aggiorna il valore della chiave sentinel nel tempo. La seconda opzione consente di automatizzare completamente questo processo. È possibile configurare l'applicazione per ricaricare i segreti e i certificati da Key Vault entro il ritardo accettabile dal momento della rotazione. Questa esercitazione illustra la seconda opzione.

Prerequisiti

Aggiungere un certificato di rotazione automatica a Key Vault

Seguire l'esercitazione: Configurare la rotazione automatica dei certificati in Key Vault per aggiungere un certificato di rotazione automatica denominato ExampleCertificate al Key Vault creato nell'esercitazione precedente.

Aggiungere un riferimento al certificato Key Vault in Configurazione app

  1. Nella portale di Azure selezionare Tutte le risorse e quindi selezionare l'istanza dell'archivio Configurazione app creata nell'esercitazione precedente.

  2. Selezionare Esplora configurazioni.

  3. Selezionare + Crea>Riferimento all'insieme di credenziali delle chiavi e quindi specificare i valori seguenti:

    • Chiave: selezionare TestApp:Settings:KeyVaultCertificate.
    • Etichetta: lasciare vuoto questo valore.
    • Sottoscrizione, gruppo di risorse e Insieme di credenziali delle chiavi: immettere i valori corrispondenti al Key Vault creato nell'esercitazione precedente.
    • Segreto: selezionare il segreto denominato ExampleCertificate creato nella sezione precedente.
    • Versione segreta: versione più recente.

Nota

Se si fa riferimento a una versione specifica, il ricaricamento del segreto o del certificato da Key Vault restituirà sempre lo stesso valore.

Aggiornare il codice per ricaricare i segreti e i certificati Key Vault

Nel file Program.cs aggiornare il AddAzureAppConfiguration metodo per configurare un intervallo di aggiornamento per il certificato Key Vault usando il SetSecretRefreshInterval metodo . Con questa modifica, l'applicazione ricarica la coppia di chiavi pubblica-privata per ExampleCertificate ogni 12 ore.

config.AddAzureAppConfiguration(options =>
{
    options.Connect(settings["ConnectionStrings:AppConfig"])
            .ConfigureKeyVault(kv =>
            {
                kv.SetCredential(new DefaultAzureCredential());
                kv.SetSecretRefreshInterval("TestApp:Settings:KeyVaultCertificate", TimeSpan.FromHours(12));
            });
});

Il primo argomento nel SetSecretRefreshInterval metodo è la chiave del riferimento Key Vault in Configurazione app. L'argomento è facoltativo. Se il parametro chiave viene omesso, l'intervallo di aggiornamento verrà applicato a tutti i segreti e ai certificati che non dispongono di intervalli di aggiornamento singoli.

L'intervallo di aggiornamento definisce la frequenza con cui i segreti e i certificati verranno ricaricati da Key Vault, indipendentemente dalle modifiche apportate ai relativi valori in Key Vault o Configurazione app. Se si desidera ricaricare i segreti e i certificati quando il valore cambia in Configurazione app, è possibile monitorarli usando il ConfigureRefresh metodo . Per altre informazioni, vedere come usare la configurazione dinamica in un'app ASP.NET Core.

Scegliere l'intervallo di aggiornamento in base al ritardo accettabile dopo l'aggiornamento dei segreti e dei certificati in Key Vault. È anche importante considerare i limiti del servizio Key Vault per evitare di essere limitati.

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 si è appreso come configurare l'applicazione per ricaricare automaticamente i segreti e i certificati da Key Vault. Per informazioni su come usare l'identità gestita per semplificare l'accesso a Configurazione app e Key Vault, continuare con l'esercitazione successiva.