Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une stratégie de pare-feu d'application Web (WAF) définit les inspections requises lorsqu'une requête arrive à Azure Front Door.
Cet article montre comment configurer une politique WAF pour Azure Front Door Standard ou Premium qui comprend des règles personnalisées et active le jeu de règles par défaut géré par Azure. Les règles personnalisées s’appliquent à la fois aux niveaux Standard et Premium. Les ensembles de règles gérés, comme le Default Rule Set, nécessitent le niveau Premium.
Les règles personnalisées et le jeu de règles par défaut sont optionnels ; incluez l’un ou l’autre selon vos besoins. Vous définissez le mode politique WAF (Détection ou Prévention) lorsque vous créez la politique à une étape ultérieure.
Prérequis
Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
Un profil Azure Front Door Standard ou Premium. Si vous devez en créer un, consultez Quickstart : Créer un profil Azure Front Door Standard/Premium avec PowerShell. Les exemples de cet article utilisent un profil Premium car les ensembles de règles gérés nécessitent le niveau Premium.
Azure Cloud Shell ou Azure PowerShell.
Les étapes décrites dans cet article exécutent les applets de commande Azure PowerShell de manière interactive dans Azure Cloud Shell. Pour exécuter les applets de commande dans Cloud Shell, sélectionnez Ouvrir Cloud Shell en haut à droite d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell pour l’exécuter. Vous pouvez également exécuter le Cloud Shell à partir du portail Azure.
Vous pouvez également installer Azure PowerShell localement pour exécuter les applets de commande. Si vous exécutez PowerShell localement, connectez-vous à Azure avec la cmdlet Connect-AzAccount.
Les modules PowerShell
Az.CdnetAz.FrontDoor. Utilisez leAz.Cdnmodule pour travailler avec les ressources Standard et Premium d’Azure Front Door, et leAz.FrontDoormodule pour travailler avec les ressources WAF. Installez les deux modules en exécutant les commandes suivantes :Install-Module -Name Az.Cdn Install-Module -Name Az.FrontDoor
Règle personnalisée basée sur les paramètres HTTP
L'exemple suivant montre comment configurer une règle personnalisée avec deux conditions de correspondance à l'aide de New-AzFrontDoorWafMatchConditionObject. Les requêtes proviennent d'un site spécifié tel que défini par le référent, et la chaîne de requête ne contient pas password.
$referer = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestHeader -OperatorProperty Equal -Selector "Referer" -MatchValue "www.mytrustedsites.com/referpage.html"
$password = New-AzFrontDoorWafMatchConditionObject -MatchVariable QueryString -OperatorProperty Contains -MatchValue "password"
$AllowFromTrustedSites = New-AzFrontDoorWafCustomRuleObject -Name "AllowFromTrustedSites" -RuleType MatchRule -MatchCondition $referer,$password -Action Allow -Priority 1
Règle personnalisée basée sur une méthode de requête HTTP
Créez une règle bloquant une méthode PUT à l'aide de New-AzFrontDoorWafCustomRuleObject.
$put = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestMethod -OperatorProperty Equal -MatchValue PUT
$BlockPUT = New-AzFrontDoorWafCustomRuleObject -Name "BlockPUT" -RuleType MatchRule -MatchCondition $put -Action Block -Priority 2
Créer une règle personnalisée en fonction de la contrainte de taille
L’exemple suivant crée une règle qui bloque les requêtes avec une URL supérieure à 100 caractères en utilisant Azure PowerShell.
$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3
Ajouter un ensemble de règles par défaut géré
Des ensembles de règles gérés sont disponibles sur Azure Front Door Premium. L’exemple suivant crée un objet de jeu de règles par défaut géré en utilisant Azure PowerShell.
$managedRules = New-AzFrontDoorWafManagedRuleObject -Type Microsoft_DefaultRuleSet -Version 2.2
Remarque
Les ensembles de règles gérés nécessitent Azure Front Door Premium. Azure Front Door Standard ne prend en charge que les règles personnalisées. Cet exemple utilise Microsoft_DefaultRuleSet la version 2.2. Pour toutes les versions disponibles, voir groupes de règles et règles DRS Web Application Firewall.
Créer une stratégie de pare-feu d’applications web (WAF).
Créez une politique WAF incluant les règles personnalisées et le jeu de règles par défaut géré des étapes précédentes en utilisant New-AzFrontDoorWafPolicy. Définissez -Sku sur Premium_AzureFrontDoor pour inclure des règles gérées, ou sur Standard_AzureFrontDoor pour n’inclure que des règles personnalisées.
$myWAFPolicy = New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Sku Premium_AzureFrontDoor -CustomRule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention
Associez la politique WAF à votre endpoint
Pour Azure Front Door Standard et Premium, vous associez une politique WAF à votre endpoint en créant une politique de sécurité sur le profil Azure Front Door. Une politique de sécurité associe votre politique WAF aux domaines que vous souhaitez que le WAF protège.
Récupérez votre point de terminaison en utilisant Get-AzFrontDoorCdnEndpoint, et remplacez les noms du groupe de ressources, du profil et des terminaux par les vôtres. Ensuite, utilisez New-AzFrontDoorCdnSecurityPolicy pour associer le nom d’hôte par défaut du point de terminaison à votre politique WAF.
$frontDoorEndpoint = Get-AzFrontDoorCdnEndpoint -ResourceGroupName $resourceGroupName -ProfileName $frontDoorProfileName -EndpointName $frontDoorEndpointName
$securityPolicyAssociation = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallAssociationObject `
-PatternsToMatch @("/*") `
-Domain @(@{"Id"=$($frontDoorEndpoint.Id)})
$securityPolicyParameters = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallParametersObject `
-Association $securityPolicyAssociation `
-WafPolicyId $myWAFPolicy.Id
New-AzFrontDoorCdnSecurityPolicy `
-Name 'MySecurityPolicy' `
-ProfileName $frontDoorProfileName `
-ResourceGroupName $resourceGroupName `
-Parameter $securityPolicyParameters
Remarque
Une politique de sécurité s’applique aux domaines associés à celle-ci. Pour protéger davantage de domaines, ajoutez-les à l’association ou créez des politiques de sécurité supplémentaires.