Partekatu honen bidez:


Configuración de las restricciones de acceso de Azure App Service

Al configurar restricciones de acceso, puede definir una lista de permitidos o denegados ordenados por prioridad que controla el acceso de red a la aplicación. La lista puede incluir direcciones IP o subredes de Azure Virtual Network. Si hay una o varias entradas, existe un valor denegar todo implícito al final de la lista. Para más información, vea Restricciones de acceso de Azure App Service.

La capacidad de restricción de acceso funciona con todas las cargas de trabajo hospedadas por Azure App Service. Las cargas de trabajo pueden incluir aplicaciones web, aplicaciones de API, aplicaciones linux, contenedores personalizados de Linux y aplicaciones de Azure Functions.

Cuando alguien realiza una solicitud a la aplicación, la FROM dirección se evalúa con respecto a las reglas de la lista de restricciones de acceso. Si la dirección del FROM está en una subred configurada con puntos de conexión de servicio para Microsoft.Web, la subred de origen se compara con las reglas de red virtual de la lista de restricciones de acceso. Si la dirección no tiene permitido el acceso según las reglas de la lista, el servicio responde con un código de estado HTTP 403.

La capacidad de restricción de acceso se implementa en los roles de front-end de App Service, que están en un nivel superior de los hosts de trabajo donde se ejecuta el código. Por lo tanto, las restricciones de acceso son listas de control de acceso de red de facto.

La capacidad de restringir el acceso a la aplicación web desde una red virtual de Azure utiliza puntos de conexión de servicio. Con los puntos de conexión de servicio, puede restringir el acceso de un servicio multiinquilino de las subredes seleccionadas. No funciona para restringir el tráfico a aplicaciones hospedadas en un entorno App Service Environment. Si está en un entorno de App Service Environment, puede controlar el acceso a su aplicación aplicando reglas de direcciones IP.

Nota:

Los puntos de conexión del servicio deben estar habilitados tanto en la red como para el servicio de Azure con el que se están habilitando. Para obtener una lista de los servicios de Azure que admiten puntos de conexión de servicio, consulte Puntos de conexión de servicio de red virtual.

Diagrama que muestra el flujo de restricciones de acceso.

Administración de reglas de restricción de acceso en el portal

Para agregar una regla de restricción de acceso a la aplicación:

  1. Inicie sesión en Azure Portal.

  2. Seleccione la aplicación a la que quiere agregar restricciones de acceso.

  3. En el menú de la izquierda, seleccione Configuración>Redes.

  4. En el panel Redes , en Configuración del tráfico entrante, seleccione la opción Acceso a la red pública .

    Captura de pantalla del panel de opciones de red de App Service en Azure Portal.

  5. En el panel Restricciones de acceso , revise la lista de reglas de restricción de acceso definidas para la aplicación.

    Captura de pantalla del panel Restricciones de acceso en Azure Portal, en la que se muestra la lista de reglas de restricción de acceso definidas para la aplicación seleccionada.

    En la lista se muestran las restricciones que se aplican actualmente a la aplicación. Si tiene una restricción de red virtual en la aplicación, la tabla muestra si los puntos de conexión de servicio están habilitados para Microsoft.Web. Si no se definen restricciones en la aplicación y la regla no coincidente no está establecida en Denegar, la aplicación es accesible desde cualquier lugar.

Permisos

Debe tener los siguientes permisos de control de acceso basado en roles en la subred o en un nivel superior para configurar las restricciones de acceso a través de Azure Portal, la CLI o al establecer las propiedades site config directamente:

Acción Descripción
Microsoft.Web/sites/config/read Obtiene las opciones de configuración de la aplicación web.
Microsoft.Web/sites/config/write Actualiza las opciones de configuración de la aplicación web.
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Combina un recurso como una cuenta de almacenamiento o una instancia de SQL Database con una subred.
Microsoft.Web/sites/write** Actualiza la configuración de la aplicación web.

*Solo es necesario al agregar una regla de red virtual (punto de conexión de servicio)

**Solo es necesario si actualiza las restricciones de acceso a través de Azure Portal.

Si agrega una regla basada en punto de conexión de servicio y la red virtual está en una suscripción diferente de la aplicación, asegúrese de que la suscripción con la red virtual está registrada para el Microsoft.Web proveedor de recursos. Puede registrar explícitamente el proveedor, y este se registra automáticamente al crear la primera aplicación web en una suscripción. Para obtener más información, consulte Registro del proveedor de recursos.

Incorporación de una regla de restricción de acceso

Para agregar una regla de restricción de acceso a la aplicación, en el panel Restricciones de acceso , seleccione Agregar. La regla solo es efectiva después de guardarla.

Las reglas se aplican en orden de prioridad, desde el número más bajo de la columna Prioridad. Si no se configura una regla no coincidente, se aplicará una denegación de todo implícita cuando se añada una regla.

En el panel Agregar restricción de acceso, cuando cree una regla, haga lo siguiente:

  1. En Acción, seleccione Permitir o Denegar.
  2. Escriba un nombre y una descripción de la regla (opcional).
  3. En el cuadro Prioridad, escriba un valor de prioridad.
  4. En la lista desplegable Tipo, seleccione el tipo de regla. En las siguientes secciones se describen los distintos tipos de reglas.
  5. Escriba la entrada específica de la regla. Seleccione Agregar regla para agregar la regla a la lista.
  6. Seleccione Guardar en el panel Restricciones de acceso .

Nota:

Hay un límite de 512 reglas de restricción de acceso. Si necesita más de 512 reglas de restricción de acceso, se recomienda considerar un producto de seguridad independiente. Considere Azure Front Door, Azure Application Gateway o un firewall de aplicaciones web (WAF) diferente.

Establecimiento de una regla basada en direcciones IP

Siga el procedimiento descrito en la sección anterior, pero con la siguiente adición:

  • En el paso 4, en la lista desplegable Tipo , seleccione IPv4 o IPv6.

Especifique el Bloque de direcciones IP en la notación Enrutamiento de interdominios sin clases (CIDR) para las direcciones IPv4 e IPv6. Para especificar una dirección, puede usar algo parecido a 1.2.3.4/32, donde los cuatro primeros octetos representan su dirección IP y /32 es la máscara. La notación CIDR IPv4 para todas las direcciones es 0.0.0.0/0.

Nota:

Las reglas de restricción de acceso basadas en IP solo controlan los intervalos de direcciones de red virtual cuando la aplicación se encuentra en una instancia de App Service Environment. Si la aplicación está en el servicio de multitenencia, debe usar puntos de conexión de servicio para restringir el tráfico a determinadas subredes en la red virtual.

Configura una regla basada en un punto de conexión de servicio

  • En el paso 4, en la lista desplegable Tipo, seleccione Red virtual.

    Captura de pantalla del panel Agregar restricción con el tipo de red virtual seleccionado.

Especifique las listas desplegables de Suscripción, Red virtual y Subred, coincidiendo con aquello a lo que desea restringir el acceso.

Con los puntos de conexión de servicio, puede restringir el acceso a las subredes de Azure Virtual Network. Si los puntos de conexión de servicio aún no están habilitados con Microsoft.Web para la subred que seleccione, se habilitarán automáticamente a menos que seleccione Omitir los puntos de conexión de servicio Microsoft.Web que faltan. Si desea habilitar puntos de conexión de servicio en la aplicación, pero no la subred depende de si tiene los permisos para habilitarlos en la subred.

Si necesita que otra persona habilite los puntos de conexión de servicio en la subred, seleccione Omitir los puntos de conexión de servicio Microsoft.Web que faltan. Tu aplicación está configurada para los puntos finales de servicio. Más adelante se pueden habilitar en la subred.

No puede usar puntos de conexión de servicio para restringir el acceso a las aplicaciones que se ejecutan en un entorno App Service Environment. Si la aplicación está en un entorno App Service Environment, puede controlar el acceso a ella con reglas de acceso de IP.

Con los puntos de conexión de servicio, puedes configurar tu aplicación mediante puertas de enlace de aplicaciones u otros dispositivos de firewall de aplicaciones web (WAF). También se pueden configurar aplicaciones de varios niveles con back-ends seguros. Para más información, consulte características de red de App Service y integración de Application Gateway.

Nota:

Actualmente no se admiten puntos de conexión de servicio para las aplicaciones web que usan enlaces TLS/SSL basados en IP con una dirección IP virtual.

Establecimiento de una regla basada en una etiqueta de servicio

  • En el paso 4, en la lista desplegable Tipo, seleccione Etiqueta de servicio.

    Captura de pantalla del panel Agregar restricción con el tipo de etiqueta de servicio seleccionado.

Todas las etiquetas de servicio disponibles públicamente se admiten en las reglas de restricción de acceso. Cada etiqueta de servicio representa una lista de intervalos IP de servicios de Azure. Puede encontrar una lista de estos servicios y vínculos a los intervalos específicos en la documentación de la etiqueta de servicio. Use plantillas de Azure Resource Manager o scripting para configurar reglas más avanzadas, como las reglas de ámbito regional.

Nota:

Al crear reglas basadas en etiquetas de servicio a través de Azure Portal o la CLI de Azure, necesita acceso de lectura en el nivel de suscripción para obtener la lista completa de etiquetas de servicio para la selección o validación. Además, el proveedor de recursos de Microsoft.Network debe registrarse en la suscripción.

Edición de una regla

  1. Para editar una regla de restricción de acceso existente, vaya al panel Restricciones de acceso y seleccione la regla que desea editar.

  2. En el panel Editar restricción de acceso, realice los cambios y seleccione Actualizar regla.

  3. Seleccione Guardar para guardar los cambios.

    Nota:

    Cuando se edita una regla, no se puede cambiar entre tipos de regla.

Eliminar una regla

  1. Para eliminar una regla, en el panel Restricciones de acceso , seleccione la regla o las reglas que desea eliminar y, a continuación, seleccione Eliminar.

  2. Seleccione Guardar para guardar los cambios.

Recorte de pantalla del panel Restricciones de acceso que muestra los puntos suspensivos Quitar junto a la regla de restricción de acceso que se va a eliminar.

Escenarios avanzados de restricción de acceso

En las secciones siguientes se describe el uso de restricciones de acceso en escenarios avanzados.

Filtrar por encabezado HTTP

Puede agregar filtros de encabezado HTTP a cualquier regla. Se admiten los siguientes nombres de encabezado HTTP:

  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Para cada nombre de encabezado, puede agregar hasta ocho valores separados por comas. Los filtros de encabezado HTTP se evalúan después de la propia regla y ambas condiciones deben ser verdaderas para que se aplique la regla.

Reglas de varios orígenes

Las reglas de varios orígenes permiten combinar hasta ocho intervalos IP u ocho etiquetas de servicio en una sola regla. Use reglas de varios orígenes si tiene más de 512 intervalos IP o si desea crear reglas lógicas. Por ejemplo: una regla lógica podría incluir varios intervalos IP combinados con un único filtro de encabezado HTTP.

Las reglas de varios orígenes se definen de la misma manera que las reglas de origen único, pero cada intervalo se separa con una coma.

Ejemplo de PowerShell:

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
  -Priority 100 -Action Allow

Bloqueo de una dirección IP única

Si desea bloquear explícitamente una sola dirección IP o un bloque de direcciones IP, pero permitir el acceso a todo lo demás, puede agregar una regla de denegación para la dirección IP específica. A continuación, configure la acción de regla no coincidente para Permitir.

Captura de pantalla del panel Restricciones de acceso en Azure Portal, en la que se muestra una única dirección IP bloqueada.

Restricción del acceso a un sitio de SCM

Además de poder controlar el acceso a la aplicación, puedes restringir el acceso al sitio de herramientas avanzada de administración de control de código fuente (SCM) que usa la aplicación. El sitio de SCM es el punto de conexión de Web Deploy y la consola de Kudu. Puede asignar restricciones de acceso al sitio de SCM desde la aplicación de manera independiente o usar el mismo conjunto de restricciones para la aplicación y el sitio de SCM. Al seleccionar Usar reglas de sitio principales, la lista de reglas está oculta. El sitio SCM usa las reglas del sitio principal. Si anula la selección de la casilla, la configuración del sitio de SCM volverá a aparecer.

Captura de pantalla del panel Restricciones de acceso en Azure Portal, en la que se muestra que no se establecen restricciones de acceso para el sitio de SCM o la aplicación.

Restricción del acceso a una instancia específica de Azure Front Door

El tráfico de Azure Front Door a la aplicación se origina en un conjunto conocido de intervalos IP definidos en la etiqueta de servicio AzureFrontDoor.Backend. Mediante el uso de una regla de restricción de etiquetas de servicio, puede restringir el tráfico para que solo se origine desde Azure Front Door. Para asegurarse de que el tráfico solo se origina en su instancia específica, debe filtrar aún más las solicitudes entrantes en función del encabezado HTTP único que envía Azure Front Door.

Captura de pantalla del panel Restricciones de acceso en Azure Portal, en la que se muestra cómo agregar una restricción de Azure Front Door.

Ejemplo de PowerShell:

$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
  -HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}

Administración de la restricción de acceso mediante programación

También puede administrar la restricción de acceso mediante programación. En los ejemplos siguientes se muestra cómo agregar reglas a las restricciones de acceso y cómo cambiar Acción de regla no coincidentes tanto para Sitio principal como para Sitio de herramientas avanzadas.

Adición de reglas de restricciones de acceso para el sitio principal

Puede agregar reglas de restricciones de acceso para el sitio principal mediante programación con una de las opciones siguientes:

Puede ejecutar el siguiente comando en Azure Cloud Shell. Para obtener más información sobre el comando, vea az webapp config access-restriction.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
  --http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Adición de reglas de restricciones de acceso para el sitio de herramientas avanzadas

Puede agregar reglas de restricciones de acceso para el sitio de herramientas avanzadas mediante programación. Elija una de las siguientes opciones:

Puede ejecutar el siguiente comando en Cloud Shell. Para obtener más información sobre el comando, vea az webapp config access-restriction.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true

Cambio de la acción de regla no coincidente para el sitio principal

Puede cambiar la acción de regla no coincidente para el sitio principal mediante programación con una de las opciones siguientes:

Puede ejecutar el siguiente comando en Cloud Shell. Para obtener más información sobre el comando, vea az resource. Los valores aceptados de ipSecurityRestrictionsDefaultAction son Allow o Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow

Cambio de la acción de regla no coincidente para el sitio de herramientas avanzadas

Puede cambiar la acción de regla no coincidente para el sitio de herramientas avanzadas mediante programación con una de las opciones siguientes:

Puede ejecutar el siguiente comando en Cloud Shell. Para obtener más información sobre el comando, vea az resource. Los valores aceptados de scmIpSecurityRestrictionsDefaultAction son Allow o Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow

Configuración de las restricciones de acceso de Azure Functions

También hay restricciones de acceso disponibles para las aplicaciones de funciones con la misma funcionalidad que los planes de App Service. Al habilitar las restricciones de acceso, también deshabilita el editor de código de Azure Portal en las direcciones IP no permitidas.