Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Lorsque vous hébergez vos applications ou microservices dans Azure Container Apps, vous ne souhaiterez peut-être pas les publier directement sur Internet. Au lieu de cela, vous voudrez peut-être les exposer via un proxy inverse.
Un proxy inverse est un service qui se trouve devant un ou plusieurs services. Il intercepte et dirige le trafic entrant vers la destination appropriée.
Avec les proxys inverses, vous pouvez placer des services devant vos applications qui prennent en charge les fonctionnalités croisées, notamment :
- Routage
- Mise en cache
- Limitation du débit
- Équilibrage de la charge
- Couches de sécurité
- Filtrage des requêtes
Cet article explique comment protéger vos applications conteneur à l’aide d’un pare-feu d’applications web (WAF) sur Azure Application Gateway avec un environnement Container Apps interne.
Pour plus d’informations sur les concepts de mise en réseau dans Container Apps, consultez Environnement réseau dans Azure Container Apps.
Prérequis
Environnement interne avec réseau virtuel : disposez d’une application conteneur qui se trouve sur un environnement interne et intégrée à un réseau virtuel. Pour plus d’informations sur la création d’une application intégrée de réseau virtuel, consultez fournir un réseau virtuel à un environnement Azure Container Apps interne.
Certificats de sécurité : si vous devez utiliser le chiffrement TLS/SSL pour la passerelle d’application, vous avez besoin d’un certificat public valide pour établir une liaison à votre passerelle d’application.
Récupérez le domaine de votre application conteneur
Utilisez les étapes suivantes pour récupérer les valeurs du domaine par défaut et de l’IP statique pour configurer votre zone DNS privée.
Dans la fenêtre Présentation du groupe de ressources dans le portail, sélectionnez votre application conteneur.
Dans la fenêtre Vue d’ensemble de votre ressource d’application conteneur, sélectionnez le lien pour l’environnement Container Apps.
Dans la fenêtre Présentation de votre ressource d’environnement d’application conteneur, sélectionnez Affichage JSON dans le coin supérieur droit de la page pour afficher la représentation JSON de l’environnement d’applications conteneur.
Dans la vue JSON, recherchez la
propertiessection et recherchez les valeurs suivantes :Domaine par défaut : cherchez
properties.defaultDomainouproperties.environmentFqdnAdresse IP statique : recherchez
properties.staticIp
Copiez ces valeurs et collez-les dans un éditeur de texte. Vous utilisez la valeur de domaine par défaut lorsque vous créez une zone DNS privée dans la section suivante.
Créez et configurez une zone DNS privée Azure
Pour créer et configurer une zone DNS privée Azure, procédez comme suit :
Accédez au portail Azure.
Dans la barre de recherche, entrez Zone DNS privée.
Sélectionnez Zone DNS privée dans les résultats de la recherche.
Cliquez sur Créer.
Saisissez les valeurs suivantes :
Réglage Action Abonnement Sélectionnez votre abonnement Azure. groupe de ressources Sélectionnez le groupe de ressources de votre application conteneur. Nom Entrez la propriété de domaine par défaut de l’environnement Container Apps à partir de la section précédente (soit defaultDomainenvironmentFqdn).Emplacement du groupe de ressources Laissez la valeur par défaut. Vous n’avez pas besoin d’une valeur, car les zones DNS privées sont globales. Sélectionnez Revoir + créer. Une fois la validation terminée, sélectionnez Créer.
Une fois la zone DNS privée créée, sélectionnez Accéder à la ressource.
Dans la fenêtre Vue d’ensemble , sélectionnez +Jeu d’enregistrements pour ajouter un nouveau jeu d’enregistrements.
Dans la fenêtre Ajouter un ensemble d’enregistrements, saisissez les valeurs suivantes :
Réglage Action Nom Entrez *. Type Sélectionnez l'enregistrement d'adresse A. TTL Conservez les valeurs par défaut. Unité de durée de vie Conservez les valeurs par défaut. Adresse IP Entrez la propriété IP statique de l’environnement Container Apps de la section précédente ( staticIp).Sélectionnez OK pour créer le jeu d’enregistrements.
Sélectionnez à nouveau +Jeu d’enregistrements pour ajouter un deuxième jeu d’enregistrements.
Dans la fenêtre Ajouter un ensemble d’enregistrements, saisissez les valeurs suivantes :
Réglage Action Nom Entrez @. Type Sélectionnez l'enregistrement d'adresse A. TTL Conservez les valeurs par défaut. Unité de durée de vie Conservez les valeurs par défaut. Adresse IP Entrez la propriété IP statique de l’environnement Container Apps de la section précédente ( staticIp).Sélectionnez OK pour créer le jeu d’enregistrements.
Sélectionnez la fenêtre Liens de réseau virtuel dans le menu sur le côté gauche de la page.
Sélectionnez +Ajouter pour créer un nouveau lien avec les valeurs suivantes :
Réglage Action Nom de la liaison Entrez my-vnet-pdns-link. Je connais l’ID de ressource du réseau virtuel Laissez-la décochée. Réseau virtuel Sélectionnez le réseau virtuel auquel votre application conteneur est intégrée. Activer l’inscription automatique Laissez-la décochée. Sélectionnez OK pour créer le lien réseau virtuel.
Créer et configurer une passerelle Azure Application Gateway
Pour créer et configurer une passerelle Azure Application Gateway, procédez comme suit :
Accédez au portail Azure.
Dans la barre de recherche, entrez Application Gateway.
Sélectionnez Application Gateway dans les résultats de la recherche.
Maintenant, entrez les détails requis sous l’onglet Basiques , l’onglet Frontends , l’onglet Backends et l’onglet Configuration .
Onglet Informations de base
Procédez comme suit :
Entrez les valeurs suivantes dans la section Détails du projet.
Réglage Action Abonnement Sélectionnez votre abonnement Azure. groupe de ressources Sélectionnez le groupe de ressources pour votre application conteneur. Nom de passerelle applicative Entrez my-container-apps-agw. Région Sélectionnez l’emplacement où vous avez provisionné votre application conteneur. Niveau Sélectionnez WAF V2. Vous pouvez utiliser Standard V2 si vous n'avez pas besoin de WAF. Activer la mise à l’échelle automatique Laissez la valeur par défaut. Pour les environnements de production, la mise à l'échelle automatique est recommandée. Voyez Mise à l’échelle automatique d’Azure Application Gateway. Zone de disponibilité Sélectionnez Aucun. Pour les environnements de production, les Zones de disponibilité Azure sont recommandées pour une meilleure disponibilité. HTTP2 (en anglais) Conservez la valeur par défaut. Stratégie WAF Sélectionnez Créer nouveau et entrez my-waf-policy pour la politique WAF. Sélectionnez OK. Si vous avez choisi le niveau Standard V2, ignorez cette étape. Réseau virtuel Sélectionnez le réseau virtuel auquel votre application conteneur est intégrée. Subnet Sélectionnez Gérer la configuration du sous-réseau. Si vous disposez déjà d’un sous-réseau que vous souhaitez utiliser, sélectionnez ce sous-réseau et passez à la section Frontends. Dans la fenêtre Sous-réseaux de mon réseau virtuel, sélectionnez +Sous-réseau et entrez les valeurs suivantes :
Réglage Action Nom Entrez appgateway-subnet. Plage d’adresses de sous-réseau Conservez les valeurs par défaut. Pour le reste des paramètres, conservez les valeurs par défaut.
Sélectionnez Enregistrer pour créer le nouveau sous-réseau.
Fermez la fenêtre Sous-réseaux pour revenir à la fenêtre Créer une passerelle d’application.
Sélectionnez les valeurs suivantes :
Réglage Action Subnet Sélectionnez le appgateway-subnet que vous avez créé. Sélectionnez Suivant : Frontends à poursuivre.
Onglet Front-ends
Procédez comme suit :
Dans l’onglet Frontends, entrez les valeurs suivantes :
Réglage Action Type d’adresse IP du front-end Sélectionnez Public. Adresse IP publique Sélectionnez Ajouter. Entrez my-frontend comme nom de votre frontend et sélectionnez OK Remarque
Pour la référence SKU Application Gateway v2, vous avez besoin d’une adresse IP frontale publique. Pour plus d’informations, consultez Prise en charge des adresses IP publiques et privées et Gérer une adresse IP publique avec une passerelle Azure Application Gateway.
Sélectionnez Suivant : back-ends.
Onglet Back-ends
Le pool principal achemine les demandes vers les serveurs principaux appropriés. Vous pouvez composer des pools principaux à partir de n’importe quelle combinaison des ressources suivantes :
- Cartes réseau
- Adresses IP publiques
- Adresses IP internes
- Virtual Machine Scale Sets
- Noms de domaine entièrement qualifiés (FQDN)
- Back-ends multilocataires tels qu’Azure App Service et Container Apps
Dans cet exemple, vous créez un pool backend qui cible votre application conteneur.
Pour créer un pool principal, procédez comme suit :
Sélectionnez Ajouter un pool principal.
Ouvrez un nouvel onglet et accédez à votre application conteneur.
Dans la fenêtre Aperçu de l’application conteneur, recherchez l’URL de l’application et copiez-la.
Revenez à l’onglet Backends et entrez les valeurs suivantes dans la fenêtre Ajouter un pool de backends :
Réglage Action Nom Entrez my-agw-backend-pool. Ajouter un pool backend sans cible Sélectionnez Non. Type de cible Sélectionnez l'adresse IP ou le FQDN. Cible Saisissez l’URL de l’application Container App que vous avez copiée et supprimez le préfixe https://. Cet emplacement est le FQDN de votre application conteneur. Sélectionnez Ajouter.
Sous l’onglet Back-ends, sélectionnez Suivant : Configuration.
Onglet Configuration
Sous l’onglet Configuration , vous connectez le pool frontal et principal que vous avez créés à l’aide d’une règle de routage.
Pour connecter le pool frontal et principal, procédez comme suit :
Sélectionnez Ajouter une règle d’acheminement. Saisissez les valeurs suivantes :
Réglage Action Nom Entrez my-agw-routing-rule. Priority tapez 1. Sous l’onglet Listener, entrez les valeurs suivantes :
Réglage Action Nom de l’écouteur Entrez my-agw-listener. Adresse IP du front-end Sélectionnez Public. Protocole Sélectionnez HTTPS. Si vous n'avez pas de certificat que vous souhaitez utiliser, vous pouvez sélectionner HTTP Port Entrez 443. Si vous avez choisi HTTP comme protocole, entrez 80 et passez à la section domaine personnalisé ou par défaut. Choisissez un certificat Sélectionnez Télécharger un certificat. Si votre certificat est stocké dans Key Vault, vous pouvez sélectionner Choisir un certificat dans Key Vault. Nom du certificat Entrez un nom pour votre certificat. Fichier de certificat PFX Sélectionnez votre certificat public valide. Mot de passe Entrez le mot de passe de votre certificat. Si vous souhaitez utiliser le domaine par défaut, saisissez les valeurs suivantes :
Réglage Action Type d'auditeur Sélectionnez De base URL de page d’erreur Laisser comme Non Alternativement, si vous souhaitez utiliser un domaine personnalisé, saisissez les valeurs suivantes :
Réglage Action Type d'auditeur Sélectionner Multi-site Type d’hôte Sélectionnez Single Noms d'hôtes Entrez le domaine personnalisé que vous souhaitez utiliser. URL de page d’erreur Laisser comme Non Sélectionnez l’onglet Cibles du backend et entrez les valeurs suivantes :
Basculez vers l’onglet Cibles du backend et entrez les valeurs suivantes :
Réglage Action Type de cible Sélectionnez my-agw-backend-pool que vous avez créé précédemment. Paramètres du back-end Sélectionnez Ajouter. Dans la fenêtre de configuration Ajouter un backend, saisissez les valeurs suivantes :
Réglage Action Nom des paramètres du back-end Entrez my-agw-backend-setting. Protocole back-end Sélectionnez HTTPS. Port principal Entrez 443. Utiliser le certificat de l’autorité de certification connue Sélectionnez Oui. Substituer avec le nouveau nom d’hôte Sélectionnez Oui. Remplacement du nom d’hôte Sélectionnez Choisir un nom d’hôte à partir d’une cible de back-end. Créer des sondes personnalisées Sélectionnez Non. Sous Réécriture d’en-tête de demande, configurez les paramètres suivants :
- Activer la réécriture d’en-tête de la demande : sélectionnez Oui.
- Ajoutez un en-tête de requête :
- Nom de l’en-tête :
X-Forwarded-Host - Valeur:
{http_req_host}
- Nom de l’en-tête :
Cette action garantit que l’en-tête d’origine
Hostde la demande cliente est conservé et accessible par l’application back-end.Sélectionnez Ajouter pour ajouter les paramètres principaux.
Dans la fenêtre Ajouter une règle d’acheminement, sélectionnez à nouveau Ajouter.
Sélectionnez Suivant : Étiquettes.
Sélectionnez Suivant : Vérifier + créer, puis sélectionner Créer.
Ajoutez un lien privé à votre Azure Application Gateway
Vous pouvez établir une connexion sécurisée aux environnements d’applications conteneurs internes uniquement à l’aide d’un lien privé. Avec une liaison privée, votre Application Gateway peut communiquer avec votre application conteneur sur le serveur principal via le réseau virtuel.
Après avoir créé Application Gateway, sélectionnez Accéder à la ressource.
Dans le menu de gauche, sélectionnez Lien privé, puis sélectionnez Ajouter.
Saisissez les valeurs suivantes :
Réglage Action Nom Entrez my-agw-private-link. Sous-réseau de liaison privée Sélectionnez le sous-réseau que vous souhaitez utiliser pour créer la liaison privée. Configuration IP frontend Sélectionnez l’IP frontale pour votre Azure Application Gateway. Sous Paramètres d’adresse IP privée, sélectionnez Ajouter.
Sélectionnez Ajouter en bas de la fenêtre.
Conserver l’en-tête d’hôte d’origine pour les redirections et l’authentification unique
Lorsque vous configurez Azure Application Gateway en tant que proxy inverse et activez le paramètre Remplacement par un nouveau nom d’hôte, l’en-tête Host est modifié. La modification de l’en-tête peut interférer avec les applications qui s’appuient sur la valeur d’hôte d’origine pour générer des URL de redirection, des liens absolus ou prendre en charge les flux d’authentification OpenID Connect (OIDC).
Pour transférer l’en-tête d’hôte d’origine, vous pouvez l’injecter dans l’en-tête X-Forwarded-Host à l’aide de la fonctionnalité de réécriture d’en-tête de requête d’Application Gateway.
Configurer l’injection X-Forwarded-Host
Pour activer l’injection X-Forwarded-Host :
Sous l’onglet Configuration , sélectionnez la section Paramètres principaux de votre règle de routage Application Gateway :
- Activez la réécriture d’en-tête de requête.
- Ajoutez un nouvel en-tête de requête avec les valeurs suivantes :
- Nom de l’en-tête :
X-Forwarded-Host - Valeur:
{http_req_host}
- Nom de l’en-tête :
Votre application back-end peut désormais lire l’hôte d’origine de la requête à l’aide de l’en-tête
X-Forwarded-Host.
Remarque
Lors de la configuration des règles de réécriture d’en-tête, veillez à utiliser la syntaxe de variable correcte. Les variables de serveur doivent utiliser le préfixe approprié, tel que http_req_ pour les en-têtes de requête. Pour résoudre les erreurs de configuration des règles de réécriture, consultez Réécrire les en-têtes HTTP et l’URL avec Application Gateway.
Vérifiez l'application conteneur
Recherchez l’adresse IP publique de la passerelle d’application sur sa page de Présentation ou vous pouvez rechercher l’adresse. Pour rechercher, sélectionnez Toutes les ressources et entrez my-container-apps-agw-pip dans la zone de recherche. Ensuite, sélectionnez l’IP dans les résultats de la recherche.
Accédez à l’adresse IP publique de la passerelle d’application.
Votre requête est automatiquement acheminée vers l'application conteneur, qui vérifie que la passerelle d'application a été créée avec succès.
Nettoyer les ressources
Quand vous n’avez plus besoin des ressources que vous avez créées, supprimez le groupe de ressources. Lorsque vous supprimez le groupe de ressources, vous supprimez également toutes les ressources associées.
Pour supprimer le groupe de ressources :
Dans le menu du portail Azure, sélectionnez Groupes de ressources ou recherchez et sélectionnez Groupes de ressources.
Sur la page Groupes de ressources, recherchez et sélectionnez my-container-apps.
Dans la page Groupe de ressources, sélectionnez Supprimer un groupe de ressources.
Entrez my-container-apps sous TYPE THE RESOURCE GROUP NAME , puis sélectionnez Supprimer.