Configuración de las restricciones de acceso de Azure App Service
Al configurar las restricciones de acceso, puede definir una lista ordenada por prioridad de elementos permitidos o denegados con la que se 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 sobre las restricciones de acceso, vaya a la introducción a las restricciones de acceso.
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 e instancias de Functions.
Cuando se realiza una solicitud a la aplicación, la dirección del remitente se evalúa con respecto a las reglas de la lista de restricción de acceso. Si la dirección del remitente 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 restricción 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 instancia de Azure Virtual Network (red virtual) se obtiene mediante puntos de conexión de servicio. Con los puntos de conexión de servicio, puede restringir el acceso a un servicio multiinquilino desde subredes seleccionadas. No funciona para restringir el tráfico a aplicaciones hospedadas en un entorno App Service Environment. Si está en un entorno App Service Environment, puede controlar el acceso a la aplicación con reglas de direcciones IP.
Nota
Los puntos de conexión de servicio se deben habilitar tanto en el lado de la red como en 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.
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, haga lo siguiente:
Inicie sesión en Azure Portal.
Seleccione la aplicación a la que no quiere agregar restricciones de acceso.
En el panel izquierdo, seleccione Redes.
En el panel Redes, bajo Restricciones de acceso, seleccione Configurar restricciones de acceso.
En la página Restricciones de acceso, revise la lista de reglas de restricción de acceso definidas para la aplicación.
La lista muestra todas las restricciones actuales referentes 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 hay restricciones definidas en la aplicación, se puede acceder a la aplicación desde cualquier lugar.
Permisos
Debe tener al menos 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 de configuración del sitio directamente:
Acción | Descripción |
---|---|
Microsoft.Web/sites/config/read | Obtiene las opciones de configuración de Web Apps |
Microsoft.Web/sites/config/write | Actualiza las opciones de configuración de Web Apps |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Combina un recurso como una cuenta de almacenamiento o una instancia de SQL Database con una subred |
*solo es necesario al agregar una regla de red virtual (punto de conexión de servicio).
Si va a agregar una regla basada en el punto de conexión de servicio y la red virtual está en una suscripción diferente a la de la aplicación, debe asegurarse de que la suscripción con la red virtual esté registrada para el proveedor de recursos Microsoft.Web. Puede registrar explícitamente el proveedor siguiendo esta documentación, pero también se registrará automáticamente al crear la primera aplicación web en una suscripción.
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 regla. Una vez que agregue una regla, entrará en vigor de inmediato.
Las reglas se aplican en orden de prioridad, empezando por el número más bajo en la columna Prioridad. Una denegación de todo implícita entra en vigor una vez que agregue incluso una sola regla.
En el panel Agregar restricción de acceso, cuando cree una regla, haga lo siguiente:
En Acción, seleccione Permitir o Denegar.
Opcionalmente, escriba un nombre y una descripción para la regla.
En el cuadro Prioridad, escriba un valor de prioridad.
En la lista desplegable Tipo, seleccione el tipo de regla. En las siguientes secciones se describen los distintos tipos de reglas.
Después de escribir la entrada específica de la regla, seleccione Guardar para guardar los cambios.
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 sugiere instalar un producto de seguridad independiente, como Azure Front Door, Azure Application Gateway o un WAF alternativo.
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 un formato como 1.2.3.4/32, donde los cuatro primeros octetos representan la dirección IP y /32 es la máscara. La notación CIDR IPv4 para todas las direcciones es 0.0.0.0/0. Para más información acerca de la notación CIDR, consulte Enrutamiento de interdominios sin clases.
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 su aplicación se encuentra en el servicio multiinquilino, debe usar puntos de conexión de servicio para restringir el tráfico a determinadas subredes de la red virtual.
Establecimiento de una regla basada en un punto de conexión de servicio
En el paso 4, en la lista desplegable Tipo, seleccione Red virtual.
En las listas desplegables Suscripción, Red virtual y Subred, especifique a qué quiere 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 ya no están habilitados con Microsoft.Web para la subred seleccionada, se habilitarán automáticamente a menos que active la casilla Omitir los puntos de conexión de servicio de Microsoft.Web que faltan. La situación en la que convendría habilitar puntos de conexión de servicio en la aplicación pero no en la subred depende fundamentalmente de si se tienen los permisos para habilitarlos en la subred.
Si necesita que otra persona habilite los puntos de conexión de servicio en la subred, active la casilla Omitir los puntos de conexión de servicio de Microsoft.Web que faltan. La aplicación se configurará para los puntos de conexión de servicio en previsión de que se habiliten posteriormente 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 puntos de conexión de servicio, la aplicación se puede configurar con puertas de enlace de aplicación 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, lea Características de redes de App Service e Integración de Application Gateway con puntos de conexión de servicio.
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 (VIP).
Establecimiento de una regla basada en una etiqueta de servicio
En el paso 4, en la lista desplegable Tipo, seleccione Etiqueta de servicio.
Todas las etiquetas de servicio disponibles 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.
Edición de una regla
Para empezar a editar una regla de restricción de acceso existente, en la página Restricciones de acceso, seleccione la regla que quiere editar.
En el panel Editar restricción de acceso, realice los cambios y seleccione Actualizar regla.
Seleccione Guardar para guardar los cambios.
Nota
Cuando se edita una regla, no se puede cambiar entre tipos de regla.
Eliminar una regla
Para eliminar una regla, en la página Restricciones de acceso, compruebe la regla o reglas que quiere eliminar y luego seleccione Eliminar.
Seleccione Guardar para guardar los cambios.
Escenarios avanzados de restricción de acceso
En las secciones siguientes se describen algunos escenarios avanzados que usan restricciones de acceso.
Filtrar por encabezado http
Como parte de cualquier regla, puede agregar filtros de encabezados HTTP adicionales. Se admiten los siguientes nombres de encabezados 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 encabezados http se evalúan después de la propia regla y deben cumplirse las dos condiciones 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. Puede utilizar esta opción si tiene más de 512 intervalos IP o si quiere crear reglas lógicas en las que varios intervalos IP se combinen con un solo filtro de encabezado http.
Las reglas de varios orígenes se definen de la misma manera que se definen las reglas de un solo origen, pero con cada intervalo separado por 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
En un escenario en el que quiera bloquear explícitamente una sola dirección IP o un bloque de direcciones IP, pero permitir el acceso a todo lo demás, debe agregar una regla de denegación para la dirección IP específica y configurar la acción de regla no coincidente en Permitir.
Restricción del acceso a un sitio de SCM
Aparte de controlar el acceso a la aplicación, también puede restringir el acceso al sitio de SCM (herramienta avanzada) que utiliza 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 activar la casilla Use main site rules (Usar las reglas del sitio principal), la lista de reglas se ocultará y usará las reglas del sitio principal. Si desactiva la casilla, se vuelve a aplicar la configuración del sitio de SCM.
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. Con una regla de restricción de etiquetas de servicio, puede restringir el tráfico al que se origina en Azure Front Door. Para asegurarse de que el tráfico se origina únicamente en la instancia específica, tiene que filtrar aún más las solicitudes entrantes en función del encabezado HTTP único que envía 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
Puede administrar la restricción de acceso mediante programación. A continuación encontrará ejemplos de cómo agregar reglas a restricciones de acceso y cómo cambiar la acción de regla no coincidente para el sitio principal y el 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 comando siguiente en Cloud Shell. Para obtener más información sobre el comando az webapp config access-restriction
, consulte esta página.
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 con una de las opciones siguientes:
Puede ejecutar el comando siguiente en Cloud Shell. Para obtener más información sobre el comando az webapp config access-restriction
, consulte esta página.
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 comando siguiente en Cloud Shell. Para obtener más información sobre el comando az resource
, consulte esta página. 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 comando siguiente en Cloud Shell. Para obtener más información sobre el comando az resource
, consulte esta página. 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.
Pasos siguientes
Restricciones de acceso para Azure Functions
Integración de Application Gateway con puntos de conexión de servicio
Escenarios avanzados de restricción de acceso en Azure App Service (entrada de blog)