Configurer une stratégie WAF à l'aide d'Azure PowerShell

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 stratégie WAF composée de règles personnalisées et dont l'ensemble de règles par défaut géré par Azure est activé.

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

Prérequis

Avant de commencer à configurer une stratégie de limite de 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. Suivez les instructions de la page pour vous connecter avec vos identifiants Azure. Installez ensuite le module Az PowerShell.

Connexion à Azure

Connect-AzAccount

Avant d'installer le module Azure Front Door, assurez-vous que la version actuelle de PowerShellGet est installée. Exécutez la commande suivante et rouvrez PowerShell.

Install-Module PowerShellGet -Force -AllowClobber

Installer le module Az.FrontDoor

Install-Module -Name Az.FrontDoor

Créer un profil Azure Front Door

Créez un profil Azure Front Door en suivant les instructions décrites dans Démarrage rapide : créer un profil Azure Front Door.

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 bloquant les demandes avec une URL de plus de 100 caractères à l'aide d'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é

L'exemple suivant crée un ensemble de règles par défaut géré à l'aide d'Azure PowerShell.

$managedRules =  New-AzFrontDoorWafManagedRuleObject -Type DefaultRuleSet -Version 1.0

Configurer une stratégie de sécurité

Recherchez le nom du groupe de ressources qui contient le profil Azure Front Doorà l’aide de Get-AzResourceGroup. Ensuite, configurez une stratégie de sécurité avec les règles créées dans les étapes précédentes en utilisant New-AzFrontDoorWafPolicy dans le groupe de ressources spécifié qui contient le profil Azure Front Door.

$myWAFPolicy=New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Customrule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention

Liez l'objet de stratégie de sécurité à un hôte frontal Azure Front Door existant et mettez à jour les propriétés Azure Front Door. Récupérez tout d’abord l’objet Azure Front Door avec la commande Get-AzFrontDoor. Ensuite, définissez la propriété frontale WebApplicationFirewallPolicyLink sur celle resourceId créée $myWAFPolicy$ à l'étape précédente en utilisant Set-AzFrontDoor.

Remarque

Pour Azure Front Door Standard et Premium, vous devez utiliser Get-AzFrontDoorCdnProfile.

L'exemple suivant utilise le nom du groupe de ressources myResourceGroupFD1 en supposant que vous avez créé le profil Azure Front Door à l'aide des instructions fournies dans Démarrage rapide : Create an Azure Front Door. En outre, dans l'exemple suivant, remplacez $frontDoorName par le nom de votre profil Azure Front Door.

   $FrontDoorObjectExample = Get-AzFrontDoor `
     -ResourceGroupName myResourceGroupFD1 `
     -Name $frontDoorName
   $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
   Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Remarque

Il vous suffit de définir la propriété WebApplicationFirewallPolicyLink une seule fois pour lier une stratégie de sécurité à un Azure Front Door front-end. Les mises à jour de stratégie suivantes sont automatiquement appliquées au front-end.

Étapes suivantes