Partager via


Configurer une règle de limitation du débit de Web Application Firewall

La règle de limitation du débit d’Azure Web Application Firewall pour Azure Front Door contrôle le nombre de requêtes autorisées à partir d’une adresse IP source particulière à l’application pendant une durée de limitation du débit. Pour plus d’informations sur la limitation du débit, consultez Qu’est-ce que la limitation du débit pour Azure Front Door ?.

Cet article montre comment configurer une règle de limitation de débit pour un pare-feu d'applications web (WAF) sur Azure Front Door Standard et Premium.

Scénario

Supposons que vous soyez responsable d’un site web public. Vous venez d’ajouter une page contenant des informations sur la promotion que votre organisation offre actuellement. Vous êtes préoccupé par le fait que, si les clients visitent cette page trop souvent, certains de vos services principaux peuvent ne pas être mis à l’échelle rapidement et l’application peut rencontrer des problèmes de performances.

Vous décidez de créer une règle de limitation du débit qui limite chaque adresse IP source à un maximum de 1 000 requêtes par minute. Vous appliquez uniquement cette règle aux requêtes qui contiennent */promo* dans l’URL de la requête.

Conseil

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

Créer un profil Azure Front Door et une stratégie WAF

  1. Dans le portail Azure, sélectionnez Créer une ressource.

    Capture d'écran montrant le bouton Créer une ressource sur la page d'accueil.

  2. Recherchez Front Door, puis sélectionnez Profils Front Door et CDN.

    Capture d'écran montrant la place de marché, avec la porte d'entrée en surbrillance.

  3. Sélectionnez Create (Créer).

    Capture d'écran montrant les profils Front Door et CDN, avec le bouton Créer en surbrillance.

  4. Sélectionnez Continuer à créer une Front Door pour utiliser le processus de création de portail création rapide.

    Capture d'écran montrant les offres Azure Front Door, avec l'option Création rapide sélectionnée et le bouton Continuer à créer un Front Door mis en évidence.

  5. Entrez les informations nécessaires sur la page Informations de base :

    • Groupe de ressources : sélectionnez un groupe de ressources existant ou créez un groupe de ressources pour les ressources Azure Front Door et WAF.
    • Nom : entrez le nom de votre profil Azure Front Door.
    • Niveau : sélectionnez Standard ou Premium. Pour ce scénario, les deux niveaux prennent en charge la limitation du débit.
    • Nom du point de terminaison : Fournissez un nom unique pour votre point de terminaison car les points de terminaison Azure Front Door doivent avoir des noms uniques au niveau mondial.
    • Type d’origine et Nom d’hôte d’origine : sélectionnez l’application d’origine que vous souhaitez protéger avec votre règle de limitation du débit.
  6. En regard de Stratégie WAF, sélectionnez Créer.

    Capture d'écran montrant le processus de création d'Azure Front Door, avec le bouton Créer une nouvelle politique WAF en surbrillance.

  7. Entrez le nom d’une stratégie WAF, puis sélectionnez Créer.

    Capture d'écran montrant l'invite de création de la politique WAF, avec le bouton Créer en surbrillance.

  8. Sélectionnez Vérifier + créer>Créer.

    Capture d'écran montrant la configuration du profil Azure Front Door.

  9. Lorsque le déploiement est terminé, sélectionnez Accéder à la ressource.

Créer une règle de limitation du débit

  1. Sélectionnez Règles personnalisées>Ajouter une règle personnalisée.

    Capture d'écran montrant la page des règles personnalisées de la politique WAF.

  2. Entrez les informations nécessaires pour créer une règle de limitation du débit :

    • Nom de la règle personnalisée : entrez le nom de la règle personnalisée, tel que rateLimitRule.
    • Type de règle : sélectionnez Limite de débit.
    • Priorité : entrez la priorité de la règle, telle que 1.
    • Durée limite de débit : sélectionnez 1 minute.
    • Seuil de limitation du débit (requêtes) : Entrez 1000.
  3. Dans Conditions, entrez les informations nécessaires pour spécifier une condition de correspondance afin d’identifier les requêtes dans lesquelles l’URL contient la chaîne */promo* :

    • Type de correspondance : sélectionnez Chaîne.
    • Variable de correspondance : entrez RequestUri.
    • Opération : sélectionnez est.
    • Opérateur : sélectionnez Contient.
    • Valeurs de correspondance : entrez /promo.
  4. Pour Action, sélectionnez Journal ou Bloquer.

    Les règles de limite de débit prennent uniquement en charge les actionsLog et Block. Allow n’est pas pris en charge.

    Capture d'écran montrant la configuration de la règle personnalisée.

  5. Sélectionnez Ajouter.

  6. Sélectionnez Enregistrer.

    Capture d'écran montrant la liste des règles personnalisées, y compris la nouvelle règle de limitation de débit.

Utiliser le mode de prévention sur le WAF

Par défaut, le Portail Azure crée des stratégies WAF en mode de détection. Ce paramètre signifie que le service WAF ne bloque pas les requêtes. Pour plus d’informations, consultez les modes de WAF.

Paramétrez votre WAF avant d’utiliser le mode de prévention. Le réglage permet d’éviter les détections de faux positifs. Cela permet également d’empêcher votre WAF de bloquer les demandes légitimes.

Ici, vous reconfigurez le WAF pour utiliser le mode de prévention.

  1. Ouvrez la stratégie WAF.

    Notez que le mode de stratégie est définir sur Détection.

    Capture d'écran montrant la politique WAF, avec le mode politique et le bouton Passer en mode prévention en surbrillance.

  2. Sélectionnez Basculer en mode de prévention.

Prérequis

Avant de configurer une stratégie de limitation du débit, configurez votre environnement PowerShell et créez un profil Azure Front Door.

Configurer votre environnement PowerShell

Azure PowerShell fournit un ensemble d’applets de commande qui utilisent le modèle Azure Resource Manager pour gérer vos ressources Azure.

Vous pouvez installer Azure PowerShell sur votre ordinateur local et l’utiliser sur n’importe quelle session PowerShell. Ici, vous vous connectez avec vos informations d’identification Azure et installez le module Azure PowerShell pour Azure Front Door Standard ou Premium.

Se connecter à Azure avec une boîte de dialogue interactive

Connectez-vous à Azure en exécutant la commande suivante :

Connect-AzAccount

Installer PowerShellGet

Vérifiez que la version actuelle de PowerShellGet est installée. Exécutez la commande suivante :

Install-Module PowerShellGet -Force -AllowClobber

Ensuite, redémarrez PowerShell pour être sûr d’utiliser la dernière version.

Installer les modules Azure Front Door PowerShell

Installez les modules PowerShell Az.FrontDoor et Az.Cdn pour utiliser Azure Front Door Standard ou Premium à partir de PowerShell.

Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn

Vous utilisez le module Az.Cdn pour utiliser des ressources Azure Front Door Standard ou Premium. Utilisez le module Az.FrontDoor pour utiliser des ressources WAF.

Créer un groupe de ressources

Utilisez la cmdlet New-AzResourceGroup pour créer un groupe de ressources pour votre profil Azure Front Door et votre stratégie WAF. Mettez à jour le nom et l’emplacement du groupe de ressources en fonction de vos propres besoins :

$resourceGroupName = 'FrontDoorRateLimit'

New-AzResourceGroup -Name $resourceGroupName -Location 'westus'

Créer un profil Azure Front Door

Utilisez la cmdlet New-AzFrontDoorCdnProfile pour créer un profil Azure Front Door.

Dans cet exemple, vous créez un profil standard Azure Front Door nommé MyFrontDoorProfile :

$frontDoorProfile = New-AzFrontDoorCdnProfile `
  -Name 'MyFrontDoorProfile' `
  -ResourceGroupName $resourceGroupName `
  -Location global `
  -SkuName Standard_AzureFrontDoor

Créer un point de terminaison Azure Front Door

Utilisez la cmdlet New-AzFrontDoorCdnEndpoint pour ajouter un point de terminaison à votre profil Azure Front Door.

Les points de terminaison Azure Front Door doivent avoir des noms globalement uniques. Mettez donc à jour la valeur de la variable $frontDoorEndpointName sur une valeur unique.

$frontDoorEndpointName = '<unique-front-door-endpoint-name>'

$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
  -EndpointName $frontDoorEndpointName `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Location $frontDoorProfile.Location

Définir une condition de correspondance d’URL

Utilisez la cmdlet New-AzFrontDoorWafMatchConditionObject pour créer une condition de correspondance afin d’identifier les requêtes auxquelles la limitation du débit doit être appliquée.

L’exemple suivant correspond aux requêtes dans lesquelles la variable RequestUri contient la chaîne /promo :

$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
  -MatchVariable RequestUri `
  -OperatorProperty Contains `
  -MatchValue '/promo'

Créer une règle personnalisée de limitation du débit

Utilisez la cmdlet New-AzFrontDoorWafCustomRuleObject pour créer la règle de limitation du débit, qui inclut la condition de correspondance que vous avez définie à l’étape précédente ainsi que le seuil de requête.

L’exemple suivant définit la limite à 1000 :

$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
  -Name 'rateLimitRule' `
  -RuleType RateLimitRule `
  -MatchCondition $promoMatchCondition `
  -RateLimitThreshold 1000 `
  -Action Block `
  -Priority 1

Lorsqu’une adresse IP source envoie plus de 1 000 requêtes dans un délai d’une minute, le service WAF bloque les requêtes suivantes jusqu’au démarrage de la minute suivante.

Créer une stratégie de pare-feu d’applications web (WAF).

Utilisez la cmdlet New-AzFrontDoorWafPolicy pour créer une stratégie WAF, qui inclut la règle personnalisée que vous avez créée.

$wafPolicy = New-AzFrontDoorWafPolicy `
  -Name 'MyWafPolicy' `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Sku Standard_AzureFrontDoor `
  -CustomRule $promoRateLimitRule

Configurer une stratégie de sécurité pour associer votre profil Azure Front Door à votre stratégie WAF

Utilisez la cmdlet New-AzFrontDoorCdnSecurityPolicy pour créer une stratégie de sécurité pour votre profil Azure Front Door. Une stratégie de sécurité associe votre stratégie WAF à des domaines que vous souhaitez protéger par la règle WAF.

Dans cet exemple, vous associez le nom d’hôte par défaut du point de terminaison à votre stratégie WAF :

$securityPolicyAssociation = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallAssociationObject `
  -PatternsToMatch @("/*") `
  -Domain @(@{"Id"=$($frontDoorEndpoint.Id)})

$securityPolicyParameters = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallParametersObject `
  -Association $securityPolicyAssociation `
  -WafPolicyId $wafPolicy.Id

$frontDoorSecurityPolicy = New-AzFrontDoorCdnSecurityPolicy `
  -Name 'MySecurityPolicy' `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Parameter $securityPolicyParameters

Prérequis

Avant de configurer une stratégie de limitation du débit, configurez votre environnement Azure CLI et créez un profil Azure Front Door.

Configurer votre environnement Azure CLI

Azure CLI fournit un ensemble de commandes qui utilisent le modèle Azure Resource Manager pour gérer vos ressources Azure.

Vous pouvez installer Azure CLI sur votre ordinateur local et l’utiliser dans n’importe quelle session d’interpréteur de commandes. Ici, vous vous connectez avec vos informations d’identification Azure et installez l’extension Azure CLI pour Azure Front Door Standard ou Premium.

Se connecter à Azure avec une boîte de dialogue interactive

Connectez-vous à Azure en exécutant la commande suivante :

az login

Installer l’extension Azure Front Door pour Azure CLI

Installez l’extension front-door pour utiliser le pare-feu d’applications web (WAF) Azure Front Door à partir d’Azure CLI :

az extension add --name front-door

Vous utilisez les commandes az afd pour utiliser des ressources Azure Front Door Standard ou Premium. Utilisez les commandes az network front-door waf-policy pour utiliser des ressources WAF.

Créer un groupe de ressources

Utilisez la commande az group create pour créer un groupe de ressources pour votre profil Azure Front Door et votre stratégie WAF. Mettez à jour le nom et l’emplacement du groupe de ressources en fonction de vos propres besoins :

resourceGroupName='FrontDoorRateLimit'

az group create \
  --name $resourceGroupName \
  --location westus

Créer un profil Azure Front Door

Utilisez la commande az afd profile create pour créer un profil Azure Front Door.

Dans cet exemple, vous créez un profil standard Azure Front Door nommé MyFrontDoorProfile :

frontDoorProfileName='MyFrontDoorProfile'

az afd profile create \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Créer un point de terminaison Azure Front Door

Utilisez la commande az afd endpoint create pour ajouter un point de terminaison à votre profil Azure Front Door.

Les points de terminaison Azure Front Door doivent avoir des noms globalement uniques. Mettez donc à jour la valeur de la variable frontDoorEndpointName sur une valeur unique.

frontDoorEndpointName='<unique-front-door-endpoint-name>'

az afd endpoint create \
  --endpoint-name $frontDoorEndpointName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \

Créer une stratégie de pare-feu d’applications web (WAF).

Utilisez la commande az network front-door waf-policy create pour créer une stratégie WAF :

wafPolicyName='MyWafPolicy'

az network front-door waf-policy create \
  --name $wafPolicyName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Préparer l’ajout d’une règle de limite de débit personnalisée

Utilisez la commande az network front-door waf-policy rule create pour créer une règle de limite de débit personnalisée. L’exemple suivant définit la limite de 1 000 requêtes par minute.

Les règles de limite de débit doivent contenir une condition de correspondance que vous créez à la prochaine étape. Dans cette commande, vous incluez l’argument --defer, qui indique à Azure CLI de ne pas soumettre la règle à Azure pour le moment.

az network front-door waf-policy rule create \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName \
  --rule-type RateLimitRule \
  --rate-limit-duration 1 \
  --rate-limit-threshold 1000 \
  --action Block \
  --priority 1 \
  --defer

Lorsqu’une adresse IP source envoie plus de 1 000 requêtes dans un délai d’une minute, le service WAF bloque les requêtes suivantes jusqu’au démarrage de la minute suivante.

Ajouter une condition de correspondance

Utilisez la commande az network front-door waf-policy rule match-condition add pour ajouter une condition de correspondance à votre règle personnalisée. La condition de correspondance identifie les requêtes auxquelles la limite de débit doit être appliquée.

L’exemple suivant correspond aux requêtes dans lesquelles la variable RequestUri contient la chaîne /promo :

az network front-door waf-policy rule match-condition add \
  --match-variable RequestUri \
  --operator Contains \
  --values '/promo' \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName

Lorsque vous envoyez cette commande, Azure CLI crée la règle de limite de débit et la condition de correspondance ensemble.

Configurer une stratégie de sécurité pour associer votre profil Azure Front Door à votre stratégie WAF

Utilisez la commande az afd security-policy create pour créer une stratégie de sécurité pour votre profil Azure Front Door. Une stratégie de sécurité associe votre stratégie WAF à des domaines que vous souhaitez protéger par la règle WAF.

Dans cet exemple, vous associez le nom d’hôte par défaut du point de terminaison à votre stratégie WAF :

securityPolicyName='MySecurityPolicy'

wafPolicyResourceId=$(az network front-door waf-policy show --name $wafPolicyName --resource-group $resourceGroupName --query id --output tsv)
frontDoorEndpointResourceId=$(az afd endpoint show --endpoint-name $frontDoorEndpointName --profile-name $frontDoorProfileName --resource-group $resourceGroupName --query id --output tsv)

az afd security-policy create \
  --security-policy-name $securityPolicyName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --domains $frontDoorEndpointResourceId \
  --waf-policy $wafPolicyResourceId

Le code précédent recherche les identificateurs de ressources Azure pour la stratégie WAF et le point de terminaison Azure Front Door afin de pouvoir les associer à votre stratégie de sécurité.

Notes

Chaque fois que vous apportez des modifications à votre stratégie WAF, vous n’avez pas besoin de recréer la stratégie de sécurité Azure Front Door. Les mises à jour de la stratégie WAF sont automatiquement appliquées aux domaines Azure Front Door.

Démarrage rapide

Pour créer un profil Azure Front Door avec une règle de limitation du débit à l’aide de Bicep, consultez le démarrage rapide Bicep Azure Front Door Standard ou Premium avec limitation du débit.

Étapes suivantes

En savoir plus sur Azure Front Door.