Configure una directiva de WAF de filtrado geográfico para Azure

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 Azure Front Door existente. Esta directiva de filtrado geográfico de ejemplo bloquea 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 Azure 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. Luego instale el módulo Az de 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 siguiente comando 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 Azure Front Door

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

Definir una 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 una acción y una prioridad

Cree un CustomRule objeto nonUSBlockRule en función de la condición de coincidencia, una acción y una prioridad, para lo que debe usar New-AzFrontDoorWafCustomRuleObject. Una regla personalizada puede tener varias condiciones de coincidencia. En este ejemplo, Action está establecido en Block. Priority está establecido en 1, que es la prioridad máxima.

$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 Azure Front Door. Para ello, debe usar Get-AzResourceGroup. A continuación, cree un geoPolicy objeto que contenga nonUSBlockRule para lo que debe usar New-AzFrontDoorWafPolicy en el grupo de recursos especificado que contiene el perfil de Azure 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 Azure Front Door siguiendo las instrucciones proporcionadas en el Inicio rápido: Creación de una instancia de Azure 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 WAF al host front-end de Azure Front Door existente. Actualizar las propiedades de Azure Front Door.

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

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

A continuación, establezca la propiedad front-end WebApplicationFirewallPolicyLink en el identificador de recurso de la directiva geográfica mediante Set-AzFrontDoor.

Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]

Nota

Solo es necesario establecer la propiedad WebApplicationFirewallPolicyLink una vez para vincular una directiva de WAF a un host de front-end de Azure Front Door. Las posteriores actualizaciones de la directiva se aplican al host de front-end automáticamente.

Pasos siguientes