Tutoriel : Mettre à l’échelle et protéger rapidement une application web à l’aide d’Azure Front Door et d’Azure Web Application Firewall (WAF)

Important

Azure Front Door (classique) va être mis hors service le 31 mars 2027. Pour éviter toute interruption de service, il est important de migrer vos profils Azure Front Door (classique) vers le niveau Azure Front Door Standard ou Premium au plus en mars 2027. Pour plus d’informations, consultez Mise hors service d'Azure Front Door (classique).

De nombreuses applications web connaissent une augmentation rapide du trafic au fil du temps. Ces applications web enregistrent également une augmentation du trafic malveillant, notamment des attaques par déni de service. Il existe un moyen efficace d’effectuer un scale-out de votre application face aux pics de trafic, et de vous protéger contre des attaques : configurer Azure Front Door avec Azure WAF comme une couche d’accélération, de mise en cache et de sécurité devant votre application web. Cet article fournit des conseils sur la façon d’obtenir cette configuration d’Azure Front Door avec Azure WAF pour toutes les applications web s’exécutant tant à l’intérieur qu’à l’extérieur d’Azure.

Dans ce tutoriel, nous allons utiliser Azure CLI pour configurer le WAF. Vous pouvez effectuer cette même opération à l’aide du portail Azure, d’Azure PowerShell, d’Azure Resource Manager ou des API REST Azure.

Dans ce tutoriel, vous allez apprendre à :

  • Créer une instance Front Door
  • Créer une stratégie Azure WAF
  • Configurez des ensembles de règles pour une stratégie WAF.
  • Associez une stratégie WAF à Front Door.
  • Configurez un domaine personnalisé.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

  • Les instructions de ce tutoriel utilisent Azure CLI. Consultez ce guide pour bien démarrer avec Azure CLI.

    Conseil

    Une méthode simple et rapide pour bien démarrer avec Azure CLI consiste à utiliser Bash dans Azure Cloud Shell.

  • Assurez-vous que l’extension front-door est ajoutée à Azure CLI :

    az extension add --name front-door
    

Notes

Pour plus d’informations sur les commandes utilisées dans ce tutoriel, consultez Informations de référence sur Azure CLI pour Front Door.

Créer une ressource Azure Front Door

az network front-door create --backend-address <>  --accepted-protocols <> --name <> --resource-group <>

--backend-address : Nom de domaine complet (FQDN) de l’application que vous souhaitez protéger. Par exemple, myapplication.contoso.com.

--accepted-protocols : Spécifie les protocoles qu’Azure Front Door doit prendre en charge pour votre application web. Par exemple, --accepted-protocols Http Https.

--name : Nom de votre ressource Azure Front Door.

--resource-group : Groupe de ressources que vous souhaitez placer au sein de la ressource Azure Front Door. Pour en savoir plus sur les groupes de ressources, consultez Gérer les groupes de ressources dans Azure.

Dans la réponse que vous recevez lorsque vous exécutez cette commande, recherchez la clé hostName. Vous aurez besoin de cette valeur ultérieurement. hostName correspond au nom DNS de la ressource Azure Front Door que vous avez créée.

Créer un profil Azure WAF à utiliser avec les ressources Azure Front Door

az network front-door waf-policy create --name <>  --resource-group <>  --disabled false --mode Prevention

--name : Nom de la nouvelle stratégie Azure WAF.

--resource-group : Groupe de ressources que vous souhaitez placer au sein de la ressource WAF.

Le code CLI précédent crée une stratégie WAF en mode de prévention.

Remarque

Vous souhaiterez peut-être créer la stratégie WAF en mode de détection et observer la manière dont elle détecte et journalise les requêtes malveillantes (sans les bloquer) avant de d’opter pour le mode de protection.

Dans la réponse que vous recevez lorsque vous exécutez cette commande, recherchez la clé ID. Vous aurez besoin de cette valeur ultérieurement.

Le champ ID doit respecter le format suivant :

/subscriptions/subscription id/resourcegroups/resource group name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/WAF policy name

Ajouter des ensembles de règles managés à la stratégie WAF

Vous pouvez ajouter des ensembles de règles managés à la stratégie WAF. Un ensemble de règles managé est un ensemble de règles créé et managé par Microsoft, qui vous permet de vous protéger contre une classe de menaces. Dans cet exemple, nous ajoutons deux ensembles de règles :

  • L’ensemble de règles par défaut, qui vous permet de vous protéger contre les menaces web courantes.
  • L’ensemble de règles de protection bot, qui vous permet de vous protéger contre les bots malveillants.

Ajouter l’ensemble de règles par défaut :

az network front-door waf-policy managed-rules add --policy-name <> --resource-group <> --type DefaultRuleSet --version 1.0

Ajouter l’ensemble de règles de protection bot :

az network front-door waf-policy managed-rules add --policy-name <> --resource-group <> --type Microsoft_BotManagerRuleSet --version 1.0

--policy-name : Nom que vous avez spécifié pour votre ressource WAF Azure.

--resource-group : Groupe de ressources dans lequel vous avez placé la ressource WAF.

Associer la stratégie WAF à la ressource Azure Front Door

Au cours de cette étape, nous allons associer la stratégie WAF que nous avons créée avec la ressource Azure Front Door qui se trouve avant votre application web :

az network front-door update --name <> --resource-group <> --set frontendEndpoints[0].webApplicationFirewallPolicyLink='{"id":"<>"}'

--name : Nom que vous avez spécifié pour votre ressource Azure Front Door.

--resource-group : Groupe de ressources dans lequel vous avez placé la ressource Azure Front Door.

--set : C’est là que vous mettez à jour l’attribut WebApplicationFirewallPolicyLink pour le frontendEndpoint associé à votre ressource Azure Front Door avec la nouvelle stratégie WAF. Vous devez disposer de l’ID de la stratégie WAF de la réponse reçue lorsque vous avez créé le profil WAF plus tôt dans ce tutoriel.

Notes

L’exemple précédent s’applique lorsque vous n’utilisez pas de domaine personnalisé. Si vous n’utilisez pas de domaines personnalisés pour accéder à vos applications web, vous pouvez ignorer la section suivante. Dans ce cas, vous donnez à vos clients la hostName que vous avez obtenue lors de la création de la ressource Azure Front Door. Ils utiliseront cette hostName pour accéder à votre application Web.

Configurer le domaine personnalisé pour votre application web

Le nom de domaine personnalisé de votre application web est celui que les clients utilisent pour faire référence à votre application. Par exemple : www.contoso.com. Au départ, ce nom de domaine personnalisé pointe vers l’emplacement où il s’exécutait avant l’introduction d’Azure Front Door. Une fois que vous avez ajouté Azure Front Door Service et Azure WAF en première ligne de l’application, l’entrée DNS correspondant à ce domaine personnalisé doit pointer vers la ressource Azure Front Door. Vous pouvez effectuer cette modification en remappant l’entrée de votre serveur DNS vers l’instance Azure Front Door hostName que vous avez notée lors de la création de la ressource Azure Front Door.

La procédure spécifique de mise à jour de vos enregistrements DNS dépend de votre fournisseur de services DNS. Si vous utilisez Azure DNS pour héberger votre nom DNS, vous pouvez consulter la documentation relative à la procédure de mise à jour d’un enregistrement DNS et pointer vers l’instance Azure Front Door hostName.

Il existe un aspect important à noter si vos clients doivent accéder à votre site web à l’aide de l’apex de la zone (par exemple, contoso.com). Dans ce cas, vous devez utiliser Azure DNS et son type d’enregistrement d’alias pour héberger votre nom DNS.

Vous devez également mettre à jour votre configuration Azure Front Door afin d’y ajouter le domaine personnalisé pour permettre la prise en compte de ce mappage.

Enfin, si vous utilisez un domaine personnalisé pour accéder à votre application web et souhaitez activer le protocole HTTPS, vous devez configurer les certificats pour votre domaine personnalisé dans Azure Front Door.

Verrouiller votre application web

Nous vous recommandons de vous assurer que seuls des périphéries d’Azure Front Door peuvent communiquer avec votre application web. Ainsi, personne ne peut contourner la protection Azure Front Door et accéder directement à votre application. Pour effectuer ce verrouillage, consultez Comment restreindre l'accès à mon back-end uniquement à Azure Front Door ?.

Nettoyer les ressources

Lorsque vous n’avez plus besoin des ressources utilisées dans ce tutoriel, utilisez la commande az group delete pour supprimer le groupe de ressources, Front Door et la stratégie WAF :

  az group delete \
    --name <>

--name : Nom du groupe de ressources de pour toutes les ressources utilisées dans ce tutoriel.

Étapes suivantes

Pour savoir comment résoudre les problèmes de votre instance Front Door, consultez les guides de résolution des problèmes :