Partager via


Protéger Azure Container Apps avec le pare-feu d’applications web sur Application Gateway

Lorsque vous hébergez vos applications ou microservices dans Azure Container Apps, vous ne souhaiterez peut-être pas toujours les publier directement sur Internet. Au lieu de cela, vous souhaiterez peut-être les exposer par le biais d’un proxy inverse.

Un proxy inverse est un service qui se trouve devant un ou plusieurs services, interceptant et dirigeant le trafic entrant vers la destination appropriée.

Les proxys inversés vous permettent de 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 charge
  • Couches de sécurité
  • Filtrage des demandes

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 l’environnement de mise en réseau dans Azure Container Apps.

Prérequis

  • Environnement interne avec un réseau virtuel personnalisé : disposez d’une application conteneur qui se trouve sur un environnement interne et intégrée à un réseau virtuel personnalisé. Pour plus d’informations sur la création d’une application intégrée de réseau virtuel personnalisé, 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, un certificat public valide utilisé pour établir une liaison à votre passerelle d’application est requis.

Récupérer le domaine de votre application conteneur

Procédez comme suit pour récupérer les valeurs du domaine par défaut et l’adresse IP statique pour configurer votre zone de DNS privé.

  1. Dans la fenêtre Vue d’ensemble du groupe de ressources dans le portail, sélectionnez votre application conteneur.

  2. Dans la fenêtre Vue d’ensemble de votre ressource d’application conteneur, sélectionnez le lien pour l’environnement Container Apps

  3. Dans la fenêtre Vue d’ensemble de votre ressource d’environnement d’application conteneur, sélectionnez l’affichage JSON dans le coin supérieur droit de la page pour afficher la représentation JSON de l’environnement des applications conteneur.

  4. Copiez les valeurs des propriétés defaultDomain et staticIp et collez-les dans un éditeur de texte. Vous allez créer une zone DNS privée à l’aide de ces valeurs pour le domaine par défaut dans la section suivante.

Créer et configurer une zone Azure DNS privé

  1. Dans le menu du portail Azure ou dans la page Accueil, sélectionnez Créer une ressource.

  2. Recherchez DNS privé Zone, puis sélectionnez DNS privé Zone dans les résultats de la recherche.

  3. Cliquez sur le bouton Créer.

  4. Saisissez les valeurs suivantes :

    Paramètre Action
    Abonnement Sélectionnez votre abonnement Azure.
    Resource group Sélectionnez le groupe de ressources de votre application conteneur.
    Nom Entrez la propriété defaultDomain de l’environnement Container Apps de la section précédente.
    Emplacement du groupe de ressources Conservez la valeur par défaut. Une valeur n’est pas nécessaire, car DNS privé Zones sont globales.
  5. Sélectionnez Revoir + créer. Une fois la validation terminée, sélectionnez Créer.

  6. Une fois la zone DNS privée créée, sélectionnez Accéder à la ressource.

  7. Dans la fenêtre Vue d’ensemble, sélectionnez +Jeu d’enregistrements, pour ajouter un nouveau jeu d’enregistrements.

  8. Dans la fenêtre Ajouter un jeu d’enregistrements, entrez les valeurs suivantes :

    Paramètre Action
    Nom Entrez *.
    Type Sélectionnez un enregistrement d’adresse.
    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é staticIp de l’environnement Container Apps de la section précédente.
  9. Sélectionnez OK pour créer le jeu d’enregistrements.

  10. Sélectionnez à nouveau +Jeu d’enregistrements pour ajouter un deuxième jeu d’enregistrements.

  11. Dans la fenêtre Ajouter un jeu d’enregistrements, entrez les valeurs suivantes :

    Paramètre Action
    Nom Entrez @.
    Type Sélectionnez un enregistrement d’adresse.
    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é staticIp de l’environnement Container Apps de la section précédente.
  12. Sélectionnez OK pour créer le jeu d’enregistrements.

  13. Sélectionnez la fenêtre liens de réseau virtuel dans le menu situé à gauche de la page.

  14. Sélectionnez +Ajouter pour créer un lien avec les valeurs suivantes :

    Paramètre Action
    Nom du lien Entrez my-custom-vnet-pdns-link.
    Je connais l’ID de ressource du réseau virtuel Laissez-le non case activée ed.
    Réseau virtuel Sélectionnez le réseau virtuel auquel votre application conteneur est intégrée.
    Activer l’inscription automatique Laissez-le non case activée ed.
  15. Sélectionnez OK pour créer le lien de réseau virtuel.

Créer et configurer une passerelle Azure Application Gateway

Onglet Informations de base

  1. Entrez les valeurs suivantes dans la section Détails du projet.

    Paramètre Action
    Abonnement Sélectionnez votre abonnement Azure.
    Resource group Sélectionnez le groupe de ressources de votre application conteneur.
    Nom de passerelle applicative Entrez my-container-apps-agw.
    Région Sélectionnez l’emplacement où votre application conteneur a été provisionnée.
    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. Consultez la mise à l’échelle automatique d’Azure Application Gateway.
    Zone de disponibilité Sélectionnez Aucun. Pour les environnements de production, Zones de disponibilité sont recommandés pour une disponibilité plus élevée.
    HTTP2 Laissez la valeur par défaut.
    Stratégie WAF Sélectionnez Créer et entrez my-waf-policy pour la stratégie WAF. Cliquez sur OK. Si vous avez choisi Standard V2 pour le niveau, 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, utilisez-le et passez à la section Frontends.
  2. Dans la fenêtre Sous-réseaux de mon réseau virtuel personnalisé, sélectionnez +Sous-réseau et entrez les valeurs suivantes :

    Paramètre Action
    Nom Entrez appgateway-subnet.
    Plage d’adresses de sous-réseau Conservez les valeurs par défaut.
  3. Pour le reste des paramètres, conservez les valeurs par défaut.

  4. Sélectionnez Enregistrer pour créer le nouveau sous-réseau.

  5. Fermez la fenêtre Sous-réseaux pour revenir à la fenêtre Créer une passerelle d’application.

  6. Sélectionnez les valeurs suivantes :

    Paramètre Action
    Subnet Sélectionnez le sous-réseau appgateway-subnet que vous avez créé.
  7. Sélectionnez Suivant : Frontends, pour continuer.

Onglet Front-ends

  1. Sous l’onglet Frontends , entrez les valeurs suivantes :

    Paramètre Action
    Type d'adresse IP de front-end Sélectionnez Public.
    Adresse IP publique Sélectionnez Ajouter. Entrez my-frontend pour le nom de votre serveur frontal, puis sélectionnez OK

    Remarque

    Pour la référence SKU Application Gateway v2, il doit y avoir une adresse IP frontale publique . Vous pouvez avoir à la fois une configuration d’adresse IP frontale publique et privée, mais une configuration IP frontale privée uniquement sans adresse IP publique n’est actuellement pas prise en charge dans la référence SKU v2. Pour en savoir plus, lisez ici.

  2. Sélectionnez Suivant : Back-ends.

Onglet Back-ends

Le pool principal est utilisé pour router les requêtes vers les serveurs principaux appropriés. Les pools principaux peuvent être composés de n’importe quelle combinaison des ressources suivantes :

  • Cartes réseau
  • Adresses IP publiques
  • Adresses IP internes
  • Virtual Machine Scale Sets
  • Noms de domaine complets (FQDN)
  • Back-ends multilocataires comme Azure App Service et Container Apps

Dans cet exemple, vous créez un pool principal qui cible votre application conteneur.

  1. Sélectionnez Ajouter un pool principal.

  2. Ouvrez un nouvel onglet et accédez à votre application conteneur.

  3. Dans la fenêtre Vue d’ensemble de l’application conteneur, recherchez l’URL de l’application et copiez-la.

  4. Revenez à l’onglet Back-ends et entrez les valeurs suivantes dans la fenêtre Ajouter un pool de back-ends :

    Paramètre Action
    Nom Entrez my-agw-backend-pool.
    Ajouter un pool back-end sans cible Sélectionnez Non.
    Type cible Sélectionnez l’adresse IP ou le nom de domaine complet.
    Cible Entrez l’URL de l’application d’application conteneur que vous avez copiée et supprimez le préfixe https://. Cet emplacement est le nom de domaine complet de votre application conteneur.
  5. Sélectionnez Ajouter.

  6. 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.

  1. Sélectionnez Ajouter une règle de routage. Saisissez les valeurs suivantes :

    Paramètre Action
    Nom Entrez my-agw-routing-rule.
    Priority tapez 1.
  2. Sous l’onglet Écouteur, entrez les valeurs suivantes :

    Paramètre Action
    Nom de l’écouteur Entrez my-agw-listener.
    Adresse IP du front-end Sélectionnez Public.
    Protocol Sélectionnez HTTPS. Si vous ne disposez pas d’un certificat que vous souhaitez utiliser, vous pouvez sélectionner HTTP
    Port Entrez 443. Si vous avez choisi HTTP pour votre protocole, entrez 80 et passez à la section de domaine par défaut/personnalisée.
    Choisir un certificat Sélectionnez Charger un certificat. Si votre certificat est stocké dans le coffre de clés, 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 votre mot de passe de certificat.

    Si vous souhaitez utiliser le domaine par défaut, entrez les valeurs suivantes :

    Paramètre Action
    Type d’écouteur Sélectionnez De base
    URL de page d’erreur Laisser en tant que Non

    Sinon, si vous souhaitez utiliser un domaine personnalisé, entrez les valeurs suivantes :

    Paramètre Action
    Type d’écouteur Sélectionner plusieurs sites
    Type d’hôte Sélectionner un seul
    Noms d’hôtes Entrez le domaine personnalisé que vous souhaitez utiliser.
    URL de page d’erreur Laisser en tant que Non
  3. Sélectionnez l’onglet Cibles principales et entrez les valeurs suivantes :

  4. Basculez vers l’onglet Cibles principales et entrez les valeurs suivantes :

    Paramètre Action
    Type cible Sélectionnez my-agw-backend-pool que vous avez créé précédemment.
    Paramètres du back-end Sélectionnez Ajouter.
  5. Dans la fenêtre Ajouter un paramètre principal, entrez les valeurs suivantes :

    Paramètre Action
    Nom des paramètres du back-end Entrez my-agw-backend-setting.
    Protocole de back-end Sélectionnez HTTPS.
    Port principal Entrez 443.
    Utiliser le certificat de l’autorité de certification connue Cliquez sur 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.
  6. Sélectionnez Ajouter pour ajouter les paramètres principaux.

  7. Dans la fenêtre Ajouter une règle de routage, sélectionnez Ajouter à nouveau.

  8. Sélectionnez Suivant : Balises.

  9. Sélectionnez Suivant : Vérifier + créer, puis sélectionner Créer.

Vous pouvez établir une connexion sécurisée à des environnements d’application conteneur interne uniquement en levaraging private link, car elle permet à votre application Application Gateway de communiquer avec votre application conteneur sur le back-end via le réseau virtuel.

  1. Une fois la passerelle Application Gateway créée, sélectionnez Accéder à la ressource.

  2. Dans le menu de gauche, sélectionnez Lien privé, puis Ajouter.

  3. Saisissez les valeurs suivantes :

    Paramètre Action
    Nom Entrez my-agw-private-link.
    Sous-réseau de liaison privée Sélectionnez le sous-réseau avec lequel vous souhaitez créer la liaison privée.
    Configuration IP frontend Sélectionnez l’adresse IP frontale de votre instance Application Gateway.
  4. Sous Paramètres d’adresse IP privée, sélectionnez Ajouter.

  5. Sélectionnez Ajouter en bas de la fenêtre.

Vérifier l’application conteneur

  1. Recherchez l’adresse IP publique de la passerelle Application Gateway sur sa page Vue d’ensemble , ou recherchez l’adresse. Pour effectuer une recherche, sélectionnez Toutes les ressources et entrez my-container-apps-agw-pip dans la zone de recherche. Sélectionnez ensuite l’adresse IP dans les résultats de la recherche.

  2. Accédez à l’adresse IP publique de la passerelle d’application.

  3. Votre demande 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 :

  1. Dans le menu du portail Azure, sélectionnez Groupes de ressources ou recherchez et sélectionnez Groupes de ressources.

  2. Dans la page Groupes de ressources , recherchez et sélectionnez my-container-apps.

  3. Dans la page Groupe de ressources, sélectionnez Supprimer le groupe de ressources.

  4. Entrez my-container-apps sous TYPE THE RESOURCE GROUP NAME , puis sélectionnez Supprimer

Étapes suivantes