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 remplacé.
Conseil
Toute modification apportée à Application Gateway force une vérification 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. Ainsi, Application Gateway effectue automatiquement une rotation du certificat, si une version plus récente est disponible dans votre Key Vault. Voici un exemple d’URI de secret sans version : https://myvault.vault.azure.net/secrets/mysecret/
. Vous pouvez vous reporter 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 certificats Key Vault doivent avoir une clé privée exportable afin qu’Application Gateway puisse les utiliser.
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 :
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 :
Dans le portail Azure, accédez à Key Vault.
Sélectionnez le coffre de clés qui contient votre certificat.
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. Il est possible de continuer d’utiliser des serveurs DNS personnalisés sur le réseau virtuel au lieu des programmes de résolution fournis par Azure DNS. Cependant, la zone DNS privée doit également rester liée au réseau virtuel.
Dans le portail Azure, dans votre coffre de clés, sélectionnez Réseaux.
Sous l’onglet Pare-feux et réseaux virtuels, sélectionnez Réseaux sélectionnés.
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.Sélectionnez Oui pour autoriser les services approuvés à contourner le pare-feu du coffre de clés.
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 tenir compte de tout impact sur votre ressource de passerelle applicative lorsque vous apportez des modifications ou révoquez l’accès à votre ressource Key Vault. Si votre passerelle applicative ne parvient pas à accéder au coffre de clés associé ou à localiser l’objet de certificat dans celui-ci, elle place automatiquement l’écouteur à l’état désactivé.
Vous pouvez identifier cet événement piloté par l’utilisateur en consultant l’intégrité des ressources de votre passerelle applicative. 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.
- Connectez-vous à votre portail Azure.
- Sélectionnez Advisor.
- Sélectionnez la catégorie Excellence opérationnelle dans le menu de gauche.
- Vous trouverez une recommandation intitulée Résoudre les problèmes liés à Azure Key Vault pour votre passerelle applicative si votre passerelle rencontre ce problème. Vérifiez que l’abonnement approprié est sélectionné dans les options de la liste déroulante ci-dessus.
- 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 les problèmes liés à Azure Key Vault pour votre passerelle applicative » dans le type de recommandation, comme indiqué ci-dessous :
Vous pouvez configurer l’alerte Resource Health comme illustré ci-dessous :
Étapes suivantes
Configurer l'arrêt TLS avec des certificats Key Vault à l'aide d'Azure PowerShell