Protégez les applications d’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 souhaitez pas toujours les publier directement sur Internet. Au lieu de cela, vous souhaiterez peut-être les exposer via 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 inverses vous permettent de placer des services devant vos applications qui prennent en charge des fonctionnalités transversales, notamment :

  • Routage
  • Mise en cache
  • Limitation du débit
  • Équilibrage de charge
  • Couches de sécurité
  • Filtrage des demandes

Cet article montre 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 VNet personnalisé : disposez d’une application conteneur qui se trouve dans 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 au réseau virtuel personnalisée, consultez fournir un réseau virtuel à un environnement Azure Container Apps interne.

  • Certificats de sécurité : si vous devez utiliser le chiffrement TLS/SSL sur la passerelle d'application, un certificat public valide utilisé pour se lier à votre passerelle d'application est requis.

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.

  1. Dans la fenêtre Présentation du groupe de ressources dans le portail, sélectionnez votre application conteneur.

  2. Dans la fenêtre Aperçu de votre ressource d'Azure Container Apps, sélectionnez le lien pour l'environnement des applications conteneur

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

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

Créez et configurez une zone DNS privée Azure

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

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

  3. Cliquez sur le bouton Créer.

  4. Saisissez les valeurs suivantes :

    Setting Action
    Abonnement Sélectionnez votre abonnement Azure.
    Resource group Sélectionnez le groupe de ressources de votre application conteneur.
    Nom Saisissez la propriété defaultDomain de l’environnement Container Apps de la section précédente.
    Emplacement du groupe de ressources Laissez la valeur par défaut. Une valeur n'est pas nécessaire car les zones DNS privées 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 Aperçu, sélectionnez +Ensemble d’enregistrements pour ajouter un nouvel ensemble d’enregistrements.

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

    Setting 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 Saisissez 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 +Ensemble d’enregistrements pour ajouter un deuxième ensemble d’enregistrements.

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

    Setting 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 Saisissez 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 sur le côté gauche de la page.

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

    Setting Action
    Nom de la liaison Entrez my-custom-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.
  15. Sélectionnez OK pour créer le lien 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 pour 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. 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 Laissez la valeur par défaut.
    Stratégie WAF Sélectionnez Créer nouveau et entrez my-waf-policy pour la politique WAF. Cliquez sur 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.
    Sous-réseau 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 à la place et passez à la section Frontends.
  2. Dans la fenêtre Sous-réseaux de my-custom-vnet, sélectionnez +Sous-réseau et entrez les valeurs suivantes :

    Setting 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 :

    Setting Action
    Sous-réseau Sélectionnez le appgateway-subnet que vous avez créé.
  7. Sélectionnez Suivant : Frontends pour continuer.

Onglet Frontends

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

    Setting Action
    Type d'adresse IP de 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 le SKU Application Gateway v2, il doit y avoir une adresse IP frontale publique. Vous pouvez avoir une configuration IP frontale publique et privée, mais une configuration IP frontale uniquement privée sans IP publique n'est actuellement pas prise en charge dans le SKU v2. Pour en savoir plus, lisez ici.

  2. Sélectionnez Suivant : Back-ends.

Onglet Back-ends

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

  • Cartes réseau
  • Adresses IP publiques
  • Adresses IP internes
  • Jeux de mise à l’échelle de machine virtuelle
  • Noms de domaine entièrement qualifiés (FQDN)
  • Back-ends multilocataires comme Azure App Service et Container Apps

Dans cet exemple, vous créez un pool backend 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 Aperçu de l’application conteneur, recherchez l’URL de l’application et copiez-la.

  4. Revenez à l’onglet Backends et entrez les valeurs suivantes dans la fenêtre Ajouter un pool de backends :

    Setting 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 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.
  5. Sélectionnez Ajouter.

  6. Sous l’onglet Back-ends, sélectionnez Suivant : Configuration.

Onglet Configuration

Sous l’onglet Configuration, vous connectez le front-end et le pool de back-end que vous avez créés à l’aide d’une règle d’acheminement.

  1. Sélectionnez Ajouter une règle d’acheminement. Saisissez les valeurs suivantes :

    Setting Action
    Nom Entrez my-agw-routing-rule.
    Priorité tapez 1.
  2. Sous l’onglet Listener, entrez les valeurs suivantes :

    Setting Action
    Nom de l’écouteur Entrez my-agw-listener.
    Adresse IP du front-end Sélectionnez Public.
    Protocol 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 :

    Setting 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 :

    Setting 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
  3. Sélectionnez l’onglet Cibles du backend et entrez les valeurs suivantes :

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

    Setting 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 de configuration Ajouter un backend, saisissez les valeurs suivantes :

    Setting 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 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.
  6. Sélectionnez Ajouter pour ajouter les paramètres du backend.

  7. Dans la fenêtre Ajouter une règle d’acheminement, sélectionnez à nouveau Ajouter.

  8. Sélectionnez Suivant : Balises.

  9. Sélectionnez Suivant : Réviser + créer, puis sélectionnez Créer.

Vous pouvez établir une connexion sécurisée aux environnements d'applications de conteneurs internes uniquement en exploitant un lien privé, car il permet à votre passerelle d'application de communiquer avec votre application de conteneur sur le backend via le réseau virtuel.

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

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

  3. Saisissez les valeurs suivantes :

    Setting 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 le lien privé.
    Configuration IP frontend Sélectionnez l’IP frontale pour votre Azure 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érifiez l'application conteneur

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

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

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

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

  2. Sur 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 SAISIR LE NOM DU GROUPE DE RESSOURCES, puis sélectionnez Supprimer

Étapes suivantes