Restricciones de acceso de Azure App Service

Las restricciones de acceso de App Service son equivalentes a un firewall que le permite bloquear y filtrar el tráfico. Las restricciones de acceso solo se aplican al acceso entrante. La mayoría de los planes de tarifa de App Service también tienen la capacidad de agregar puntos de conexión privados a la aplicación, que son otros puntos de entrada a esta. Las restricciones de acceso no se aplican al tráfico que entra a través de un punto de conexión privado. Para todas las aplicaciones hospedadas en App Service, el punto de entrada predeterminado está disponible públicamente. La única excepción son las aplicaciones hospedadas en ILB App Service Environment, donde el punto de entrada predeterminado es interno en la red virtual.

Funcionamiento

Cuando el tráfico llega a App Service, primero se evalúa si este se origina desde un punto de conexión privado o si llega a través de un punto de conexión predeterminado. Si el tráfico se envía a través de un punto de conexión privado, se envía directamente al sitio sin restricciones. Las restricciones a los puntos de conexión privados se configuran mediante grupos de seguridad de red.

Si envía tráfico a través del punto de conexión predeterminado (a menudo un punto de conexión público), el tráfico se evalúa primero en el nivel de acceso de la aplicación. Aquí puede habilitar o deshabilitar el acceso. Si habilita el acceso a la aplicación, el tráfico se evalúa en el nivel de acceso del sitio. Si usa cualquier aplicación, tiene disponibles el sitio principal y el de herramientas avanzadas (también conocido como sitio scm o kudu).

También tiene la opción de configurar un conjunto de reglas de restricción de acceso para cada sitio. Las reglas de restricción de acceso se evalúan en orden de prioridad. Si algunas reglas tienen la misma prioridad, se evalúan en el orden en que se enumeran cuando se devuelven desde la API de Azure Resource Manager y en Azure Portal antes de ordenar. Asimismo, puede especificar el comportamiento de este si no hay ninguna regla aplicable. En las secciones siguientes se proporcionan los detalles.

Diagram of access restrictions high-level flow.

Acceso a las aplicaciones

El acceso a la aplicación permite configurar la disponibilidad de este a través del punto de conexión predeterminado (público). Configura este comportamiento para que sea Disabled o Enabled. Cuando el acceso está habilitado, puede agregar reglas de restricción de acceso al sitio para controlar el acceso desde determinadas redes virtuales y direcciones IP. Si esta opción no está configurada, el comportamiento predeterminado es habilitar el acceso a menos que exista un punto de conexión privado que cambie el comportamiento para deshabilitar el acceso.

Screenshot of app access option in Azure portal.

En la API de Azure Resource Manager, el acceso a la aplicación se denomina publicNetworkAccess. El punto de entrada predeterminado para aplicaciones de App Service Environment de ILB siempre es interno en la red virtual. La habilitación del acceso a la aplicación (publicNetworkAccess) no concede acceso público directo a las aplicaciones; en su lugar, permite el acceso desde el punto de entrada predeterminado, que corresponde a la dirección IP interna del App Service Environment. Si deshabilita el acceso a aplicaciones en un App Service Environment de ILB, solo puede acceder a las aplicaciones a través de puntos de conexión privados agregados a las aplicaciones individuales.

Acceso al sitio

Las restricciones de acceso al sitio permiten filtrar las solicitudes entrantes. Igualmente, las restricciones de acceso al sitio le permiten crear una lista de reglas permitidas y denegadas que se evalúan en orden de prioridad. Es similar a la característica Grupo de seguridad de red (NSG) de las redes de Azure.

Screenshot of site access options in Azure portal.

La restricción de acceso al sitio tiene varios tipos de reglas que puede aplicar:

Regla no coincidente

Puede configurar el comportamiento cuando no haya ninguna regla aplicable (la acción predeterminada). Esta es una regla especial que siempre aparece como la última de la colección de reglas. Si el valor no está configurado, el comportamiento de la regla no coincidente depende de las reglas configuradas. Si no hay ninguna regla, el comportamiento de las reglas no coincidentes es permitir todos los accesos, pero si una o varias reglas existen, cambia implícitamente a denegar todos los accesos. De todas formas, puede configurar explícitamente este comportamiento para permitir o denegar el acceso independientemente de las reglas definidas.

Reglas de restricción de acceso basadas en IP

La característica Restricciones de acceso basadas en IP es de utilidad cuando quiere restringir las direcciones IP que se pueden usar para llegar a la aplicación. Se admiten tanto IPv4 como IPv6. Los siguientes son algunos casos de uso para esta característica:

  • Restricción del acceso a la aplicación desde un conjunto de direcciones bien definidas.
  • Restrinja el acceso al tráfico que llega a través de un servicio de equilibrio de carga externo u otros dispositivos de red con direcciones IP de salida conocidas.

Para obtener información sobre cómo habilitar esta característica, consulte Configuración de restricciones de acceso.

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.

Reglas de restricciones de acceso basadas en puntos de conexión de servicio

Los puntos de conexión de servicio le permiten bloquear el acceso entrante a la aplicación, de modo que la dirección de origen debe proceder de un conjunto de subredes que haya seleccionado. Esta característica funciona en conjunto con las restricciones de acceso IP. Los puntos de conexión de servicio no son compatibles con la depuración remota. Si quiere usar la depuración remota con la aplicación, el cliente no puede estar en una subred que tenga los puntos de conexión de servicio habilitados. El proceso para establecer los puntos de conexión de servicio es similar al proceso para establecer las restricciones de acceso basadas en IP. Puede crear una lista de reglas de acceso tipo permitir/denegar que incluya las direcciones públicas y subredes de sus redes virtuales.

Nota

Las reglas de restricción de acceso basadas en puntos de conexión de servicio no son compatibles con las aplicaciones que tienen configurado un punto de conexión privado o que usan SSL basado en IP (dirección asignada por la aplicación).

Para más información sobre la configuración de puntos de conexión de servicio con la aplicación, consulte Restricciones de acceso de Azure App Service.

Cualquier origen de punto de conexión de servicio

Para probarlo o aplicarlo en escenarios específicos, puede permitir el tráfico desde cualquier subred habilitada para el punto de conexión de servicio. Para ello, defina una regla basada en IP con el texto "AnyVnets" en lugar de un intervalo IP. Recuerde que no puede crear estas reglas en el portal, pero puede modificar una regla basada en la IP existente y reemplazar la dirección IP por la cadena "AnyVnets".

Reglas de restricciones de acceso basadas en etiquetas de servicio

Las etiquetas de servicio de Azure son conjuntos bien definidos de direcciones IP de los servicios de Azure. Las etiquetas de servicio agrupan los intervalos IP que se usan en varios servicios de Azure y a menudo también se limitan a regiones específicas. Gracias a este tipo de regla, puede filtrar el tráfico entrante desde servicios específicos de Azure.

Para obtener una lista completa de etiquetas y más información, haga clic en el vínculo de la etiqueta de servicio.

Para obtener información sobre cómo habilitar esta característica, consulte Configuración de restricciones de acceso.

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 usar reglas de varios orígenes si tiene más de 512 intervalos IP. También puede utilizar reglas de varios orígenes 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.

No puede crear estas reglas en el portal, pero puede modificar una etiqueta de servicio existente o una regla basada en IP y agregar más orígenes a la regla.

Filtrado de encabezados HTTP para reglas de restricción de acceso a un sitio

Si usa cualquier regla, independientemente del tipo, puede agregar el filtrado de encabezados HTTP. Los filtros de encabezados HTTP le permiten inspeccionar más a fondo la solicitud entrante y filtrarla en función de los valores específicos de los encabezados HTTP. Cada encabezado puede tener hasta ocho valores por regla. A continuación se enumeran los encabezados HTTP admitidos:

  • X-Forwarded-For. Encabezado estándar para identificar la dirección IP de origen de un cliente que se conecta a través de un servidor proxy. Acepta valores CIDR válidos.
  • X-Forwarded-Host. Encabezado estándar para identificar el host original solicitado por el cliente. Acepta cualquier cadena de hasta 64 caracteres de longitud.
  • X-Azure-FDID. Encabezado personalizado para identificar la instancia de proxy inverso. Azure Front Door envía un GUID que identifique la instancia; asimismo, los servidores proxy que no son de Microsoft también pueden usarlo para identificar la instancia específica. Acepta cualquier cadena de hasta 64 caracteres de longitud.
  • X-FD-HealthProbe. Encabezado personalizado para identificar el sondeo de estado del proxy inverso. Azure Front Door envía el valor "1" para identificar de forma única una solicitud de sondeo de estado. Los servidores proxy que no son de Microsoft también pueden usar el encabezado para identificar sondeos de estado. Acepta cualquier cadena de hasta 64 caracteres de longitud.

Algunos casos de uso del filtrado de encabezados HTTP son:

  • Restringir el acceso al tráfico procedente de los servidores proxy que reenvían el nombre de host.
  • Restringir el acceso a una instancia específica de Azure Front Door con una regla de etiqueta de servicio y una restricción de encabezado X-Azure-FDID.

Registro de diagnóstico

App Service puede enviar varias categorías de registro a Azure Monitor. Una de esas categorías se denomina IPSecurity Audit logs y representa las actividades en las restricciones de acceso. Todas las solicitudes que coinciden con una regla (excepto la regla no coincidente), tanto permitidas como denegadas, se registran y se pueden usar para validar la configuración de las restricciones de acceso. La funcionalidad de registro también es una herramienta eficaz al solucionar problemas de configuración de reglas.

Casos de uso avanzados

La combinación de las características anteriores le permite resolver algunos casos de uso específicos que se describen en las secciones siguientes.

Bloqueo de una dirección IP única

Si quiere denegar o bloquear una o varias direcciones IP específicas, puede agregar las direcciones IP como reglas de denegación y configurar la regla no coincidente para permitir todo el tráfico no coincidente.

Restricción del acceso al sitio de herramientas avanzadas

El sitio de herramientas avanzadas, que también se conoce como scm o kudu, tiene una colección de reglas individual que puede configurar. También puede configurar la regla no coincidentes para este sitio. Una configuración también le permite usar las reglas configuradas para el sitio principal. No puede permitir de forma selectiva el acceso a determinadas características del sitio de herramientas avanzadas. Por ejemplo, no puede permitir de forma selectiva el acceso solo a la consola de administración de WebJobs en el sitio de herramientas avanzadas.

Implementación a través de un punto de conexión privado

Es posible que tenga un sitio accesible públicamente, pero que el sistema de implementación esté en una red virtual. Para mantener el tráfico de implementación privado, agregue un punto de conexión privado. A continuación, debe asegurarse de que el acceso a la aplicación pública está habilitado. Por último, debe establecer la regla no coincidente para denegar el acceso al sitio de herramientas avanzadas, lo que bloquea todo el tráfico público a ese punto de conexión.

Permiso de acceso del asociado externo al sitio protegido por un punto de conexión privado

En este escenario, va a acceder al sitio y realizará una implementa a través de un punto de conexión privado. Puede invitar temporalmente a un asociado externo para probar el sitio. Para ello, puede habilitar el acceso a la aplicación pública. Agregue una regla (basada en IP) para identificar el cliente del asociado. Configure la acción de reglas no coincidentes para denegar tanto para el sitio principal como para las herramientas avanzadas.

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 y que se denomina X-Azure-FDID. Puede encontrar el id. de Front Door en el portal.

Pasos siguientes

Nota:

Las reglas de restricción de acceso que bloquean el acceso público al sitio también pueden bloquear servicios como el streaming de registros. Si lo necesita, deberá permitir la dirección IP de su App Service en las restricciones.