Partager via


Recharger automatiquement les secrets et les certificats de Key Vault

App Configuration et Key Vault sont des services complémentaires utilisés côte à côte dans de nombreuses applications. App Configuration vous permet d’utiliser les services conjointement en créant des clés dans votre magasin App Configuration qui référencent les secrets et les certificats stockés dans Key Vault. Comme Key Vault stocke la paire de clés publique et privée d’un certificat en tant que secret, votre application peut récupérer n’importe quel certificat en tant que secret à partir de Key Vault.

Une bonne pratique de sécurité consiste à effectuer régulièrement une rotation des secrets et des certificats. Une fois qu’ils ont fait l’objet d’une rotation dans Key Vault, vous souhaitez que votre application récupère les valeurs de secret et de certificat les plus récentes. Il existe deux façons de procéder sans redémarrer votre application :

  • Mettez à jour une paire clé-valeur Sentinel pour déclencher l’actualisation de la totalité de votre configuration et recharger ainsi tous les secrets et certificats Key Vault. Pour plus d’informations, consultez Utiliser la configuration dynamique dans une application ASP.NET Core.
  • Rechargez régulièrement tout ou partie des secrets et certificats à partir de Key Vault.

Dans la première option, vous devez mettre à jour la paire clé-valeur Sentinel dans App Configuration chaque fois que vous faites une rotation des secrets et des certificats dans Key Vault. Cette approche fonctionne bien lorsque vous souhaitez forcer un rechargement immédiat des secrets et des certificats dans votre application. Toutefois, lorsque les secrets et les certificats font l’objet d’une rotation automatique dans Key Vault, votre application peut rencontrer des erreurs si vous ne mettez pas à jour en temps voulu la valeur de clé Sentinel. La deuxième option vous permet d’automatiser complètement ce processus. Vous pouvez configurer votre application pour recharger les secrets et les certificats à partir de Key Vault dans votre délai acceptable à partir du moment de la rotation. Ce tutoriel vous guide tout au long de la deuxième option.

Configuration requise

Ajouter un certificat de rotation automatique à Key Vault

Suivez le Tutoriel : Configurer la rotation automatique des certificats dans Key Vault pour ajouter un certificat de rotation automatique appelé ExampleCertificate au coffre de clés créé dans le tutoriel précédent.

Ajouter une référence au certificat Key Vault dans App Configuration

  1. Dans le portail Azure, sélectionnez Toutes les ressources, puis sélectionnez l’instance de magasin App Configuration que vous avez créée dans le tutoriel précédent.

  2. Sélectionnez Explorateur de configuration.

  3. Sélectionnez + Créer>Référence Key Vault, puis choisissez les valeurs suivantes :

    • Clé : Sélectionnez TestApp:Settings:KeyVaultCertificate.
    • Étiquette : Laissez cette valeur vide.
    • Abonnement, Groupe de ressources et Coffre de clés : Entrez les valeurs correspondant aux valeurs du coffre de clés que vous avez créé dans le tutoriel précédent.
    • Secret : Sélectionnez le secret nommé ExampleCertificate que vous avez créé dans la section précédente.
    • Version du secret : Version la plus récente.

Notes

Si vous référencez une version spécifique, le rechargement de secret ou du certificat à partir de Key Vault retournera toujours la même valeur.

Mettre à jour le code pour recharger les secrets et certificats Key Vault

Dans votre fichier Program.cs, mettez à jour la méthode AddAzureAppConfiguration pour définir un intervalle d’actualisation pour votre certificat Key Vault à l’aide de la méthode SetSecretRefreshInterval. Avec cette modification, votre application va recharger la paire de clés publique/privée pour ExampleCertificate toutes les 12 heures.

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

Le premier argument de la méthode SetSecretRefreshInterval est la clé de la référence Key Vault dans App Configuration. Cet argument est facultatif. Si le paramètre de clé est omis, l’intervalle d’actualisation s’applique à tous les secrets et certificats qui n’ont pas d’intervalles d’actualisation individuels.

L’intervalle d’actualisation définit la fréquence à laquelle vos secrets et certificats seront rechargés à partir de Key Vault, indépendamment des modifications apportées à leurs valeurs dans Key Vault ou App Configuration. Si vous souhaitez recharger les secrets et les certificats lorsque leur valeur change dans App Configuration, vous pouvez les surveiller à l’aide de la méthode ConfigureRefresh. Pour plus d’informations, consultez Utiliser la configuration dynamique dans une application ASP.NET Core.

Choisissez l’intervalle d’actualisation en fonction de votre délai acceptable une fois que vos secrets et certificats ont été mis à jour dans Key Vault. Il est également important de prendre en compte les limites du service Key Vault pour éviter d’être limité.

Nettoyer les ressources

Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.

Important

La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.

  1. Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
  2. Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
  3. Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
  4. Sélectionnez Supprimer le groupe de ressources.
  5. Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.

Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.

Étapes suivantes

Dans ce tutoriel, vous avez appris à configurer votre application pour recharger automatiquement les secrets et les certificats à partir de Key Vault. Pour apprendre à utiliser une identité managée afin de rationaliser l’accès à App Configuration et à Key Vault, passez au tutoriel suivant.