Implementación de Application Gateway privada (versión preliminar)

Introducción

Históricamente, las SKU v2 de Application Gateway y, en cierta medida, v1, tienen el direccionamiento IP público necesario para habilitar la administración del servicio. Este requisito ha impuesto varias limitaciones al usar controles específicos en grupos de seguridad de red y tablas de rutas. En concreto, se han observado los siguientes desafíos:

  1. Todas las implementaciones de Application Gateways v2 deben contener una configuración de IP de interfaz pública para permitir la comunicación con la etiqueta de servicio de Gateway Manager.
  2. Las asociaciones del grupo de seguridad de red requieren reglas para permitir el acceso entrante desde GatewayManager y el acceso saliente a Internet.
  3. Al introducir una ruta predeterminada (0.0.0.0.0/0) para reenviar el tráfico en cualquier lugar distinto de Internet, las métricas, la supervisión y las actualizaciones de la puerta de enlace producen un estado de error.

Application Gateway v2 ahora puede abordar cada uno de estos elementos para eliminar aún más el riesgo de filtración de datos y controlar la privacidad de la comunicación desde dentro de la red virtual. Estos cambios incluyen las siguientes funcionalidades:

  1. Configuración de IP frontend solo para dirección IP privada
    • No se requiere ningún recurso de dirección IP pública
  2. Eliminación del tráfico entrante de la etiqueta de servicio GatewayManager a través del grupo de seguridad de red
  3. Capacidad de definir una regla Denegar todo grupo de seguridad de red (NSG) saliente para restringir el tráfico de salida a Internet
  4. Capacidad de invalidar la ruta predeterminada a Internet (0.0.0.0/0)
  5. Resolución DNS a través de resoluciones definidas en la red virtual Más información, incluidas las zonas DNS privadas de vínculo privado.

Cada una de estas características se puede configurar de forma independiente. Por ejemplo, se puede utilizar una dirección IP pública para permitir el tráfico entrante desde Internet y se puede definir una regla Denegar todo de salida en la configuración del grupo de seguridad de red para evitar la filtración de datos.

Incorporar a la versión preliminar pública

La funcionalidad de los nuevos controles de configuración de interfaz de IP privada, control sobre reglas NSG y control sobre tablas de rutas se encuentran actualmente en versión preliminar pública. Para unirse a la versión preliminar pública, puede participar en la experiencia mediante Azure Portal, PowerShell, la CLI o la API de REST.

Cuando se une a la versión preliminar, todas las nuevas instancias de Application Gateway aprovisionan con la capacidad de definir cualquier combinación de las características de configuración de NSG, Route Table o IP privada. Si desea excluirse de la nueva funcionalidad y volver a la funcionalidad actual generalmente disponible de Application Gateway, puede hacerlo cancelando su registro en la versión preliminar.

Para más información sobre las características vista previa (gb), consulte Configuración de las características en versión preliminar en la suscripción de Azure

Registro para obtener la versión preliminar

Siga estos pasos para inscribirse en la versión preliminar pública para los controles de red mejorados de Application Gateway a través de Azure Portal:

  1. Inicie sesión en Azure Portal.

  2. En el cuadro de búsqueda, escriba suscripciones y seleccione Suscripciones.

    Azure portal search.

  3. Seleccione el vínculo del nombre de la suscripción.

    Select Azure subscription.

  4. En el menú de la izquierda, en Configuración, seleccione Características en vista previa.

    Azure preview features menu.

  5. Verá una lista de las características en vista previa disponibles y su estado de registro actual.

    Azure portal list of preview features.

  6. En Características de vista previa, escriba en el cuadro de filtro EnableApplicationGatewayNetworkIsolation, active la característica y haga clic en Registrar.

    Azure portal filter preview features.

Nota:

El registro de características puede tardar hasta 30 minutos en pasar del registro al estado registrado.

Para más información sobre las características vista previa (gb), consulte Configuración de las características en versión preliminar en la suscripción de Azure

Anulación del registro de la versión preliminar

Para no participar en la versión preliminar pública de los controles de red mejorados de Application Gateway a través del portal, siga estos pasos:

  1. Inicie sesión en Azure Portal.

  2. En el cuadro de búsqueda, escriba suscripciones y seleccione Suscripciones.

    Azure portal search.

  3. Seleccione el vínculo del nombre de la suscripción.

    Select Azure subscription.

  4. En el menú de la izquierda, en Configuración, seleccione Características en vista previa.

    Azure preview features menu.

  5. Verá una lista de las características en vista previa disponibles y su estado de registro actual.

    Azure portal list of preview features.

  6. En Características de vista previa, escriba en el cuadro de filtro EnableApplicationGatewayNetworkIsolation, active la característica y haga clic en Anular registro.

    Azure portal filter preview features.

Regiones y disponibilidad

La versión preliminar de Private Application Gateway está disponible para todas las regiones de nube pública donde se admite la SKU de Application Gateway v2.

Configuración de controles de red

Después del registro en la versión preliminar pública, se puede realizar la configuración del grupo de seguridad de red, la tabla de rutas y la configuración de frontend de direcciones IP privadas mediante cualquier método. Por ejemplo: API de REST, plantilla de ARM, implementación de Bicep, Terraform, PowerShell, CLI o Portal. No se introducen cambios en la API ni en los comandos con esta versión preliminar pública.

Cambios de recursos

Una vez aprovisionada la puerta de enlace, se asigna automáticamente una etiqueta de recurso con el nombre de EnhancedNetworkControl y el valor de True. Observe el ejemplo siguiente:

View the EnhancedNetworkControl tag

La etiqueta de recurso es estética y sirve para confirmar que la puerta de enlace se ha aprovisionado con las funcionalidades para configurar cualquier combinación de las características de la puerta de enlace privada. La modificación o eliminación de la etiqueta o valor no cambia ningún funcionamiento funcional de la puerta de enlace.

Sugerencia

La etiqueta EnhancedNetworkControl puede resultar útil cuando las puertas de enlace de aplicaciones existentes se implementaron en la suscripción antes de la habilitación de características y le gustaría diferenciar qué puerta de enlace puede usar la nueva funcionalidad.

Subred de Application Gateway

La subred de Application Gateway es la subred dentro de la red virtual donde se implementarán los recursos de Application Gateway. En la configuración de Ip privada de frontend, es importante que esta subred pueda llegar a los recursos que quieran conectarse a la aplicación o sitio expuestos.

Conectividad saliente a Internet

Las implementaciones de Application Gateway que contienen solo una configuración IP de frontend privada (no tienen una configuración de front-end IP pública) no pueden enviar tráfico de salida destinado a Internet. Esta configuración afecta a la comunicación a los destinos de backend a los que se puede acceder públicamente a través de Internet.

Para habilitar la conectividad saliente desde Application Gateway a un destino backend accesible desde Internet, puede usar Virtual Network NAT o reenviar el tráfico a una aplicación virtual que tenga acceso a Internet.

Virtual Network NAT ofrece control sobre qué dirección IP o prefijo se debe usar, así como el tiempo de espera de inactividad configurable. Para configurar, cree una nueva NAT Gateway con una dirección IP pública o un prefijo público y asóciela a la subred que contiene Application Gateway.

Si se requiere una aplicación virtual para la salida de Internet, consulte la sección control de tabla de rutas de este documento.

Escenarios comunes en los que se requiere el uso de IP pública:

  • Comunicación con el almacén de claves sin usar puntos de conexión privados ni puntos de conexión de servicio
    • La comunicación saliente no es necesaria para los archivos pfx cargados en Application Gateway directamente
  • Comunicación con destinos back-end a través de Internet
  • Comunicación con puntos de conexión CRL o OCSP accesibles desde Internet

Control de grupo de seguridad de red

Los grupos de seguridad de red asociados a una subred de Application Gateway ya no requieren reglas de entrada para GatewayManager y no requieren acceso saliente a Internet. La única regla necesaria es Permitir la entrada desde AzureLoadBalancer para asegurarse de que los sondeos de estado pueden llegar a la puerta de enlace.

La siguiente configuración es un ejemplo del conjunto más restrictivo de reglas de entrada, lo que deniega todo el tráfico, pero los sondeos de estado de Azure. Además de las reglas definidas, se definen reglas explícitas para permitir que el tráfico de cliente llegue al agente de escucha de la puerta de enlace.

View the inbound security group rules

Nota:

Application Gateway mostrará una alerta pidiendo que se asegure de que se especifica Allow LoadBalanceRule si una regla DenyAll restringe inadvertidamente el acceso a las sondas de estado.

Escenario de ejemplo

En este ejemplo se explica la creación de un grupo de seguridad de red mediante Azure Portal con las siguientes reglas:

  • Permitir el tráfico entrante al puerto 80 y 8080 a Application Gateway desde solicitudes de cliente procedentes de Internet
  • Denegar todo el resto del tráfico entrante
  • Permitir el tráfico saliente a un destino de backend en otra red virtual
  • Permitir el tráfico saliente a un destino de backend al que se puede acceder a Internet
  • Denegar todo el tráfico saliente

En primer lugar, cree un grupo de seguridad de red. Este grupo de seguridad contiene las reglas de entrada y salida.

Reglas de entrada

Ya se han aprovisionado tres reglas predeterminadas de entrada en el grupo de seguridad. Observe el ejemplo siguiente:

View default security group rules

A continuación, cree las cuatro nuevas reglas de seguridad de entrada siguientes:

  • Permitir el puerto de entrada 80, tcp, desde Internet (cualquiera)
  • Permitir el puerto de entrada 8080, tcp, desde Internet (cualquiera)
  • Permitir entrada desde AzureLoadBalancer
  • Denegar cualquier entrada

Para crear estas reglas:

  • Seleccione Reglas de seguridad de entrada
  • Seleccione Agregar.
  • Escriba la siguiente información para cada regla en el panel Agregar regla de seguridad de entrada.
  • Cuando haya escrito la información, seleccione Agregar para crear la regla.
  • La creación de cada regla tarda un momento.
Nº de regla Source Etiqueta de servicio de origen Source port ranges Destination Service Intervalos de puertos dest Protocolo Acción Priority Nombre
1 Any * Any HTTP 80 TCP Permitir 1028 AllowWeb
2 Any * Any Personalizado 8080 TCP Permitir 1029 AllowWeb8080
3 Etiqueta de servicio AzureLoadBalancer * Any Personalizado * Any Allow 1045 AllowLB
4 Any * Any Personalizado * Any Denegar 4095 DenyAllInbound

Seleccione Actualizar para revisar todas las reglas cuando se complete el aprovisionamiento.

View example inbound security group rules

Reglas de salida

Ya se han aprovisionado tres reglas de salida predeterminadas con prioridad 65000, 65001 y 65500.

Cree las tres nuevas reglas de seguridad de salida siguientes:

  • Permitir TCP 443 de 10.10.4.0/24 al destino de backend 20.62.8.49
  • Permitir TCP 80 del origen 10.10.4.0/24 al destino 10.13.0.4
  • Regla de tráfico DenyAll

Estas reglas tienen asignada una prioridad de 400, 401 y 4096, respectivamente.

Nota:

  • 10.10.4.0/24 es el espacio de direcciones de subred de Application Gateway.
  • 10.13.0.4 es una máquina virtual en una red virtual emparejada.
  • 20.63.8.49 es una máquina virtual de destino de backend.

Para crear estas reglas:

  • Seleccione Reglas de seguridad de salida
  • Seleccione Agregar.
  • Escriba la siguiente información para cada regla en el panel Agregar regla de seguridad de salida.
  • Cuando haya escrito la información, seleccione Agregar para crear la regla.
  • La creación de cada regla tarda un momento.
Nº de regla Source Intervalos de direcciones IP de origen y CIDR Source port ranges Destination Intervalos de direcciones IP de destino y CIDR Service Intervalos de puertos dest Protocolo Acción Priority Nombre
1 Direcciones IP 10.10.4.0/24 * Direcciones IP 20.63.8.49 HTTPS 443 TCP Permitir 400 AllowToBackendTarget
2 Direcciones IP 10.10.4.0/24 * Direcciones IP 10.13.0.4 HTTP 80 TCP Permitir 401 AllowToPeeredVnetVM
3 Any * Any Personalizado * Any Denegar 4096 DenyAll

Seleccione Actualizar para revisar todas las reglas cuando se complete el aprovisionamiento.

View example outbound security group rules

Asociar grupos de seguridad de red a la subred

El último paso consiste en asociar el grupo de seguridad de red a la subred que contiene La puerta de enlace de aplicaciones.

Associate NSG to subnet

Resultado:

View the NSG overview

Importante

Tenga cuidado al definir reglas de DenyAll, ya que podría denegar accidentalmente el tráfico entrante de los clientes a los que pretende permitir el acceso. También puede denegar accidentalmente el tráfico saliente al destino de backend, lo que provoca un error en el estado del backend y genera respuestas 5XX.

Control de tabla de rutas

En la oferta actual de Application Gateway, la asociación de una tabla de rutas con una regla (o creación de regla) definida como 0.0.0.0/0 con un próximo salto como aplicación virtual no se admite para garantizar la administración adecuada de Application Gateway.

Después del registro de la característica en vista previa (gb), la capacidad de reenviar el tráfico a una aplicación virtual ahora es posible mediante la definición de una regla de tabla de rutas que define 0.0.0.0/0 con un próximo salto a Aplicación virtual.

La tunelización forzada o el aprendizaje de la ruta 0.0.0.0/0 a través de la publicidad BGP no afecta al estado de Application Gateway y se respeta para el flujo de tráfico. Este escenario puede aplicarse cuando se usa VPN, ExpressRoute, Route Server o Virtual WAN.

Escenario de ejemplo

En el ejemplo siguiente, creamos una tabla de rutas y la asociamos a la subred de Application Gateway para asegurarse de que el acceso saliente a Internet desde la subred sale de una aplicación virtual. En un nivel alto, el siguiente diseño se resume en la figura 1:

  • Application Gateway está en red virtual de radio
  • Hay una aplicación virtual de red (una máquina virtual) en la red del concentrador
  • Una tabla de rutas con una ruta predeterminada (0.0.0.0/0) a la aplicación virtual está asociada a la subred de Application Gateway

Diagram for example route table

Figura 1: salida de acceso a Internet a través de una aplicación virtual

Para crear una tabla de rutas y asociarla a la subred de Application Gateway:

  1. Crear una tabla de rutas:

View the newly created route table

  1. Seleccione Rutas y cree la regla de próximo salto para 0.0.0.0/0 y configure el destino para que sea la dirección IP de la máquina virtual:

View of adding default route to network virtual applicance

  1. Seleccione Subredes y asocie la tabla de rutas a la subred de Application Gateway:

View of associating the route to the AppGW subnet

  1. Compruebe que el tráfico pasa por la aplicación virtual.

Limitaciones y problemas conocidos

Aunque en versión preliminar pública, se conocen las siguientes limitaciones.

La compatibilidad con la configuración de vínculo privado para canalizar el tráfico a través de puntos de conexión privados hacia Application Gateway no se admite con la puerta de enlace solo privada.

Configuración de frontend de IP privada solo con AGIC

Se debe utilizar AGIC v1.7 para introducir soporte para IP de interfaz privada únicamente.

Conectividad de punto de conexión privado a través de Global VNet Peering

Si Application Gateway tiene un destino de backend o una referencia del almacén de claves a un punto de conexión privado ubicado en una red virtual accesible a través del emparejamiento de red virtual global, se quita el tráfico, lo que da lugar a un estado incorrecto.

Integración de Network Watcher

La solución de problemas de conexión y los diagnósticos de NSG devuelven un error al ejecutar pruebas de comprobación y diagnóstico.

Coexistir puertas de enlace de aplicaciones v2 creadas antes de habilitar el control de red mejorado

Si una subred comparte implementaciones de Application Gateway v2 que se crearon antes y después de habilitar la funcionalidad de control de red mejorada, la funcionalidad grupo de seguridad de red (NSG) y tabla de rutas se limita a la implementación de puerta de enlace anterior. Las puertas de enlace de aplicaciones aprovisionadas antes de habilitar la nueva funcionalidad deben volver a aprovisionarse o las puertas de enlace recién creadas deben usar una subred diferente para habilitar las características mejoradas del grupo de seguridad de red y de la tabla de rutas.

  • Si existe una puerta de enlace implementada antes de habilitar la nueva funcionalidad en la subred, es posible que vea errores como: For routes associated to subnet containing Application Gateway V2, please ensure '0.0.0.0/0' uses Next Hop Type as 'Internet' al agregar entradas de tabla de rutas.
  • Al agregar reglas de grupo de seguridad de red a la subred, es posible que vea lo siguiente: Failed to create security rule 'DenyAnyCustomAnyOutbound'. Error: Network security group \<NSG-name\> blocks outgoing Internet traffic on subnet \<AppGWSubnetId\>, associated with Application Gateway \<AppGWResourceId\>. This isn't permitted for Application Gateways that have fast update enabled or have V2 Sku.

Estado de mantenimiento de backend desconocido

Si el estado del backend es Desconocido, es posible que vea el siguiente error:

  • No se pudo recuperar el estado de mantenimiento del backend. Esto sucede cuando un NSG/UDR/Firewall en la subred de puerta de enlace de aplicación bloquea el tráfico en los puertos 65503-65534 si hay SKU v1 y los puertos 65200-65535 si hay SKU v2 o si el FQDN configurado en el grupo de backend no se pudo resolver en una dirección IP. Para obtener más información, visite https://aka.ms/UnknownBackendHealth.

Este error se puede omitir y se aclarará en una versión futura.

Pasos siguientes