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
Lier la stratégie à un hôte frontal Azure Front Door
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
- En savoir plus sur Azure Front Door.
- En savoir plus sur le Azure Web Application Firewall sur Azure Front Door.