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:
- 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.
- Las asociaciones del grupo de seguridad de red requieren reglas para permitir el acceso entrante desde GatewayManager y el acceso saliente a Internet.
- 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:
- Configuración de IP frontend solo para dirección IP privada
- No se requiere ningún recurso de dirección IP pública
- Eliminación del tráfico entrante de la etiqueta de servicio GatewayManager a través del grupo de seguridad de red
- Capacidad de definir una regla Denegar todo grupo de seguridad de red (NSG) saliente para restringir el tráfico de salida a Internet
- Capacidad de invalidar la ruta predeterminada a Internet (0.0.0.0/0)
- 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:
Inicie sesión en Azure Portal.
En el cuadro de búsqueda, escriba suscripciones y seleccione Suscripciones.
Seleccione el vínculo del nombre de la suscripción.
En el menú de la izquierda, en Configuración, seleccione Características en vista previa.
Verá una lista de las características en vista previa disponibles y su estado de registro actual.
En Características de vista previa, escriba en el cuadro de filtro EnableApplicationGatewayNetworkIsolation, active la característica y haga clic en Registrar.
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:
Inicie sesión en Azure Portal.
En el cuadro de búsqueda, escriba suscripciones y seleccione Suscripciones.
Seleccione el vínculo del nombre de la suscripción.
En el menú de la izquierda, en Configuración, seleccione Características en vista previa.
Verá una lista de las características en vista previa disponibles y su estado de registro actual.
En Características de vista previa, escriba en el cuadro de filtro EnableApplicationGatewayNetworkIsolation, active la característica y haga clic en Anular registro.
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:
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 front-end privada (no tienen una configuración de front-end IP pública asociada a una regla de enrutamiento de solicitudes) 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.
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:
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.
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 203.0.113.1
- 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.
- 203.0.113.1 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 | 203.0.113.1 | 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.
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.
Resultado:
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
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:
- 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:
- Seleccione Subredes y asocie la tabla de rutas a la subred de Application Gateway:
- 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.
Configuración de vínculo privado
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.
Limitación de velocidad de WAF
Actualmente no se admiten las reglas personalizadas de limitación de velocidad para WAF v2 de Application Gateway.
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
- Consulte Línea de base de seguridad de Azure para Application Gateway para obtener más procedimientos recomendados de seguridad.