Protección de una red virtual personalizada en Azure Container Apps con grupos de seguridad de red
Grupos de seguridad de red (NSG) necesarios para configurar redes virtuales muy parecidas a la configuración requerida por Kubernetes.
Puede bloquear una red a través de grupos de seguridad de red con reglas más restrictivas que las reglas de NSG predeterminadas para controlar todo el tráfico entrante y saliente para el entorno de Container Apps en el nivel de suscripción.
En el entorno de perfiles de carga de trabajo, se admiten rutas definidas por el usuario (UDR) y protección del tráfico saliente con un firewall . Cuando se usa un entorno de perfiles de carga de trabajo externo, el tráfico entrante a Azure Container Apps se enruta a través de la dirección IP pública que existe en el grupo de recursos administrado en lugar de a través de la subred. Esto significa que no se admite el bloqueo del tráfico entrante a través de NSG o Firewall en un entorno de perfiles de carga de trabajo externo. Para más información, consulte Redes en entornos de Azure Container Apps.
En el entorno solo consumo, no se admiten las rutas rápidas y las rutas definidas por el usuario (UDR) personalizadas tienen compatibilidad limitada. Para obtener más información sobre qué nivel de compatibilidad con UDR está disponible en el entorno de solo consumo, consulte las preguntas más frecuentes.
Reglas de permisos de NSG
En las tablas siguientes se describe cómo configurar una colección de reglas de permisos de NSG. Las reglas específicas necesarias dependen del tipo de entorno.
Entrada
Nota:
Al usar perfiles de carga de trabajo, las reglas de NSG entrantes solo se aplican para el tráfico que pasa por la red virtual. Si las aplicaciones de contenedor están configuradas para aceptar el tráfico desde la red pública de Internet, el tráfico entrante pasa por el punto de conexión público en lugar de la red virtual.
Protocolo | Origen | Puertos de origen | Destination | Puertos de destino | Descripción |
---|---|---|---|---|---|
TCP | Direcciones IP de cliente | * | Subred 1 de la aplicación contenedora | 80 , 31080 |
Permitir que las direcciones IP de cliente accedan a Azure Container Apps al usar HTTP. 31080 es el puerto en el que el proxy perimetral del entorno de Container Apps responde al tráfico HTTP. Está detrás del equilibrador de carga interno. |
TCP | Direcciones IP de cliente | * | Subred 1 de la aplicación contenedora | 443 , 31443 |
Permitir que las direcciones IP de cliente accedan a Azure Container Apps al usar HTTPS. 31443 es el puerto en el que el proxy perimetral del entorno de Container Apps responde al tráfico HTTPS. Está detrás del equilibrador de carga interno. |
TCP | AzureLoadBalancer | * | Subred de la aplicación contenedora | 30000-32767 2 |
Permitir que Azure Load Balancer sondee los grupos de back-end. |
1 Esta dirección se pasa como parámetro al crear un entorno. Por ejemplo, 10.0.0.0/21
.
2 El intervalo completo es necesario al crear azure Container Apps como un puerto dentro del intervalo mediante la asignación dinámica. Una vez creados, los puertos necesarios son dos valores estáticos inmutables y se pueden actualizar las reglas del grupo de seguridad de red.
Salida
Protocolo | Origen | Puertos de origen | Destination | Puertos de destino | Descripción |
---|---|---|---|---|---|
TCP | Subred de la aplicación contenedora | * | MicrosoftContainerRegistry |
443 |
Esta es la etiqueta de servicio para el registro de contenedor de Microsoft para los contenedores del sistema. |
TCP | Subred de la aplicación contenedora | * | AzureFrontDoor.FirstParty |
443 |
Se trata de una dependencia de la etiqueta de MicrosoftContainerRegistry servicio. |
Cualquiera | Subred de la aplicación contenedora | * | Subred de la aplicación contenedora | * | Permitir la comunicación entre direcciones IP en la subred de la aplicación contenedora. |
TCP | Subred de la aplicación contenedora | * | AzureActiveDirectory |
443 |
Si usa la identidad administrada, esto es necesario. |
TCP | Subred de la aplicación contenedora | * | AzureMonitor |
443 |
Solo es necesario cuando se usa Azure Monitor. Permite llamadas salientes a Azure Monitor. |
TCP y UDP | Subred de la aplicación contenedora | * | 168.63.129.16 |
53 |
Permite que el entorno use Azure DNS para resolver el nombre de host. |
TCP | Subred 1 de la aplicación contenedora | * | Su registro de contenedor | Puerto del registro de contenedor | Esto es necesario para comunicarse con el registro de contenedor. Por ejemplo, al usar ACR, necesita AzureContainerRegistry y AzureActiveDirectory para el destino, y el puerto será el puerto del registro de contenedor a menos que use puntos de conexión privados.2 |
TCP | Subred de la aplicación contenedora | * | Storage.<Region> |
443 |
Solo es necesario cuando se usa Azure Container Registry para hospedar las imágenes. |
1 Esta dirección se pasa como parámetro al crear un entorno. Por ejemplo, 10.0.0.0/21
.
2 Si usa Azure Container Registry (ACR) con grupos de seguridad de red configurados en la red virtual, cree un punto de conexión privado en ACR para permitir que Azure Container Apps extraiga imágenes a través de la red virtual. No es necesario agregar una regla de NSG para ACR cuando se configura con puntos de conexión privados.
Consideraciones
- Si ejecuta servidores HTTP, es posible que tenga que agregar puertos
80
y443
. - No deniegue explícitamente la dirección
168.63.129.16
DNS de Azure en las reglas de NSG salientes o el entorno de Container Apps no podrá funcionar.