Configure una directiva de WAF de filtrado geográfico para Front Door

En este tutorial se muestra cómo usar Azure PowerShell para crear una directiva de filtrado geográfico de ejemplo y a asociarla con el host de front-end de Front Door existente. Esta directiva de filtrado geográfico de ejemplo bloqueará las solicitudes de todos los países o regiones, salvo Estados Unidos.

Si no tiene una suscripción a Azure, cree una cuenta gratuita ahora.

Prerrequisitos

Antes de empezar a configurar una directiva de filtrado geográfico, configure el entorno de PowerShell y crear un perfil de Front Door.

Configuración del entorno de PowerShell

Azure PowerShell ofrece un conjunto de cmdlets que usan el modelo Azure Resource Manager para administrar los recursos de Azure.

Puede instalar Azure PowerShell en el equipo local y usarlo en cualquier sesión de PowerShell. Siga las instrucciones de la página para iniciar sesión con sus credenciales de Azure e instalar el módulo Az.PowerShell.

Conexión a Azure con un cuadro de diálogo interactivo para el inicio de sesión

Install-Module -Name Az
Connect-AzAccount

Asegúrese de tener instalada la versión actual de PowerShellGet. Ejecute el comando siguiente y vuelva a abrir PowerShell.

Install-Module PowerShellGet -Force -AllowClobber

Instalación del módulo Az.FrontDoor

Install-Module -Name Az.FrontDoor

Creación de un perfil de Front Door

Para crear un perfil de Front Door siga las instrucciones que se describen en Inicio rápido: Creación de un perfil de Front Door.

Definición de la condición de coincidencia del filtrado geográfico

Cree una condición de coincidencia de ejemplo que selecciona las solicitudes que no proceden de "EE.UU.", utilizando New AzFrontDoorWafMatchConditionObject en los parámetros al crear una condición de coincidencia. Se proporcionan códigos de país o región de dos letras para la asignación de país o región en ¿Qué es el filtrado geográfico en un dominio para Azure Front Door?.

$nonUSGeoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty GeoMatch `
-NegateCondition $true `
-MatchValue "US"

Adición de una condición de coincidencia de filtrado geográfico a una regla con Action y Priority

Cree un objeto CustomRule nonUSBlockRule en función de la condición de coincidencia, un valor de Action y un valor de Priority, para lo que debe usar New-AzFrontDoorWafCustomRuleObject. Un objeto CustomRule puede tener varios MatchCondition. En este ejemplo, el valor de Action es Block y el de Priority es 1, la prioridad más alta.

$nonUSBlockRule = New-AzFrontDoorWafCustomRuleObject `
-Name "geoFilterRule" `
-RuleType MatchRule `
-MatchCondition $nonUSGeoMatchCondition `
-Action Block `
-Priority 1

Adición de reglas a una directiva

Busque el nombre del grupo de recursos que contiene el perfil de Front Door que usan Get-AzResourceGroup. A continuación, cree un objeto de directiva geoPolicy que contenga nonUSBlockRule para lo que debe usar New-AzFrontDoorWafPolicy en el grupo de recursos especificado que contiene el perfil de Front Door. Debe especificar un nombre único para la directiva de replicación geográfica.

En el ejemplo siguiente se usa el nombre del grupo de recursos myResourceGroupFD1 con la suposición de que ha creado el perfil de Front Door con las instrucciones proporcionadas en el Inicio rápido: Creación de una instancia de Front Door. En el ejemplo siguiente, reemplace el nombre de la directiva geoPolicyAllowUSOnly con un nombre de directiva único.

$geoPolicy = New-AzFrontDoorWafPolicy `
-Name "geoPolicyAllowUSOnly" `
-resourceGroupName myResourceGroupFD1 `
-Customrule $nonUSBlockRule  `
-Mode Prevention `
-EnabledState Enabled

Vincule el objeto de directiva de WAF al host de front-end de Front Door existente y actualice las propiedades de Front Door.

Para ello, en primer lugar recupere el objeto Front Door mediante Get-AzFrontDoor.

$geoFrontDoorObjectExample = Get-AzFrontDoor -ResourceGroupName myResourceGroupFD1
$geoFrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $geoPolicy.Id

Luego, establezca la propiedad WebApplicationFirewallPolicyLink de front-end en el valor de resourceId de geoPolicymediante Set-AzFrontDoor.

Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]

Nota

La propiedad WebApplicationFirewallPolicyLink solo es preciso establecerse una vez para vincular una directiva de WAF a un host de front-end de Front Door. Las posteriores actualizaciones de la directiva se aplican al host del front-end.

Pasos siguientes