Arrêt TLS avec certificats Key Vault

Azure Key Vault est un magasin des secrets managé par une plateforme que vous pouvez utiliser pour protéger des secrets, des clés et des certificats TLS/SSL. Azure Application Gateway prend en charge l’intégration dans Key Vault des certificats de serveur associés à des écouteurs HTTPS. Cette prise en charge se limite à la référence SKU v2 d’Application Gateway.

Application Gateway propose deux modèles pour la terminaison TLS :

  • Fournissez des certificats TLS/SSL associés à l'écouteur. Ce modèle constitue le moyen traditionnel de transmettre des certificats TLS/SSL à Application Gateway pour un arrêt TLS.
  • Vous pouvez fournir une référence à un certificat Key Vault existant ou un secret lorsque vous créez un écouteur HTTPS.

L’intégration d’Application Gateway avec Key Vault offre de nombreux avantages, notamment :

  • Une sécurité renforcée, dans la mesure où les certificats TLS/SSL ne sont pas directement gérés par l'équipe de développement d'applications. L’intégration permet à une équipe de sécurité distincte de :
    • Configurer des passerelles d’application.
    • Contrôler les cycles de vie des passerelles d’application.
    • Accorder des autorisations à certaines passerelles d’application pour accéder aux certificats stockés dans votre coffre de clés.
  • Prendre en charge l’importation de certificats existants dans votre coffre de clés. Ou utiliser les API Key Vault pour créer et gérer de nouveaux certificats avec un partenaire Key Vault approuvé.
  • Prise en charge du renouvellement automatique des certificats stockés dans votre coffre de clés.

Certificats pris en charge

À l’heure actuelle, Application Gateway prend uniquement en charge les certificats validés par logiciel. Les certificats validés par module de sécurité matériel ne sont pas pris en charge.

Une fois qu'Application Gateway est configurée pour utiliser des certificats Key Vault, ses instances récupèrent le certificat dans Key Vault et l'installent localement pour l'arrêt TLS. Les instances interrogent Key Vault à des intervalles de quatre heures pour récupérer une version renouvelée du certificat, le cas échéant. Si un certificat mis à jour est trouvé, le certificat TLS/SSL associé à l’écouteur HTTPS est automatiquement pivoté.

Conseil

Toute modification apportée à Application Gateway force une case activée par rapport à Key Vault pour voir si de nouvelles versions de certificats sont disponibles. Cela comprend, sans s’y limiter, les modifications apportées aux configurations IP front-end, aux écouteurs, aux règles, aux pools de back-ends, aux étiquettes de ressources, etc. Si un certificat mis à jour est trouvé, le nouveau certificat est immédiatement présenté.

Dans Key Vault, Application Gateway utilise un identificateur de secret pour référencer les certificats. Pour Azure PowerShell, Azure CLI ou Azure Resource Manager, nous vous recommandons vivement d’utiliser un identificateur de secret qui ne spécifie pas de version. De cette façon, Application Gateway fait pivoter automatiquement le certificat si une version plus récente est disponible dans votre coffre de clés. Voici un exemple d’URI de secret sans version : https://myvault.vault.azure.net/secrets/mysecret/. Vous pouvez faire référence aux étapes PowerShell fournies dans la section suivante.

Le portail Azure prend uniquement en charge les certificats Key Vault, et non les secrets. Application Gateway continue de prendre en charge le référencement des secrets à partir de Key Vault, mais uniquement via des ressources autres que le portail, telles que PowerShell, Azure CLI, les API et les modèles Azure Resource Manager (modèles ARM).

Les références aux coffres de clés dans d’autres abonnements Azure sont prises en charge, mais doivent être configurées via un modèle ARM, Azure PowerShell, CLI, Bicep, etc. La configuration du coffre de clés entre abonnements n’est pas prise en charge par Application Gateway via le portail Azure aujourd’hui.

Paramètres de certificat dans Key Vault

Pour la terminaison TLS, Application Gateway prend uniquement en charge les certificats au format PFX (Personal Information Exchange). Vous pouvez importer un certificat existant ou en créer un dans votre coffre de clés. Pour éviter tout échec, assurez-vous que l’état du certificat est défini sur Activé dans Key Vault.

Fonctionnement de l’intégration

L’intégration d’Application Gateway avec Key Vault fait appel à un processus de configuration en trois étapes :

Diagram that shows three steps for integrating Application Gateway with Key Vault.

Remarque

L’intégration d’Azure Application Gateway avec Key Vault prend en charge la stratégie d’accès au coffre et les modèles d’autorisation de contrôle d’accès en fonction du rôle Azure.

Obtenir une identité managée affectée par l’utilisateur

Application Gateway utilise une identité managée pour récupérer des certificats depuis Key Vault en votre nom.

Vous pouvez soit créer une identité managée affectée par l’utilisateur, soit réutiliser une identité existante avec l’intégration. Pour créer une identité managée affectée par l’utilisateur, consultez Créer une identité managée affectée par l’utilisateur avec le portail Azure.

Déléguer l’identité managée affectée par l’utilisateur à Key Vault

Définissez des stratégies d’accès pour utiliser l’identité managée affectée par l’utilisateur avec votre coffre de clés :

  1. Dans le portail Azure, accédez à Key Vault.

  2. Sélectionnez le coffre de clés qui contient votre certificat.

  3. Si vous utilisez le modèle d’autorisation Stratégie d’accès à Key Vault : sélectionnez Stratégies d'accès, puis + Ajouter une stratégie d’accès, Obtenir pour Autorisations de secret, et choisissez votre identité managée affectée par l’utilisateur pour Sélectionner le principal. Ensuite, sélectionnez Enregistrer.

    Si vous utilisez le contrôle d’accès en fonction du rôle Azure, suivez l’article Attribuer à une identité managée l’accès à une ressource et attribuez à l’identité managée affectée par l’utilisateur le rôle Utilisateur des secrets Key Vault sur le coffre de clés Azure.

Vérifier les autorisations de pare-feu pour Key Vault

Depuis le 15 mars 2021, Key Vault reconnaît Application Gateway en tant que service approuvé en tirant parti des identités managées par l’utilisateur à des fins d’authentification auprès d’Azure Key Vault. L’utilisation de points de terminaison de service et l’activation de l’option de services approuvés pour le pare-feu de Key Vault vous permettent de créer une limite réseau sécurisée dans Azure. Vous pouvez refuser au trafic en provenance de tous les réseaux (y compris le trafic Internet) l’accès à Key Vault tout en le rendant accessible pour une ressource Application Gateway dans votre abonnement.

Lorsque vous utilisez un coffre de clés restreint, effectuez les étapes suivantes pour configurer Application Gateway de manière à utiliser des pare-feu et des réseaux virtuels :

Conseil

Les étapes 1 à 3 ne sont pas nécessaires si un point de terminaison privé est activé sur votre coffre de clés. La passerelle applicative peut accéder au coffre de clés à l’aide de l’adresse IP privée.

Important

Si vous utilisez des points de terminaison privés pour accéder à Key Vault, vous devez lier la zone DNS privée privatelink.vaultcore.azure.net, qui comporte l’enregistrement correspondant au coffre Key Vault mentionné, au réseau virtuel contenant Application Gateway. Les serveurs DNS personnalisés peuvent continuer à être utilisés sur le réseau virtuel au lieu des résolveurs fournis par Azure DNS, mais la zone DNS privée doit également rester liée au réseau virtuel.

  1. Dans le portail Azure, dans votre coffre de clés, sélectionnez Réseaux.

  2. Sous l’onglet Pare-feux et réseaux virtuels, sélectionnez Réseaux sélectionnés.

  3. Pour Réseaux virtuels, sélectionnez + Ajouter des réseaux virtuels existants, puis ajoutez le réseau virtuel et le sous-réseau correspondant à votre instance Application Gateway. Si vous y êtes invité, vérifiez que la case Ne pas configurer le ou les points de terminaison de service « Microsoft.KeyVault » à ce stade, case à cocher n’est pas cochée pour vous assurer que le point de terminaison de service Microsoft.KeyVault est activé sur le sous-réseau.

  4. Sélectionnez Oui pour autoriser les services approuvés à contourner le pare-feu du coffre de clés.

    Screenshot that shows selections for configuring Application Gateway to use firewalls and virtual networks.

Remarque

Si vous déployez l’instance Application Gateway à l’aide d’un modèle ARM, que ce soit en utilisant Azure CLI ou PowerShell, ou par le biais d’une application Azure déployée à partir du portail Azure, le certificat SSL est stocké dans le coffre de clés sous forme de fichier PFX codé en Base64. Vous devez effectuer les étapes décrites dans Utiliser Azure Key Vault pour transmettre une valeur de paramètre sécurisée pendant le déploiement.

Il est particulièrement important de définir enabledForTemplateDeployment sur true. Le certificat peut avoir ou non un mot de passe. Pour un certificat avec mot de passe, l’exemple suivant montre une configuration possible pour l’entrée sslCertificates dans la section properties de la configuration du modèle ARM pour Application Gateway.

"sslCertificates": [
     {
         "name": "appGwSslCertificate",
         "properties": {
             "data": "[parameters('appGatewaySSLCertificateData')]",
            "password": "[parameters('appGatewaySSLCertificatePassword')]"
        }
    }
]

Les valeurs de appGatewaySSLCertificateData et appGatewaySSLCertificatePassword sont recherchées dans le coffre de clés, comme décrit dans Référencement de secrets avec un ID dynamique. Suivez les références en remontant à partir de parameters('secretName') pour voir comment la recherche se produit. Si le certificat est sans mot de passe, omettez l’entrée password.

Configurer l’écouteur des paramètres de passerelle applicative

Autorisation Key Vault Modèle de stratégie d’accès du coffre

Accédez à votre Application Gateway dans le portail Azure et sélectionnez l’onglet Écouteurs. Sélectionnez Ajouter un écouteur (ou sélectionnez un écouteur existant) et spécifiez HTTPS pour le protocole.

Sous Choisir un certificat, sélectionnez Créer, puis Choisir un certificat à partir de Key Vault sous Paramètres HTTPS.

Pour Nom du certificat, tapez un nom convivial pour le certificat à référencer dans Key Vault. Choisissez votre identité managée, le coffre de clés et le certificat.

Une fois cela fait, sélectionnez Ajouter (si vous créez) ou Enregistrer (en cas de modification) pour appliquer le certificat Key Vault référencé à l’écouteur.

Modèle d’autorisation de contrôle d’accès en fonction du rôle Azure Key Vault

Application Gateway prend en charge les certificats référencés dans Key Vault par le biais du modèle d’autorisation de contrôle d’accès en fonction du rôle. Les premières étapes pour référencer le coffre de clés doivent être effectuées par le biais d’un modèle ARM, de Bicep, d’Azure CLI ou de PowerShell.

Remarque

La spécification de certificats Azure Key Vault qui sont soumis au modèle d’autorisation de contrôle d’accès en fonction du rôle n’est pas prise en charge via le portail.

Dans cet exemple, nous allons utiliser PowerShell pour référencer un nouveau secret Key Vault.

# Get the Application Gateway we want to modify
$appgw = Get-AzApplicationGateway -Name MyApplicationGateway -ResourceGroupName MyResourceGroup
# Specify the resource id to the user assigned managed identity - This can be found by going to the properties of the managed identity
Set-AzApplicationGatewayIdentity -ApplicationGateway $appgw -UserAssignedIdentityId "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyManagedIdentity"
# Get the secret ID from Key Vault
$secret = Get-AzKeyVaultSecret -VaultName "MyKeyVault" -Name "CertificateName"
$secretId = $secret.Id.Replace($secret.Version, "") # Remove the secret version so Application Gateway uses the latest version in future syncs
# Specify the secret ID from Key Vault 
Add-AzApplicationGatewaySslCertificate -KeyVaultSecretId $secretId -ApplicationGateway $appgw -Name $secret.Name
# Commit the changes to the Application Gateway
Set-AzApplicationGateway -ApplicationGateway $appgw

Une fois les commandes exécutées, vous pouvez accéder à votre Application Gateway dans le portail Azure et sélectionner l’onglet Écouteurs. Cliquez sur Ajouter un écouteur (ou sélectionnez-en un existant) et définissez le protocole sur HTTPS.

Sous Choisir un certificat, sélectionnez le certificat nommé au cours des étapes précédentes. Une fois cela fait, sélectionnez Ajouter (si vous créez) ou Enregistrer (en cas de modification) pour appliquer le certificat Key Vault référencé à l’écouteur.

Examen et résolution des erreurs Key Vault

Remarque

Il est important de prendre en compte tout impact sur votre ressource application gateway lors de la modification ou de la révocation de l’accès à votre ressource Key Vault. Si votre passerelle d’application ne parvient pas à accéder au coffre de clés associé ou à localiser l’objet de certificat dans celui-ci, la passerelle d’application définit automatiquement l’écouteur à un état désactivé.

Vous pouvez identifier cet événement piloté par l’utilisateur en consultant Resource Health pour votre passerelle d’application. Plus d’informations

Azure Application Gateway ne se contente pas d’interroger la version du certificat renouvelé sur Key Vault toutes les quatre heures. Il journalise également les erreurs et est intégré à Azure Advisor pour faire apparaître toute configuration incorrecte avec une recommandation pour la corriger.

  1. Connectez-vous à votre portail Azure.
  2. Sélectionnez Advisor.
  3. Sélectionnez la catégorie Excellence opérationnelle dans le menu de gauche.
  4. Vous trouverez une recommandation intitulée Résoudre le problème Azure Key Vault pour votre passerelle Application Gateway si votre passerelle rencontre ce problème. Vérifiez que l’abonnement approprié est sélectionné dans les options de liste déroulante ci-dessus.
  5. Sélectionnez-le pour afficher les détails de l’erreur, la ressource de coffre de clés associée et le guide de résolution des problèmes pour résoudre votre problème exact.

En identifiant un tel événement via Azure Advisor ou Resource Health, vous pouvez rapidement résoudre les problèmes de configuration liés à votre coffre de clés. Nous vous recommandons vivement de tirer parti des alertes Azure Advisor et Resource Health pour rester informé lorsqu’un problème est détecté.

Pour l’alerte Advisor, utilisez « Résoudre le problème Azure Key Vault pour votre passerelle Application Gateway » dans le type de recommandation indiqué :
Diagram that shows steps for Advisor alert.

Vous pouvez configurer l’alerte Resource Health comme illustré :
Diagram that shows steps for Resource health alert.

Étapes suivantes

Configurer l'arrêt TLS avec des certificats Key Vault à l'aide d'Azure PowerShell