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
Dans le portail Azure, sélectionnez Créer une ressource.
Recherchez Front Door, puis sélectionnez Profils Front Door et CDN.
Sélectionnez Create (Créer).
Sélectionnez Continuer à créer une Front Door pour utiliser le processus de création de portail création rapide.
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.
En regard de Stratégie WAF, sélectionnez Créer.
Entrez le nom d’une stratégie WAF, puis sélectionnez Créer.
Sélectionnez Vérifier + créer>Créer.
Lorsque le déploiement est terminé, sélectionnez Accéder à la ressource.
Créer une règle de limitation du débit
Sélectionnez Règles personnalisées>Ajouter une règle personnalisée.
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.
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.
Pour Action, sélectionnez Journal ou Bloquer.
Les règles de limite de débit prennent uniquement en charge les actions
Log
etBlock
.Allow
n’est pas pris en charge.Sélectionnez Ajouter.
Sélectionnez Enregistrer.
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.
Ouvrez la stratégie WAF.
Notez que le mode de stratégie est définir sur Détection.
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.