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
Ce tutoriel vous montre comment configurer votre application pour recharger automatiquement les secrets et les certificats à partir de Key Vault. Il s’appuie sur le tutoriel sur l’implémentation de références Key Vault dans votre code. Avant de continuer, terminez le Tutoriel : Utiliser des références Key Vault dans une application ASP.NET Core.
Package Microsoft.Azure.AppConfiguration.AspNetCore v4.4.0 ou version ultérieure.
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
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.
Sélectionnez Explorateur de configuration.
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.
- Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
- Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
- Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
- Sélectionnez Supprimer le groupe de ressources.
- 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.