Cet article vous montre comment configurer des règles de restriction IP dans (WAF) pour Azure Front Door à l'aide du Portail Microsoft Azure, de l'interface de ligne de commande Azure, d'Azure PowerShell ou d'un modèle Azure Resource Manager.
Une règle de contrôle d’accès basé sur l’adresse IP est une règle WAF personnalisée qui vous permet de contrôler l’accès à vos applications web. La règle spécifie une liste d'adresses IP ou de plages d'adresses IP au format CIDR (Classless Inter-Domain Routing).
Il existe deux types de variables de correspondance dans une correspondance d'adresse IP : RemoteAddr
et SocketAddr
. La variable RemoteAddr
est l’adresse IP du client d’origine qui est généralement envoyée au travers de l’en-tête de demande X-Forwarded-For
. La variable SocketAddr
est l'adresse IP source que le WAF voit. Si votre utilisateur est derrière un proxy, SocketAddr
est souvent l'adresse du serveur proxy.
Par défaut, votre application web est accessible depuis Internet. Si vous souhaitez limiter l'accès aux clients à partir d'une liste d'adresses IP ou de plages d'adresses IP connues, vous pouvez créer une règle de correspondance IP qui contient la liste des adresses IP comme valeurs correspondantes et définit l'opérateur sur (nier est vrai) Not
et l'action à Block
. Une fois une règle de restriction IP appliquée, les demandes provenant d’adresses qui ne figurent pas dans cette liste autorisée recevront une réponse 403 Interdit.
Suivez ces étapes pour configurer une stratégie WAF à l’aide du portail Azure.
Prérequis
Créez un profil Azure Front Door en suivant les instructions décrites dans Démarrage rapide : créer une instance Azure Front Door pour une application Web globale hautement disponible.
Créer une stratégie de pare-feu d’applications web (WAF).
Dans le portail Azure, sélectionnez Créer une ressource. Saisissez Pare-feu d'application Web dans la zone de recherche des services de recherche et de la place de marché et sélectionnez Entrée. Sélectionnez ensuite Pare-feu d'application Web (WAF).
Sélectionnez Créer.
Sur la page Créer une stratégie WAF, utilisez les valeurs suivantes pour compléter l'onglet Général.
Paramètre |
Valeur |
Stratégie pour |
WAF mondial (porte d'entrée). |
Niveau Front Door |
Sélectionnez Premium ou Standard pour correspondre à votre niveau Azure Front Door. |
Abonnement |
Sélectionnez votre abonnement. |
Groupe de ressources |
Sélectionnez le groupe de ressources où se trouve votre instance Azure Front Door. |
Nom de la stratégie |
Saisissez un nom pour votre stratégie. |
État de la stratégie |
Volumes sélectionnés |
Mode de stratégie |
Prévention |
Sélectionnez Suivant : Règles managées.
Sélectionnez Suivant : Paramètres Azure Policy.
Dans l'onglet Paramètres Azure Policy, entrez Vous avez été bloqué ! pour le corps de la réponse Block afin que vous puissiez voir que votre règle personnalisée est en vigueur.
Sélectionnez Suivant : Règles personnalisées.
Sélectionnez Ajouter une règle personnalisée.
Sur la page Ajouter une règle personnalisée, utilisez les valeurs de test suivantes pour créer une règle personnalisée.
Paramètre |
Valeur |
Nom de la règle personnalisée |
FdWafCustRule |
Statut |
activé |
Type de règle |
Faire correspondre |
Priority |
100 |
Type de correspondance |
Adresse IP |
Variable de correspondance |
SocketAddr |
Opération |
Ne contient pas |
Adresse IP ou plage d'adresses IP |
10.10.10.0/24 |
Alors |
Refuser le trafic |
Sélectionnez Ajouter.
Sélectionnez Suivant : Association.
Sélectionnez Associer un profil Front Door.
Pour Profil frontal, sélectionnez votre profil frontal.
Pour Domaine, sélectionnez le domaine.
Sélectionnez Ajouter.
Sélectionnez Revoir + créer.
Une fois la validation de votre stratégie réussie, sélectionnez Créer.
Tester votre stratégie WAF
Une fois le déploiement de votre stratégie WAF terminé, accédez à votre nom d'hôte frontal Azure Front Door.
Vous devez voir votre message de bloc personnalisé.
Notes
Une adresse IP privée a été utilisée intentionnellement dans la règle personnalisée pour garantir le déclenchement de la règle. Dans un déploiement réel, créez des règles d'autorisation et de refus en utilisant des adresses IP adaptées à votre situation particulière.
Suivez ces étapes pour configurer une stratégie WAF à l’aide d’Azure CLI.
Prérequis
Avant de commencer à configurer une stratégie de restriction d’IP, configurez votre environnement CLI et créez un profil Azure Front Door.
Configurer l'environnement Azure CLI
- Installez Azure CLI ou utilisez Azure Cloud Shell. Azure Cloud Shell est un interpréteur de commandes Bash gratuit, que vous pouvez exécuter directement dans le portail Azure. L’interface Azure CLI est préinstallée et configurée pour être utilisée avec votre compte. Sélectionnez le bouton Essayer dans les commandes de l’interface de ligne de commande qui suit. Connectez-vous ensuite à votre compte Azure dans la session Cloud Shell qui s'ouvre. Une fois la session ouverte, saisissez
az extension add --name front-door
pour ajouter l’extension Azure Front Door.
- Si vous utilisez l’interface CLI localement dans Bash, connectez-vous à Azure à l’aide de
az login
.
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 une instance Azure Front Door pour une application Web globale hautement disponible.
Créer une stratégie de pare-feu d’applications web (WAF).
Créer une stratégie WAF à l’aide de la commande az network front-door waf-policy create.
Dans l’exemple suivant, remplacez le nom de la stratégie IPAllowPolicyExampleCLI par un nom unique.
az network front-door waf-policy create \
--resource-group <resource-group-name> \
--subscription <subscription ID> \
--name IPAllowPolicyExampleCLI
Ajouter une règle de contrôle d’accès IP personnalisée
Utilisez la commande az network front-door waf-policy custom-rule create pour ajouter une règle de contrôle d'accès IP personnalisée pour la stratégie WAF que vous avez créée.
Dans les exemples suivants :
- Remplacez IPAllowPolicyExampleCLI par votre stratégie unique créée précédemment.
- Remplacez ip-address-range-1, ip-address-range-2 par votre propre plage.
Tout d’abord, créez une règle d’autorisation IP pour la stratégie créée à l’étape précédente.
Remarque
--defer
est requis parce qu’une règle doit avoir une condition de correspondance à ajouter à l’étape suivante.
az network front-door waf-policy rule create \
--name IPAllowListRule \
--priority 1 \
--rule-type MatchRule \
--action Block \
--resource-group <resource-group-name> \
--policy-name IPAllowPolicyExampleCLI --defer
Ensuite, ajoutez une condition de correspondance à la règle :
az network front-door waf-policy rule match-condition add \
--match-variable SocketAddr \
--operator IPMatch \
--values "ip-address-range-1" "ip-address-range-2" \
--negate true \
--name IPAllowListRule \
--resource-group <resource-group-name> \
--policy-name IPAllowPolicyExampleCLI
Rechercher l’ID d’une stratégie WAF
Recherchez une stratégie WAF à l’aide de la commande az network front-door waf-policy show. Là encore, remplacez IPAllowPolicyExampleCLI dans l’exemple suivant par votre stratégie unique que vous avez créée précédemment.
az network front-door waf-policy show \
--resource-group <resource-group-name> \
--name IPAllowPolicyExampleCLI
Lier une stratégie WAF à un hôte front-end Azure Front Door
Définissez l’ID WebApplicationFirewallPolicyLink d’Azure Front Door sur l’ID de la stratégie à l’aide de la commande az network front-door update. Remplacez IPAllowPolicyExampleCLI par votre stratégie unique créée précédemment.
az network front-door update \
--set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/resource-group-name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
--name <frontdoor-name> \
--resource-group <resource-group-name>
Dans cet exemple, la stratégie WAF est appliquée à FrontendEndpoints[0]
. Vous pouvez lier la stratégie WAF à n’importe quel front-end en votre possession.
Remarque
Vous devez définir la propriété WebApplicationFirewallPolicyLink
une seule fois pour lier une stratégie WAF à un front-end Azure Front Door. Les mises à jour de stratégie suivantes sont automatiquement appliquées au front-end.
Suivez ces étapes pour configurer une stratégie WAF à l’aide d’Azure PowerShell.
Prérequis
Avant de commencer à configurer une stratégie de restriction d’IP, configurez votre environnement PowerShell et créez un profil Azure Front Door.
Configurer votre environnement PowerShell
Azure PowerShell fournit un ensemble de cmdlets qui utilisent le modèle Azure Resource Manager pour gérer des ressources Azure.
Vous pouvez installer Azure PowerShell sur votre ordinateur local et l’utiliser sur n’importe quelle session PowerShell. Suivez les instructions dans la page pour vous connecter à PowerShell avec vos informations d’identification Azure, puis installez le module PowerShell Az.
Connectez-vous à Azure à l'aide de la commande suivante, puis utilisez une boîte de dialogue interactive pour vous connecter.
Connect-AzAccount
Avant d’installer le module Azure Front Door, assurez-vous que vous avez installé la version actuelle du module PowerShellGet. Exécutez la commande suivante, puis rouvrez PowerShell.
Install-Module PowerShellGet -Force -AllowClobber
Installez le module Az.FrontDoor à l'aide de la commande suivante :
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 une porte d’entrée pour une application web globale hautement disponible.
Définir une condition de correspondance IP
Utilisez la commande New-AzFrontDoorWafMatchConditionObject pour définir une condition de correspondance IP.
Dans l’exemple suivante, remplacez ip-address-range-1, ip-address-range-2 par votre propre plage.
$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1
Créer une règle d’autorisation IP personnalisée
Utilisez la commande New-AzFrontDoorWafCustomRuleObject pour définir une action et une priorité. Dans l'exemple suivant, les demandes ne provenant pas d'adresses IP clientes qui correspondent à la liste sont bloquées.
$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1
Recherchez le nom du groupe de ressources qui contient le profil Azure Front Doorà l’aide de Get-AzResourceGroup
. Configurez ensuite une stratégie WAF avec la règle IP à l’aide de la commande New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Lier une stratégie WAF à un hôte front-end Azure Front Door
Liez un objet de stratégie WAF à un hôte front-end existant et mettez à jour les propriétés d’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é WebApplicationFirewallPolicyLink
sur l’ID de la ressource $IPAllowPolicyExamplePS
créée à l’étape précédente, en utilisant la commande Set-AzFrontDoor.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName <resource-group-name> `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Remarque
Dans cet exemple, la stratégie WAF est appliquée à FrontendEndpoints[0]
. Vous pouvez lier une stratégie WAF à n’importe quel front-end en votre possession. Vous devez définir la propriété WebApplicationFirewallPolicyLink
une seule fois pour lier une stratégie WAF à un front-end Azure Front Door. Les mises à jour de stratégie suivantes sont automatiquement appliquées au front-end.
Pour afficher le modèle Resource Manager qui crée une stratégie Azure Front Door et une stratégie WAF avec des règles de restriction IP personnalisées, accédez à GitHub.