Generador de Reglas Azure NSG
Genera reglas de Azure NSG desde CSV
NSG Rules
Format
name, priority, direction, access, port, protocol, source
Direction: Inbound/Outbound, Access: Allow/Deny
Generated Output
Enter rules to generate Azure NSG config
El Generador de reglas de Azure NSG crea reglas de Network Security Group a partir de entrada CSV estructurada. Ingresa reglas como filas con columnas de dirección, prioridad, nombre, origen, destino, protocolo, rango de puertos y acción, y obtén comandos de Azure CLI, comandos de PowerShell o JSON de plantilla ARM para despliegues de seguridad de red automatizados y repetibles en Azure.
Entendiendo los Azure Network Security Groups
Si despliegas cargas de trabajo en Azure, los Network Security Groups (NSGs) son la herramienta principal para filtrar el tráfico de red hacia y desde tus máquinas virtuales, subnets e interfaces de red. Un NSG contiene una lista de reglas de seguridad que permiten o deniegan tráfico basándose en origen, destino, puerto y protocolo. A diferencia de los AWS security groups, los Azure NSGs soportan reglas de denegación explícita y usan un modelo de evaluación basado en prioridad, dándote un control más granular sobre el flujo de tráfico.
El sistema de prioridades es lo que hace a los Azure NSGs tanto poderosos como potencialmente confusos. Cada regla tiene un número de prioridad entre 100 y 4096, y las reglas se evalúan desde el número más bajo (prioridad más alta) al más alto (prioridad más baja). La primera regla que coincide determina la acción. Esto significa que una regla Allow de alta prioridad puede anular una regla Deny de prioridad más baja, y viceversa. Si estableces prioridad 100 para Allow HTTPS y prioridad 200 para Deny todo el tráfico del mismo origen, el tráfico HTTPS pasa porque la prioridad 100 se evalúa primero. Conseguir el ordenamiento correcto de prioridades es crítico para tu postura de seguridad.
Azure también proporciona service tags -- grupos con nombre de rangos de IP que Azure administra automáticamente. En lugar de rastrear manualmente los rangos de IP de Microsoft para servicios como Azure Storage, Azure SQL o las sondas de salud del Azure Load Balancer, referencias etiquetas como Storage, Sql o AzureLoadBalancer. Cuando Microsoft actualiza esos rangos, tus reglas de NSG se aplican automáticamente a las nuevas direcciones. Esta es una ventaja operacional significativa sobre las listas CIDR mantenidas manualmente, especialmente para los servicios PaaS de Azure cuyos rangos de IP cambian regularmente.
Cómo generar reglas de Azure NSG desde CSV
- Prepara tus datos de reglas en formato CSV con columnas: dirección, prioridad, nombre, origen, destino, protocolo, rango de puertos y acción.
- Pega o sube el CSV al generador.
- Selecciona el formato de salida: Azure CLI, PowerShell o plantilla ARM.
- Ingresa el nombre del NSG y el grupo de recursos.
- Copia los comandos o la plantilla generada para el despliegue.
Formato de entrada CSV y salida generada
Entrada CSV
direction,priority,name,source,destination,protocol,port,action
Inbound,100,AllowHTTPS,*,*,Tcp,443,Allow
Inbound,110,AllowSSH,10.0.0.0/8,*,Tcp,22,Allow
Inbound,200,DenyScannersIn,198.51.100.0/24,*,*,*,Deny
Outbound,100,AllowSQL,*,10.1.0.0/16,Tcp,1433,Allow
Inbound,120,AllowHTTP,Internet,*,Tcp,80,Allow
Salida Azure CLI
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNSG \
--name AllowHTTPS \
--priority 100 \
--direction Inbound \
--access Allow \
--protocol Tcp \
--destination-port-ranges 443 \
--source-address-prefixes '*' \
--destination-address-prefixes '*'
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNSG \
--name AllowSSH \
--priority 110 \
--direction Inbound \
--access Allow \
--protocol Tcp \
--destination-port-ranges 22 \
--source-address-prefixes '10.0.0.0/8' \
--destination-address-prefixes '*'
Salida PowerShell
$rule1 = New-AzNetworkSecurityRuleConfig `
-Name "AllowHTTPS" `
-Priority 100 `
-Direction Inbound `
-Access Allow `
-Protocol Tcp `
-DestinationPortRange 443 `
-SourceAddressPrefix '*' `
-DestinationAddressPrefix '*' `
-SourcePortRange '*'
$rule2 = New-AzNetworkSecurityRuleConfig `
-Name "AllowSSH" `
-Priority 110 `
-Direction Inbound `
-Access Allow `
-Protocol Tcp `
-DestinationPortRange 22 `
-SourceAddressPrefix '10.0.0.0/8' `
-DestinationAddressPrefix '*' `
-SourcePortRange '*'
Tipos de origen y destino en Azure NSG
| Tipo | Ejemplo | Descripción |
|---|---|---|
| Bloque CIDR | 10.0.0.0/8 | Notación estándar de rango de IP |
| Service tag | Internet | Etiqueta administrada por Azure para IPs enrutables por internet |
| Service tag | VirtualNetwork | Todas las direcciones en la VNet y VNets emparejadas |
| Service tag | AzureLoadBalancer | IPs de origen de sondas de salud de Azure |
| Service tag | Storage.EastUS | IPs de servicios Azure específicas por región |
| Application security group | asg-webservers | Agrupación basada en cargas de trabajo |
| Comodín | * | Cualquier origen o destino |
Cómo funciona la prioridad en Azure NSG
Las reglas de Azure NSG se evalúan por número de prioridad del más bajo (prioridad más alta) al más alto (prioridad más baja). La primera regla que coincide determina la acción.
| Prioridad | Nombre | Acción | Efecto |
|---|---|---|---|
| 100 | AllowHTTPS | Allow | Se evalúa primero -- el tráfico HTTPS se permite |
| 200 | DenyBadActors | Deny | Se evalúa segundo -- bloquea IPs específicas |
| 4096 | DenyAllInbound | Deny | Regla por defecto -- bloquea todo lo demás |
Reglas clave de prioridad:
- Rango válido:
100a4096 - Número más bajo = prioridad más alta (se evalúa primero)
- Los valores de prioridad deben ser únicos dentro de una dirección (Inbound o Outbound)
- Azure reserva las prioridades
65000-65500para reglas por defecto
Cuándo usar el generador de reglas Azure NSG
- Despliegue de VNet -- Genera reglas de NSG para nuevas redes virtuales desde una hoja de cálculo de requisitos de seguridad.
- Aplicaciones multi-nivel -- Crea reglas para los niveles web, de aplicación y de base de datos con controles de acceso entre niveles adecuados.
- Migración entre nubes -- Convierte reglas de AWS security group o reglas de firewall on-premises a formato Azure NSG.
- Infraestructura como Código -- Genera plantillas ARM o scripts de Azure CLI para despliegues de NSG versionados y repetibles.
- Estandarización de cumplimiento -- Aplica líneas base de NSG consistentes entre suscripciones y grupos de recursos.
Diferencias entre Azure NSGs y AWS Security Groups
| Característica | Azure NSG | AWS Security Group |
|---|---|---|
| Denegación explícita | Sí (acción Deny) | No (solo denegación implícita) |
| Ordenamiento por prioridad | Sí (100-4096) | No (todas las reglas se evalúan) |
| Reglas por defecto | Reglas por defecto integradas de permiso/denegación | Denegación implícita total |
| Service tags | Internet, VirtualNetwork, etc. | Listas de prefijos (limitadas) |
| Alcance | Nivel de subnet o NIC | Nivel de instancia |
| Stateful | Sí | Sí |
Consejos prácticos para la configuración de Azure NSG
El mayor error con las prioridades de Azure NSG es dejar espacios demasiado pequeños. Si asignas prioridades 100, 101, 102 para tus primeras tres reglas, no tienes espacio para insertar una regla entre ellas después sin renumerar. Usa incrementos de 10 o 20 (100, 110, 120, ...) para que siempre puedas intercalar nuevas reglas entre las existentes. Este generador valida que tus prioridades no entren en conflicto, pero no puede imponer un buen espaciado -- esa es una decisión de diseño que necesitas tomar desde el principio.
Al trabajar con arquitecturas multi-nivel en Azure, aplica NSGs a nivel de subnet en lugar de a nivel de NIC siempre que sea posible. Los NSGs a nivel de subnet son más fáciles de administrar porque se aplican uniformemente a todos los recursos en la subnet, y no tienes que recordar adjuntar el NSG a cada nueva VM que despliegues. Los NSGs a nivel de NIC son útiles para excepciones -- cuando una VM en una subnet necesita reglas diferentes del resto -- pero agregan complejidad y son una fuente común de sesiones de depuración de "¿por qué esta VM no puede conectarse?".
Los service tags son una de las mejores características de Azure para la seguridad de red, pero frecuentemente se subutilizan. En lugar de mantener una lista de rangos de IP de Azure Storage para tus reglas de NSG, usa el service tag Storage. En lugar de buscar los rangos de IP de Azure SQL, usa el tag Sql. Para restricciones específicas por región, agrega el nombre de la región: Storage.EastUS. Azure mantiene estos rangos automáticamente, así que tus reglas nunca se desactualizan. La única advertencia es que los service tags no están disponibles en Network ACLs (solo en NSGs), así que planifica tu arquitectura de seguridad de red en consecuencia.
Preguntas frecuentes
¿Qué pasa si dos reglas tienen acciones conflictivas en diferentes prioridades?
La regla con el número de prioridad más bajo (mayor precedencia) gana. Por ejemplo, si la prioridad 100 permite HTTPS y la prioridad 200 deniega todo el tráfico del mismo origen, el tráfico HTTPS se permite porque la prioridad 100 se evalúa primero.
¿Puedo usar múltiples rangos de puertos en una sola regla de NSG?
Sí. Azure soporta múltiples rangos de puertos en una sola regla usando valores separados por espacios: --destination-port-ranges 80 443 8080-8090. Esto reduce el número total de reglas necesarias.
¿Qué son los service tags y cuándo debo usarlos?
Los service tags son grupos de rangos de IP administrados por Azure para los servicios de Azure. En lugar de rastrear manualmente los rangos de IP de Microsoft, usa tags como Storage, Sql o AzureActiveDirectory. Azure actualiza automáticamente los rangos de IP subyacentes. Esto es especialmente útil para permitir tráfico a servicios PaaS de Azure.
¿Cómo valido que los números de prioridad no entren en conflicto? El generador verifica prioridades duplicadas dentro de la misma dirección (Inbound o Outbound) y señala conflictos antes de producir la salida. Las prioridades deben ser únicas por dirección dentro de un NSG.
¿Cuál es el número máximo de reglas en un Azure NSG? El límite por defecto es 1000 reglas por NSG (incluyendo reglas por defecto). Esto es sustancialmente más alto que los AWS security groups (60 por dirección). Puedes solicitar un aumento de límite a través del soporte de Azure si es necesario, pero alcanzar 1000 reglas generalmente indica que el diseño de tu NSG debería ser reestructurado.
¿Cómo migro de AWS security groups a Azure NSGs? Las principales diferencias son que los Azure NSGs requieren prioridades explícitas (AWS evalúa todas las reglas por igual) y soportan reglas de denegación explícita. Mapea cada regla de permiso de AWS a una regla Allow de Azure con prioridad ascendente, agrega cualquier regla de denegación que necesites (que AWS no puede expresar) y reemplaza las listas de prefijos de AWS con service tags de Azure donde sea aplicable.
Herramientas relacionadas
- AWS Security Group Rule Generator - Genera reglas de AWS Security Group desde CSV
- iptables Rule Generator - Genera reglas de iptables desde CSV
- nftables Rule Generator - Genera reglas de nftables desde CSV
- Rule Conflict Finder - Encuentra reglas de firewall duplicadas, sombreadas o superpuestas
- Allowlist Builder - Construye una allowlist CIDR mínima a partir de una lista de IPs