Modifier

Gestion du cycle de vie des certificats sur Azure

Azure Automation
Azure Event Grid
Azure Key Vault

En matière de cybersécurité, la mise en place d'un renouvellement automatique des certificats est importante pour maintenir un environnement sécurisé et fiable. L'absence de mise à jour ou de renouvellement des certificats en temps voulu expose les systèmes à des vulnérabilités. Les zones potentiellement vulnérables sont les suivantes :

  • Les certificats SSL/TLS qui sont expirés.
  • Les réseaux qui sont sujets à des brèches potentielles.
  • Données sensibles non sécurisées.
  • Services interrompus dans le cadre de processus interentreprises.
  • La perte de réputation de la marque qui compromet l'intégrité et la confidentialité des transactions numériques.

Azure Key Vault prend en charge le renouvellement automatique des certificats émis par une autorité de certification intégrée (CA) telle que DigiCert ou GlobalSign. Pour une autorité de certification non intégrée, une approche manuelle est requise.

Cet article répond à cette limitation en proposant un processus de renouvellement automatique adapté aux certificats provenant d'autorités de certification non intégrées. Ce processus stocke de manière transparente les nouveaux certificats dans Key Vault, améliore l'efficacité, renforce la sécurité et simplifie le déploiement en intégrant diverses ressources Azure.

Un processus de renouvellement automatique réduit l'erreur humaine et minimise les interruptions de service. Lorsque vous automatisez le renouvellement des certificats, cela permet non seulement d'accélérer le processus de renouvellement, mais aussi de diminuer la probabilité d'erreurs susceptibles de se produire lors d'une manipulation manuelle. Lorsque vous utilisez les capacités de Key Vault et de ses extensions, vous pouvez construire un processus automatique efficace pour optimiser les opérations et la fiabilité.

Si le renouvellement automatique des certificats est l'objectif initial, un objectif plus large est de renforcer la sécurité dans tous les domaines du processus. Il s'agit notamment de voir comment implémenter le principe du moindre privilège (PoLP) ou de contrôles d'accès similaires grâce à l'utilisation de Key Vault. Il s'agit également de souligner l'importance de pratiques robustes de journalisation et de surveillance pour Key Vault. Cet article met en évidence l’importance de l’utilisation de Key Vault pour fortifier l’ensemble de votre cycle de vie de gestion des certificats et montre que les avantages en matière de sécurité ne concernent pas seulement le stockage de certificats.

Vous pouvez utiliser Key Vault et son processus de renouvellement automatique pour mettre à jour les certificats de manière continue. Le renouvellement automatique joue un rôle important dans le processus de déploiement et permet aux services Azure qui s’intègrent à Key Vault de bénéficier de certificats à jour. Cet article explique comment le renouvellement continu et l'accessibilité contribuent à l'efficacité globale du déploiement et à la fiabilité des services Azure.

Architecture

Voici un bref aperçu de l'architecture sous-jacente de cette solution.

Schéma de l'architecture de gestion du cycle de vie des certificats.

Téléchargez un fichier Visio de cette architecture.

L'environnement Azure comprend les ressources suivantes de la plateforme en tant que service (PaaS) : un Key Vault dédié seulement au stockage des certificats émis par la même autorité de certification non intégrée, une rubrique du système Azure Event Grid, une file d'attente de compte de stockage et un compte Azure Automation qui expose un webhook ciblé par Event Grid.

Ce scénario suppose qu'une infrastructure à clé publique (PKI) est déjà en place et consiste en une autorité de certification Microsoft Enterprise reliée à un domaine dans Microsoft Entra ID. L'ICP et le domaine Active Directory peuvent tous deux résider sur Azure ou sur site, ainsi que les serveurs qui doivent être configurés pour le renouvellement des certificats.

Les machines virtuelles (VM) avec des certificats pour surveiller le renouvellement n'ont pas besoin d'être jointes à Active Directory ou à Microsoft Entra ID. La seule exigence est que l'autorité de certification et le worker hybride, si situé sur une machine virtuelle différente de l'autorité de certification, soient reliés à Active Directory.

Les sections suivantes fournissent des détails sur le processus de renouvellement automatique.

Workflow

Cette image montre le workflow automatique pour le renouvellement des certificats dans l'écosystème Azure.

Diagramme du workflow automatique pour le renouvellement des certificats dans l'écosystème Azure.

  1. Configuration du Key Vault : La phase initiale du processus de renouvellement consiste à stocker l'objet du certificat dans la section Certificats désignée du Key Vault.

    Bien que cela ne soit pas obligatoire, vous pouvez mettre en place des notifications par e-mail personnalisées en apposant un balise sur le certificat avec l'adresse e-mail du destinataire. Le fait d'apposer une balise sur le certificat garantit des notifications en temps opportun lorsque le processus de renouvellement est terminé. Si plusieurs destinataires sont nécessaires, séparez leurs adresses e-mail par une virgule ou un point-virgule. Le nom de la balise à cette fin est Destinataire, et sa valeur est une ou plusieurs adresses e-mail des administrateurs désignés.

    Lorsque vous utilisez des balises au lieu des notifications de certificat intégrées, vous pouvez appliquer des notifications à un certificat spécifique avec un destinataire désigné. Les notifications de certificats intégrées s'appliquent indistinctement à tous les certificats du Key Vault et utilisent le même destinataire pour tous.

    Vous pouvez intégrer les notifications intégrées à la solution, mais en utilisant une approche différente. Alors que les notifications intégrées ne peuvent notifier que l'expiration prochaine d'un certificat, les balises peuvent envoyer des notifications lorsque le certificat est renouvelé sur l'autorité de certification interne et lorsqu'il est disponible dans le coffre-fort.

  2. Configuration de l'extension Key Vault : Pour les serveurs qui doivent utiliser les certificats, vous devez doter ces serveurs de l'extension Key Vault, un outil polyvalent compatible avec les systèmes Windows et Linux. Les serveurs d'infrastructure Azure en tant que service (IaaS) et les serveurs sur site ou autres serveurs cloud qui s'intègrent via Azure Arc sont pris en charge. Configurez l'extension Key Vault pour qu'elle interroge périodiquement Key Vault à la recherche de certificats mis à jour. L'intervalle d'interrogation est personnalisable et flexible, de sorte qu'il peut s'aligner sur des exigences opérationnelles spécifiques.

  3. Intégration d'Event Grid : À l'approche de l'expiration d'un certificat, deux abonnements à Event Grid interceptent cet événement important de la durée de vie de la clé dans le coffre de clés.

  4. Déclencheurs Event Grid : Un abonnement Event Grid envoie des informations sur le renouvellement des certificats à une file d'attente de compte de stockage. L'autre abonnement déclenche le lancement d'un runbook via le webhook configuré dans le compte Automation. Si le runbook ne parvient pas à renouveler le certificat, ou si l'autorité de certification n'est pas disponible, un processus planifié retente de renouveler le runbook à partir de ce point jusqu'à ce que la file d'attente se résorbe. Ce processus rend la solution robuste.

    Pour améliorer la résilience de la solution, mettez en place un mécanisme de localisation des lettres mortes. Il gère les erreurs potentielles qui peuvent survenir pendant le transit des messages entre Event Grid et les cibles d'abonnement, la file d'attente de stockage et le webhook.

  5. File d'attente du compte de stockage : Le runbook se lance dans le serveur CA configuré en tant que travailleur de runbook hybride d'automatisation. Il reçoit tous les messages de la file d'attente du compte de stockage qui contiennent le nom du certificat arrivant à expiration et le coffre-fort de clés qui héberge le runbook. Les étapes suivantes se déroulent pour chaque message de la file d'attente.

  6. Renouvellement du certificat : Le script du runbook se connecte à Azure pour récupérer le nom du modèle du certificat que vous avez configuré lors de la génération. Le modèle est le composant de configuration de l'autorité de certification qui définit les attributs et l'objectif des certificats à générer.

    Une fois que le script s'est interfacé avec Key Vault, il lance une requête de renouvellement de certificat. Cette requête déclenche la génération par Key Vault d'une demande de signature de certificat (CSR) et applique le même modèle que celui qui a généré le certificat d'origine. Ce processus garantit que le certificat renouvelé est conforme aux stratégies de sécurité prédéfinies. Pour plus d'informations sur la sécurité dans le processus d'authentification et d'autorisation, consultez la section Sécurité.

    Le script télécharge la RSC et la soumet à l'autorité de certification.

    L'autorité de certification génère un nouveau certificat x509 basé sur le modèle correct et le renvoie au script. Cette étape permet de s'assurer que le certificat renouvelé s'aligne sur les stratégies de sécurité prédéfinies.

  7. Fusion du certificat et mise à jour du Key Vault : le script fusionne le nouveau certificat dans le coffre-fort, ce qui finalise le processus de mise à jour et supprime le message de la file d'attente. Tout au long du processus, la clé privée du certificat n'est jamais extraite du coffre-fort.

  8. Surveillance et notification par e-mail : Toutes les opérations que divers composants Azure exécutent, comme un compte d'automatisation, Key Vault, une file d'attente de compte de stockage et Event Grid, sont journalisées dans l'espace de travail Azure Monitor Logs pour permettre la surveillance. Après la fusion du certificat dans le coffre-fort de clés, le script envoie un e-mail aux administrateurs pour les informer du résultat.

  9. Récupération du certificat : L'extension Key Vault présente sur le serveur joue un rôle important au cours de cette phase. Elle télécharge automatiquement la dernière version du certificat du coffre-fort dans le magasin local du serveur qui utilise le certificat. Vous pouvez configurer plusieurs serveurs avec l'extension Key Vault pour qu'ils récupèrent le même certificat (caractère générique ou avec plusieurs certificats Subject Alternative Name (SAN)) à partir du coffre-fort.

Composants

La solution utilise divers composants pour gérer le renouvellement automatique des certificats sur Azure. Les sections suivantes décrivent chaque composant et son objectif spécifique.

Extension de Key Vault

L'extension Key Vault joue un rôle essentiel dans l'automatisation du renouvellement des certificats et doit être installée sur les serveurs qui nécessitent cette automatisation. Pour plus d'informations sur les procédures d'installation sur les serveurs Windows, consultez Extension Key Vault pour Windows. Pour plus d'informations sur les procédures d'installation sur les serveurs Linux, consultez Extension Key Vault pour Linux. Pour plus d'informations sur les serveurs compatibles avec Azure Arc, consultez Extension Key Vault pour les serveurs compatibles avec Arc.

Remarque

Vous trouverez ci-dessous des exemples de scripts que vous pouvez exécuter à partir d'Azure Cloud Shell pour configurer l'extension Key Vault :

Les paramètres de configuration de l'extension Key Vault comprennent :

  • Nom du Key Vault : Le coffre-fort de clés qui contient le certificat pour le renouvellement.
  • Nom du certificat : Le nom du certificat à renouveler.
  • Magasin de certificats, nom et emplacement : Le magasin de certificats dans lequel le certificat est stocké. Sur les serveurs Windows, la valeur par défaut pour Nom est My et Localisation est LocalMachine, qui est le magasin de certificats personnels de l'ordinateur. Sur les serveurs Linux, vous pouvez spécifier un chemin d'accès au système de fichiers, en supposant que la valeur par défaut est AzureKeyVault, qui est le magasin de certificats pour Key Vault.
  • linkOnRenewal : Un indicateur qui indique si le certificat doit être lié au serveur lors du renouvellement. S'il est défini sur true sur les machines Windows, il copie le nouveau certificat dans le magasin et le lie à l'ancien certificat, ce qui a pour effet de lier à nouveau le certificat. La valeur par défaut est false, ce qui signifie qu'une liaison explicite est nécessaire.
  • pollingIntervalInS : L'intervalle d'interrogation de l'extension Key Vault pour vérifier s'il existe des mises à jour pour les certificats. La valeur par défaut est 3600 secondes (1 heure).
  • authenticationSetting : Le paramètre d'authentification pour l'extension Key Vault. Pour les serveurs Azure, vous pouvez omettre ce paramètre, ce qui signifie que l'identité gérée attribuée par le système de la machine virtuelle est utilisée contre le Key Vault . Pour les serveurs sur site, la spécification du paramètre msiEndpoint = "http://localhost:40342/metadata/identity" signifie l'utilisation du principal de service associé à l'objet ordinateur créé lors de l'intégration d'Azure Arc.

Remarque

Spécifiez les paramètres de l'extension Key Vault uniquement lors de la configuration initiale. Ceci permet de s'assurer qu'ils ne feront l'objet d'aucune modification au cours du processus de renouvellement.

Compte Automation

Le compte Automation gère le processus de renouvellement des certificats. Vous devez configurer le compte avec un runbook en utilisant le script PowerShell.

Vous devez également créer un groupe Worker hybride. Associez le groupe Worker hybride à un serveur Windows Server membre du même domaine Active Directory que l'autorité de certification, idéalement l'autorité de certification elle-même, pour lancer les runbooks.

Le runbook doit avoir un webhook associé, lancé à partir du worker runbook hybride. Configurez l'URL du webhook dans l'abonnement aux événements de la rubrique système Event Grid.

File d'attente du compte de stockage

La file d'attente du compte de stockage stocke les messages qui contiennent le nom du certificat en cours de renouvellement et le Key Vault qui contient le certificat. Configurez la file d'attente du compte de stockage dans l'abonnement aux événements de la rubrique du système Event Grid. La file d'attente gère le découplage du script de l'événement de notification d'expiration du certificat. Elle prend en charge la persistance de l'événement dans un message de file d'attente. Cette approche permet de s'assurer que le processus de renouvellement des certificats est répété par le biais de tâches planifiées même si des problèmes surviennent pendant l'exécution du script.

Runbook Worker hybride

Le gestionnaire de runbook hybride joue un rôle essentiel dans l'utilisation des runbooks. Vous devez installer le worker runbook hybride avec la méthode d'extension Azure Hybrid Worker, qui est le mode pris en charge pour une nouvelle installation. Vous le créez et l'associez à un membre de Windows Server dans le même domaine Active Directory que l'autorité de certification, idéalement l'autorité de certification elle-même.

Key Vault

Key Vault est le référentiel sécurisé des certificats. Sous la section des événements du Key Vault, associez la rubrique système Event Grid au webhook du compte Automation et à un abonnement.

Event Grid

Event Grid gère la communication basée sur les événements au sein d'Azure. Configurez Event Grid en paramétrant la rubrique système et l'abonnement aux événements pour surveiller les événements pertinents. Les événements pertinents comprennent les alertes d'expiration de certificat, le déclenchement d'actions dans le workflow d'automatisation et la publication de messages dans la file d'attente du compte de stockage. Configurez la rubrique système Event Grid avec les paramètres suivants :

  • Source : Le nom du Key Vault contenant les certificats.
  • Type de source : Le type de la source. Par exemple, le type de source pour cette solution est Azure Key Vault
  • Types d'événements : Le type d'événement à surveiller. Par exemple, le type d'événement pour cette solution est Microsoft.KeyVault.CertificateNearExpiry. Cet événement se déclenche lorsqu'un certificat est proche de l'expiration.
  • Abonnement pour le Webhook :
    • Nom de l'abonnement : Le nom de l'abonnement à l'événement.
    • Point de terminaison : Le type de point de terminaison à utiliser. Par exemple, le type de point de terminaison pour cette solution est Webhook.
    • Point de terminaison : L'URL du webhook associé au runbook du compte d'automatisation. Pour plus d'informations, consultez Compte d'automatisation.
  • Abonnement pour StorageQueue :
    • Nom de l'abonnement : Le nom de l'abonnement à l'événement.
    • Point de terminaison : Le type de point de terminaison à utiliser. Par exemple, le type de point de terminaison pour cette solution est StorageQueue.
    • Point de terminaison : La file d'attente du compte de stockage.

Autres solutions

Cette solution utilise un compte Automation pour orchestrer le processus de renouvellement des certificats et utilise un worker runbook hybride pour offrir la flexibilité nécessaire pour s'intégrer à une autorité de certification locale ou dans d'autres clouds.

Une autre approche consiste à utiliser des applications logiques. La principale différence entre les deux approches est que le compte Automation est une plateforme de solution PaaS (Platform as a Service), tandis que Logic Apps est une solution SaaS (Software as a Service).

Le principal avantage de Logic Apps est qu'il s'agit d'un service entièrement géré. Vous n'avez pas à vous soucier de l'infrastructure sous-jacente. De plus, Logic Apps peut facilement s'intégrer à des connecteurs externes, ce qui élargit l'éventail des possibilités de notification, par exemple en s'engageant avec Microsoft Teams ou Microsoft 365.

Logic Apps ne dispose pas d’une fonctionnalité similaire à celle du worker runbook hybride, ce qui entraîne une intégration moins flexible avec l’autorité de certification. Ainsi, un compte Automation est l’approche idéale.

Détails du scénario

Chaque organisation a besoin d'une gestion sécurisée et efficace du cycle de vie de ses certificats. Ne pas mettre à jour un certificat avant son expiration peut entraîner des interruptions de service et engendrer des coûts importants pour l'entreprise.

Les entreprises exploitent généralement des infrastructures informatiques complexes impliquant plusieurs équipes responsables du cycle de vie des certificats. La nature manuelle du processus de renouvellement des certificats introduit souvent des erreurs et consomme un temps précieux.

Cette solution relève les défis en automatisant le renouvellement des certificats émis par Microsoft Certificate Service. Ce service est largement utilisé pour diverses applications serveur telles que les serveurs Web, les serveurs SQL, et à des fins de chiffrement, de non-répudiation et de signature, tout en garantissant des mises à jour en temps opportun et un stockage sécurisé des certificats au sein de Key Vault. La compatibilité du service avec les serveurs Azure et les serveurs sur site permet un déploiement flexible.

Cas d’usage potentiels

Cette solution s'adresse aux organisations de divers secteurs d'activité qui :

  • Utilisent Microsoft Certificate Service pour la génération de certificats de serveur.
  • Requièrent l'automatisation du processus de renouvellement des certificats pour accélérer les opérations et minimiser les erreurs, ce qui permet d'éviter les pertes d'activité et les violations des contrats de niveau de service (SLA).
  • exigent un stockage sécurisé des certificats dans des référentiels tels que Key Vault.

Cette architecture sert d'approche de déploiement fondamentale pour tous les abonnements de zone d'atterrissage d'application.

À propos de l’installation

Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour améliorer la qualité d’une charge de travail. Pour plus d'informations, consultez Microsoft Azure Well-Architected Framework.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Dans le système Key Vault, les certificats sont stockés en toute sécurité sous forme de secrets chiffrés, protégés par le contrôle d'accès basé sur les rôles (RBAC) d'Azure.

Tout au long du processus de renouvellement des certificats, les composants qui utilisent les identités sont :

  • Le compte système du travailleur de runbook hybride, qui fonctionne sous le compte de la machine virtuelle.
  • L'extension Key Vault, qui utilise l'identité managée associée à la machine virtuelle.
  • Le compte d'automatisation, qui utilise son identité gérée désignée.

Le principe du moindre privilège est rigoureusement appliqué à toutes les identités engagées dans la procédure de renouvellement des certificats.

Le compte système du serveur hybride runbook worker doit avoir le droit d'inscrire des certificats sur un ou plusieurs modèles de certificats qui génèrent de nouveaux certificats.

Sur le key vault contenant les certifications, l'identité du compte Automation doit avoir le rôle Key Vault Certificate Officer. Par ailleurs, les serveurs nécessitant un accès aux certificats doivent posséder des autorisations Get et List dans le magasin de certificats du Key Vault.

Dans la file d'attente du compte de stockage, l'identité du compte d'automatisation doit détenir les rôles Storage Queue Data Contributor, Reader and Data Access et Reader.

Dans les scénarios où l'extension Key Vault se déploie sur une machine virtuelle Azure, l'authentification s'effectue via l'identité managée Identity de la machine virtuelle. Toutefois, lorsqu'elle est déployée sur un serveur compatible avec Azure Arc, l'authentification est gérée à l'aide d'un principal de service. L'identité gérée et le principal de service doivent tous deux se voir attribuer le rôle d'utilisateur secret du coffre-fort de clés au sein du coffre-fort de clés qui stocke le certificat. Vous devez utiliser un rôle secret car le certificat est stocké dans le coffre-fort de clés en tant que secret.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d'informations, consultez Liste de contrôle de la révision de la conception pour l'optimisation des coûts.

Cette solution utilise les solutions Azure PaaS qui fonctionnent dans un cadre de paiement à l'utilisation pour optimiser les coûts. Les dépenses dépendent du nombre de certificats à renouveler et du nombre de serveurs équipés de l'extension Key Vault, ce qui entraîne des frais peu élevés.

Les dépenses liées à l'extension du Key Vault et au worker runbook hybride dépendent de vos choix d'installation et de vos intervalles d'interrogation. Le coût d'Event Grid correspond au volume d'événements générés par Key Vault. Parallèlement, le coût du compte Automation est lié au nombre de runbooks que vous utilisez.

Le coût de Key Vault dépend de plusieurs facteurs, notamment de l'UGS que vous avez choisie (Standard ou Premium), de la quantité de certificats stockés et de la fréquence des opérations effectuées sur les certificats.

Des considérations similaires aux configurations décrites pour Key Vault s'appliquent également au compte de stockage. Dans ce scénario, une UGS standard avec une réplication de stockage redondante localement suffit pour le compte de stockage. En général, le coût de la file d'attente du compte de stockage est minime.

Pour estimer le coût d’implémentation de cette solution, utilisez la Calculatrice de prix Azure en entrant les services décrits dans cet article.

Excellence opérationnelle

L’excellence opérationnelle couvre les processus d’exploitation qui déploient une application et maintiennent son fonctionnement en production. Pour plus d’informations, consultez la Liste de contrôle de l'examen de la conception pour l'excellence opérationnelle.

La procédure automatique de renouvellement des certificats permet de stocker les certificats en toute sécurité grâce à des processus normalisés applicables à tous les certificats au sein de Key Vault.

L'intégration avec Event Grid déclenche des actions supplémentaires, telles que la notification de Microsoft Teams ou Microsoft 365 et la rationalisation du processus de renouvellement. Cette intégration réduit considérablement le temps de renouvellement des certificats et atténue les risques d'erreurs susceptibles d'entraîner des interruptions d'activité et des violations des contrats de niveau de service (SLA).

De plus, l'intégration transparente avec Azure Monitor, Microsoft Sentinel, Microsoft Copilot for Security et Azure Security Center facilite la surveillance continue du processus de renouvellement des certificats. Elle prend en charge la détection des anomalies et permet de s'assurer que des mesures de sécurité solides sont maintenues.

Déployer ce scénario

Sélectionnez le bouton suivant pour déployer l'environnement décrit dans cet article. Le déploiement prend environ deux minutes et crée un service Key Vault, une rubrique système Event Grid configurée avec les deux abonnements, un compte de stockage contenant la file d'attente certlc et un compte Automation contenant le runbook et le webhook liés à Event Grid.

Déployer sur Azure

Vous trouverez des informations détaillées sur les paramètres nécessaires au déploiement dans le portail des exemples de code.

Important

Vous pouvez déployer un environnement de laboratoire complet pour démontrer l'ensemble du workflow de renouvellement automatique des certificats. Utilisez l'exemple de code pour déployer les ressources suivantes :

  • Services de domaine Active Directory (AD DS) au sein d'une machine virtuelle de contrôleur de domaine.
  • Services de certificats Active Directory (AD CS) dans une machine virtuelle CA, jointe au domaine, configurée avec un modèle, WebServerShort, pour l'enrôlement des certificats à renouveler.
  • Un serveur SMTP Windows installé sur la même machine virtuelle de l'autorité de certification pour l'envoi de notifications par e-mail. MailViewer est également installé pour vérifier les notifications par e-mail envoyées.
  • L'extension Key Vault installée sur la machine virtuelle du contrôleur de domaine pour récupérer les certificats renouvelés dans l'extension Key Vault.

Déployer sur Azure

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Principaux auteurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Key Vault
Extension Key Vault pour Windows
Extension Key Vault pour Linux
Qu'est-ce que Azure Automation ?
Worker runbook hybride de Azure Automation
Azure Event Grid