Configuración de una regla de restricción de IP con un firewall de aplicaciones web para Azure Front Door ServiceConfigure an IP restriction rule with a web application firewall for Azure Front Door Service

Este artículo muestra cómo configurar las reglas de restricción de IP en un firewall de aplicaciones web (WAF) para Azure Front Door Service mediante la CLI de Azure, Azure PowerShell o una plantilla de Azure Resource Manager.This article shows you how to configure IP restriction rules in a web application firewall (WAF) for Azure Front Door Service by using the Azure CLI, Azure PowerShell, or an Azure Resource Manager template.

Una regla de control de acceso basado en la dirección IP es una regla de WAF personalizada que permite controlar el acceso a las aplicaciones web.An IP address–based access control rule is a custom WAF rule that lets you control access to your web applications. Para ello, especifica una lista de direcciones IP o rangos de direcciones IP en formato de Enrutamiento entre dominios sin clase (CIDR).It does this by specifying a list of IP addresses or IP address ranges in Classless Inter-Domain Routing (CIDR) format.

De forma predeterminada, a la aplicación web se puede acceder desde Internet.By default, your web application is accessible from the internet. Si desea limitar el acceso a los clientes de una lista de direcciones IP conocidas o intervalos de direcciones IP, puede crear una regla de coincidencia de IP que contenga la lista de direcciones IP como valores coincidentes y establece el operador en "Not" (la negación es verdadera) y la acción en Bloquear.If you want to limit access to clients from a list of known IP addresses or IP address ranges, you may create an IP matching rule that contains the list of IP addresses as matching values and sets operator to "Not" (negate is true) and the action to Block. Después de que se aplique una regla de restricción de IP, las solicitudes que provengan de direcciones que no se encuentren en esta lita de permitidos reciben una respuesta 403 Prohibido.After an IP restriction rule is applied, requests that originate from addresses outside this allowed list receive a 403 Forbidden response.

Configuración de una directiva de WAF con la CLI de AzureConfigure a WAF policy with the Azure CLI

Requisitos previosPrerequisites

Antes de empezar a configurar una directiva de restricción de IP, configure el entorno de CLI y crear un perfil de Azure Front Door Service.Before you begin to configure an IP restriction policy, set up your CLI environment and create an Azure Front Door Service profile.

Configuración del entorno de la CLI de AzureSet up the Azure CLI environment

  1. Instale la CLI de Azure o use Azure Cloud Shell.Install the Azure CLI, or use Azure Cloud Shell. Azure Cloud Shell es un shell de Bash gratuito que puede ejecutarse directamente en Azure Portal.Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. Tiene la CLI de Azure preinstalada y configurada para utilizarla con la cuenta.It has the Azure CLI preinstalled and configured to use with your account. Seleccione el botón Probar en los siguientes comandos de la CLI y, después, inicie sesión con su cuenta de Azure en la sesión de Cloud Shell que se abre.Select the Try it button in the CLI commands that follow, and then sign in to your Azure account in the Cloud Shell session that opens. Después de que se inicie la sesión, escriba az extension add --name front-door para agregar la extensión de Azure Front Door Service.After the session starts, enter az extension add --name front-door to add the Azure Front Door Service extension.
  2. Si usa la CLI localmente en Bash, inicie sesión en Azure mediante az login.If you're using the CLI locally in Bash, sign in to Azure by using az login.

Creación de un perfil de Azure Front Door ServiceCreate an Azure Front Door Service profile

Para crear un perfil de Azure Front Door Service, siga las instrucciones que se describen en Inicio rápido: Creación de una instancia de Front Door para una aplicación web global de alta disponibilidad.Create an Azure Front Door Service profile by following the instructions described in Quickstart: Create a Front Door for a highly available global web application.

Creación de una directiva WAFCreate a WAF policy

Cree una directiva WAF mediante el comando az network front-door waf-policy create.Create a WAF policy by using the az network front-door waf-policy create command. En el ejemplo que se indica a continuación, reemplace el nombre de la directiva IPAllowPolicyExampleCLI por un nombre de directiva único.In the example that follows, replace the policy name IPAllowPolicyExampleCLI with a unique policy name.

az network front-door waf-policy create \
  --resource-group <resource-group-name> \
  --subscription <subscription ID> \
  --name IPAllowPolicyExampleCLI

Adición de una regla de control de acceso por IP personalizadaAdd a custom IP access control rule

Use el comando az network front-door waf-policy custom-rule create para agregar una regla de control de acceso por IP personalizada para la directiva WAF que acaba de crear.Use the az network front-door waf-policy custom-rule create command to add a custom IP access control rule for the WAF policy you just created.

En los siguientes ejemplos:In the following examples:

  • Reemplace IPAllowPolicyExampleCLI por la directiva única que creó anteriormente.Replace IPAllowPolicyExampleCLI with your unique policy created earlier.
  • Reemplace ip-address-range-1, ip-address-range-2 por su propio rango.Replace ip-address-range-1, ip-address-range-2 with your own range.

En primer lugar, cree una regla de permiso de IP para la directiva creada en el paso anterior.First, create an IP allow rule for the policy created from the previous step. Tenga en cuenta que se requiere --defer porque una regla debe incluir al menos una condición de coincidencia.Note --defer is required because a rule must include at least one match condition.

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

A continuación, agregue la condición de coincidencia a la regla:Next, add match condition to the rule:

az network front-door waf-policy rule match-condition add\
--match-variable RemoteAddr \
--operator IPMatch
--values "ip-address-range-1" "ip-address-range-2"
--negate true\
--name IPAllowListRule\
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI 

Búsqueda del identificador de una directiva de WAFFind the ID of a WAF policy

Para buscar el identificador de una directiva WAF, utilice el comando az network front-door waf-policy show.Find a WAF policy's ID by using the az network front-door waf-policy show command. Reemplace IPAllowPolicyExampleCLI en el ejemplo siguiente por la directiva que ha creado anteriormente.Replace IPAllowPolicyExampleCLI in the following example with your unique policy that you created earlier.

az network front-door  waf-policy show \
  --resource-group <resource-group-name> \
  --name IPAllowPolicyExampleCLI

Establezca el identificador WebApplicationFirewallPolicyLink de Azure Front Door Service en el identificador de la directiva mediante el uso del comando az network front-door update.Set the Azure Front Door Service WebApplicationFirewallPolicyLink ID to the policy ID by using the az network front-door update command. Reemplace IPAllowPolicyExampleCLI por la directiva única que creó anteriormente.Replace IPAllowPolicyExampleCLI with your unique policy that you created earlier.

az network front-door update \
  --set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/<resource- name>/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
  --name <frontdoor-name>
  --resource-group <resource-group-name>

En este ejemplo, la directiva de WAF se aplica a FrontendEndpoints [0] .In this example, the WAF policy is applied to FrontendEndpoints[0]. Puede vincular la directiva de WAF a cualquiera de los front-ends.You can link the WAF policy to any of your front ends.

Nota

La propiedad WebApplicationFirewallPolicyLink solo es preciso establecerla una vez para vincular una directiva de WAF a un front-end de Azure Front Door Service.You need to set the WebApplicationFirewallPolicyLink property only once to link a WAF policy to an Azure Front Door Service front end. Las posteriores actualizaciones de la directiva se aplican al front-end.Subsequent policy updates are automatically applied to the front end.

Configuración de una directiva de WAF con Azure PowerShellConfigure a WAF policy with Azure PowerShell

Requisitos previosPrerequisites

Antes de empezar a configurar una directiva de restricción de IP, configure el entorno de PowerShell y crear un perfil de Azure Front Door Service.Before you begin to configure an IP restriction policy, set up your PowerShell environment and create an Azure Front Door Service profile.

Configuración del entorno de PowerShellSet up your PowerShell environment

Azure PowerShell proporciona un conjunto de cmdlets que usan el modelo de Azure Resource Manager para administrar los recursos de Azure.Azure PowerShell provides a set of cmdlets that use the Azure Resource Manager model for managing Azure resources.

Puede instalar Azure PowerShell en el equipo local y usarlo en cualquier sesión de PowerShell.You can install Azure PowerShell on your local machine and use it in any PowerShell session. Siga las instrucciones de la página para iniciar sesión en PowerShell con las credenciales de Azure y, después, instale el módulo Az.Follow the instructions on the page to sign in to PowerShell by using your Azure credentials, and then install the Az module.

  1. Utilice el siguiente comando para conectarse a Azure y, después, use un cuadro de diálogo interactivo para iniciar sesión.Connect to Azure by using the following command, and then use an interactive dialog to sign in.

    Connect-AzAccount
    
  2. Antes de instalar un módulo de Azure Front Door Service asegúrese de que tiene instalada la última versión del módulo PowerShellGet.Before you install an Azure Front Door Service module, make sure you have the current version of the PowerShellGet module installed. Ejecute el siguiente comando y vuelva a abrir PowerShell.Run the following command, and then reopen PowerShell.

    Install-Module PowerShellGet -Force -AllowClobber
    
  3. Instale el módulo Az.FrontDoor con el siguiente comando.Install the Az.FrontDoor module by using the following command.

    Install-Module -Name Az.FrontDoor
    

Creación de un perfil de Azure Front Door ServiceCreate an Azure Front Door Service profile

Para crear un perfil de Azure Front Door Service, siga las instrucciones que se describen en Inicio rápido: Creación de una instancia de Front Door para una aplicación web global de alta disponibilidad.Create an Azure Front Door Service profile by following the instructions described in Quickstart: Create a Front Door for a highly available global web application.

Definición de una condición de coincidencia IPDefine an IP match condition

Use el comando New AzFrontDoorWafMatchConditionObject para definir una condición de coincidencia de IP.Use the New-AzFrontDoorWafMatchConditionObject command to define an IP match condition. En el siguiente ejemplo, reemplace ip-address-range-1, ip-address-range-2 por su propio rango.In the following example, replace ip-address-range-1, ip-address-range-2 with your own range.

$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable  RemoteAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1

Creación de una regla de permiso de IP personalizadaCreate a custom IP allow rule

Use el comando New AzFrontDoorCustomRuleObject para definir una acción y establecer una prioridad.Use the New-AzFrontDoorCustomRuleObject command to define an action and set a priority. En el ejemplo siguiente, se bloquearán las solicitudes que no procedan de IP de clientes que coincidan con la lista.In the following example, requests not from client IPs that match the list will be blocked.

$IPAllowRule = New-AzFrontDoorCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1

Configuración de una directiva de WAFConfigure a WAF policy

Busque el nombre del grupo de recursos que contiene el perfil de Azure Front Door Service. Para ello, debe usar Get-AzResourceGroup.Find the name of the resource group that contains the Azure Front Door Service profile by using Get-AzResourceGroup. A continuación, configure una directiva WAF con la regla IP, para lo que debe usar New-AzFrontDoorWafPolicy.Next, configure a WAF policy with the IP rule by using New-AzFrontDoorWafPolicy.

  $IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
    -Name "IPRestrictionExamplePS" `
    -resourceGroupName <resource-group-name> `
    -Customrule $IPAllowRule`
    -Mode Prevention `
    -EnabledState Enabled

Vincule un objeto de directiva de WAF a host de front-end existente y actualice las propiedades de Azure Front Door Service.Link a WAF policy object to an existing front-end host and update Azure Front Door Service properties. En primer lugar, recupere el objeto Azure Front Door Service, para lo que debe usar Get-AzFrontDoor.First, retrieve the Azure Front Door Service object by using Get-AzFrontDoor. A continuación, establezca la propiedad WebApplicationFirewallPolicyLink en el identificador de recurso de $IPAllowPolicyExamplePS, que se creó en el paso anterior, mediante el uso del comando Set-AzFrontDoor.Next, set the WebApplicationFirewallPolicyLink property to the resource ID of $IPAllowPolicyExamplePS, created in the previous step, by using the Set-AzFrontDoor command.

  $FrontDoorObjectExample = Get-AzFrontDoor `
    -ResourceGroupName <resource-group-name> `
    -Name $frontDoorName
  $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
  Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Nota

En este ejemplo, la directiva de WAF se aplica a FrontendEndpoints [0] .In this example, the WAF policy is applied to FrontendEndpoints[0]. Una directiva de WAF se puede vincular a cualquiera de los front-ends.You can link a WAF policy to any of your front ends. La propiedad WebApplicationFirewallPolicyLink solo es preciso establecerla una vez para vincular una directiva de WAF a un front-end de Azure Front Door Service.You need to set the WebApplicationFirewallPolicyLink property only once to link a WAF policy to an Azure Front Door Service front end. Las posteriores actualizaciones de la directiva se aplican al front-end.Subsequent policy updates are automatically applied to the front end.

Configuración de una directiva de WAF con una plantilla de Resource ManagerConfigure a WAF policy with a Resource Manager template

Para ver la plantilla que crea una directiva de Azure Front Door Service y una directiva de WAF con reglas de restricción de IP personalizadas, vaya a GitHub.To view the template that creates an Azure Front Door Service policy and a WAF policy with custom IP restriction rules, go to GitHub.

Pasos siguientesNext steps