Las ACL de red permiten controlar el tráfico entrante y saliente a nivel de vSwitch mediante la definición de reglas de permiso o denegación con prioridad.
Funcionamiento
Alcance
Una ACL de red se aplica únicamente a las interfaces de red elásticas (ENI) dentro del vSwitch asociado.
-
Este mecanismo controla el tráfico de los recursos en la nube que utilizan ENI, como las instancias de ECS, ECI y NLB.
Las instancias de ApsaraDB RDS y CLB no usan ENI, por lo que las ACL de red no les aplican. El acceso a RDS se gestiona mediante whitelists , y el acceso a CLB mediante access control policies .
Una ACL de red no controla el tráfico de un secondary ENI asociado con una EIP en modo visible para ENI.
-
El tráfico de PrivateLink pasa por la ENI del endpoint de interfaz y está sujeto a las reglas de la ACL de red.
Mecanismo de evaluación de reglas
-
Las reglas se evalúan en orden ascendente de prioridad, comenzando desde 1. Cada regla compara el tráfico según la versión de IP, el protocolo, la dirección de origen o destino y el rango de puertos. La primera regla que coincide aplica su directiva de permiso o denegación, y la evaluación se detiene.
Tanto para las reglas entrantes como para las salientes, el rango de puertos siempre coincide con el puerto de destino del tráfico.
Las reglas entrantes se aplican solo a direcciones de origen, mientras que las reglas salientes se aplican solo a direcciones de destino. Una sola regla no puede especificar simultáneamente una dirección de origen y una de destino.
El tráfico denegado se descarta silenciosamente. El origen no recibe respuesta, lo que provoca un tiempo de espera agotado o un fallo de conexión.
-
Las reglas de la ACL de red son sin estado. Una regla entrante de permiso no autoriza automáticamente el tráfico de retorno; debe crear una regla saliente para Allow las respuestas hacia el puerto efímero del cliente. Los clientes seleccionan aleatoriamente un puerto efímero para recibir respuestas.
Para ser compatible con todos los tipos de clientes, establezca el rango de puertos efímeros en 1024-65535.
En este ejemplo, dos reglas tienen bloques CIDR superpuestos. Un cliente en 192.168.0.1 que accede al vSwitch mediante HTTPS coincide con la Prioridad 1 y se deniega. Un cliente en 192.168.1.1 coincide con la Prioridad 2 y se permite. El tráfico de retorno llega al puerto efímero del cliente a través de la regla saliente de Prioridad 1.
Para abrir muchos puertos pero denegar algunos específicos, asigne a las reglas de denegación un número de prioridad menor (mayor prioridad) que a las reglas de permiso.
Diferencias entre ACL de red y security groups
|
Elemento |
ACL de red |
Security group |
|
Alcance |
Controla el tráfico entrante y saliente de un vSwitch. |
Se pueden asociar varios security groups a una instancia. Sus reglas combinadas controlan el tráfico entrante y saliente. |
|
Estado |
Sin estado: El tráfico de retorno debe permitirse explícitamente mediante una regla saliente. |
Con estado: El tráfico de retorno se permite automáticamente, independientemente de las reglas salientes. |
|
Evaluación de reglas |
Se evalúan por prioridad; se aplica la primera coincidencia. |
Se evalúan por prioridad. Para reglas con la misma prioridad, las reglas de denegación prevalecen sobre las de permiso. |
|
Asociación |
Cada vSwitch puede asociarse con una sola ACL de red. |
Una instancia de ECS puede asociarse con múltiples security groups. |
|
Configuración de direcciones en reglas |
Las reglas entrantes aplican solo a direcciones de origen y las salientes solo a direcciones de destino. Una sola regla no puede especificar ambas direcciones. |
Las reglas entrantes especifican el origen del tráfico y las salientes especifican el destino. |
Crear y eliminar ACL de red
Cree una ACL de red y asóciela con un vSwitch para controlar el tráfico.
Al crear una ACL de red para una VPC solo IPv4, el sistema agrega las siguientes reglas entrantes y salientes predeterminadas:
-
Regla de servicio en la nube: Permite el acceso al DNS de Alibaba Cloud y al servicio de metadatos de ECS. Esta regla tiene la máxima prioridad y no se puede modificar ni eliminar.
1. Direcciones de servidor DNS predeterminadas: 100.100.2.136 y 100.100.2.138 (resolución de nombres de dominio internos).
2. Dirección de MetaServer: 100.100.100.200 (servicio de metadatos de instancia ECS).
Regla personalizada: Permite todo el tráfico IPv4 para preservar la conectividad entre vSwitches en la misma VPC. Agregue reglas personalizadas para controlar el tráfico del vSwitch.
Regla del sistema: Deniega todo el tráfico IPv4 que no coincida con otras reglas. Esta regla tiene la prioridad más baja y no se puede modificar ni eliminar.
Si la VPC tiene habilitado IPv6, el sistema también agrega una regla personalizada que permite todo el tráfico IPv6 y una regla del sistema que deniega todo el tráfico IPv6 en ambas direcciones.
Una ACL de red solo puede asociarse con vSwitches dentro de su VPC. Cada vSwitch puede asociarse con una única ACL de red.
Console
Crear una ACL de red
Vaya a la página de ACL de red en la consola VPC. Seleccione una región en la parte superior de la página y luego haga clic en Create Network ACL.
En VPC, seleccione la VPC que contiene los vSwitches que desea asociar con la ACL de red.
Asociar vSwitches
Haga clic en el ID de la ACL de red o en Manage en la columna Actions. En la pestaña Associated Resources, haga clic en Associate vSwitch. Seleccione uno o más vSwitches y haga clic en OK. Para desasociar un vSwitch, haga clic en Unbind en la columna Actions del vSwitch correspondiente en esta pestaña.
También puede asociar, reemplazar o desvincular una ACL de red en la sección Network ACL de la página de detalles del vSwitch objetivo.
Eliminar una ACL de red
Asegúrese de que la ACL de red no esté asociada con ningún vSwitch. En la columna Actions de la ACL de red objetivo, haga clic en Delete.
API
Llame a CreateNetworkAcl para crear una ACL de red.
Llame a AssociateNetworkAcl para asociar una ACL de red con un vSwitch.
Llame a UnassociateNetworkAcl para desasociar una ACL de red de un vSwitch.
Llame a DeleteNetworkAcl para eliminar una ACL de red.
Terraform
Terraform asocia una ACL de red con un solo vSwitch a la vez.
Recursos: alicloud_network_acl
# Specify the region of the network ACL.
provider "alicloud" {
region = "cn-hangzhou"
}
# Specify the VPC ID.
variable "vpc_id" {
default = "vpc-bp1k******" # Replace with your VPC ID.
}
# Specify the vSwitch ID.
variable "vswitch_id" {
default = "vsw-bp1y******" # Replace with your vSwitch ID.
}
# Create a network ACL and associate it with a vSwitch.
resource "alicloud_network_acl" "example_network_acl" {
vpc_id = var.vpc_id # The VPC to which the network ACL belongs.
network_acl_name = "example_network_acl_name"
resources {
resource_id = var.vswitch_id # Specify the vSwitch to associate with the network ACL.
resource_type = "VSwitch"
}
}
Configurar reglas de ACL de red
Después de crear una ACL de red, las reglas predeterminadas permiten o deniegan todo el tráfico.
-
Configure reglas personalizadas para controlar el tráfico del vSwitch. Cuando el tráfico coincide con el Protocol, la IP Version, la Source IP Address o Destination IP Address y el rango de puertos de una regla, el sistema aplica la Policy.
Para
TCP(6)oUDP(17), especifique un rango de puertos (0-65535) con el formatostart_port/end_port. No use-1/-1. Para otros protocolos, el rango de puertos es de forma predeterminada-1/-1(todos los puertos).Las reglas IPv6 requieren que IPv6 esté habilitado en la VPC.
Los cambios en las reglas se aplican automáticamente a todos los vSwitches asociados.
-
Agrupe los bloques CIDR de uso frecuente en una prefix list y refiriérala en las reglas de la ACL de red. Los cambios en una lista de prefijos actualizan automáticamente todas las reglas que la referencian.
La configuración de entradas máximas de una lista de prefijos (no su conteo real de entradas) cuenta contra su cuota de reglas de ACL de red. Para mantenerse dentro de la cuota, reduzca el máximo, fusione rangos de IP adyacentes o elimine entradas no utilizadas.
Una lista de prefijos es específica de la región y no se puede compartir entre regiones. Una sola lista de prefijos no puede mezclar bloques CIDR IPv4 e IPv6.
1. Si configura un DHCP options set con un servidor DNS personalizado, agregue reglas entrantes y salientes para permitir el tráfico hacia ese servidor. De lo contrario, la resolución de nombres de dominio podría fallar.
2. Al utilizar un load balancer, agregue reglas para permitir el reenvío de puertos de listener y el tráfico de comprobación de salud hacia los servidores backend.
Console
En la pestaña Inbound Rules o Outbound Rules de la ACL de red objetivo, siga estos pasos para configurar reglas personalizadas.
Las reglas de la ACL de red son sin estado. Una regla entrante de permiso requiere una regla saliente correspondiente para el tráfico de retorno.
Agregar reglas
-
Configuración manual: En la pestaña Inbound Rules o Outbound Rules de la ACL de red objetivo, haga clic en Manage Inbound Rule o Manage Outbound Rule.
Haga clic en Add IPv4 Rule o Add IPv6 Rule para configurar las reglas una por una.
Para aplicar la misma regla a múltiples bloques CIDR, seleccione Quick Add y establezca la Priority para especificar dónde se inserta la regla.
Después de gestionar los bloques CIDR frecuentes en una lista de prefijos, haga clic en Add IPv4 Rule o Add IPv6 Rule, establezca la IP Version en VPC Prefix List y luego configure la Source IP Address/Destination IP Address como la lista de prefijos.
-
Importación masiva: Utilice la plantilla proporcionada para Import Rule.
Todos los campos de la plantilla son obligatorios. Las reglas incompletas no se pueden importar.
No se admiten listas de prefijos.
Las reglas importadas se añaden después de las existentes sin sobrescribirlas.
Reordenar reglas
Haga clic en Manage Inbound Rule o Manage Outbound Rule y luego arrastre las reglas hacia arriba o abajo para ajustar su orden de evaluación.
Eliminar reglas
En la columna Actions de la regla de ACL de red objetivo, haga clic en Delete.
API
Llame a UpdateNetworkAclEntries para actualizar las reglas de la ACL de red. Esta API realiza un reemplazo completo; cualquier regla existente no incluida en su solicitud se eliminará. Para conservar reglas, inclúyalas en la llamada a la API.
Llame a CopyNetworkAclEntries para copiar todas las reglas de una ACL de red a otra. Ambas ACL deben pertenecer a VPC con configuraciones de versión de IP coincidentes. No puede agregar reglas IPv6 a una ACL de red en una VPC solo IPv4. Copiar reglas a una VPC con IPv6 habilitado no agrega la regla personalizada predeterminada de permiso total IPv6, lo cual puede interrumpir la comunicación IPv6.
Terraform
Este ejemplo agrega reglas de denegación para tráfico entrante y saliente. Ajústelo para que coincida con su directiva de control de acceso.
Recurso: alicloud_network_acl
# Specify the region for the network ACL.
provider "alicloud" {
region = "cn-hangzhou"
}
# Specify the VPC ID.
variable "vpc_id" {
default = "vpc-bp1k******" # Replace with the actual ID of your VPC.
}
# Specify the vSwitch ID.
variable "vswitch_id" {
default = "vsw-bp1y******" # Replace with the actual ID of your vSwitch.
}
# Create a network ACL and associate it with a vSwitch.
resource "alicloud_network_acl" "example_network_acl" {
vpc_id = var.vpc_id # Specify the VPC for the network ACL.
network_acl_name = "example_network_acl_name"
resources {
resource_id = var.vswitch_id # Specify the vSwitch to associate with the network ACL.
resource_type = "VSwitch"
}
ingress_acl_entries { # Specify inbound rules.
network_acl_entry_name = "example-ingress"
protocol = "tcp" # Protocol
source_cidr_ip = "10.0.0.0/24" # Source CIDR block
port = "20/80" # Port range
policy = "drop" # Policy
}
egress_acl_entries { # Specify outbound rules.
network_acl_entry_name = "example-egress"
protocol = "tcp"
destination_cidr_ip = "10.0.0.0/24" # Destination CIDR block
port = "20/80" # Port range
policy = "drop" # Policy
}
}
Ejemplos de reglas de ACL de red
Restringir la comunicación entre diferentes vSwitches
De forma predeterminada, los vSwitches dentro de la misma VPC se comunican libremente. Utilice una ACL de red para denegar el acceso desde direcciones IP específicas.
En este ejemplo, las reglas entrantes y salientes de la ACL de red del vSwitch 1 impiden que sus instancias se comuniquen con ECS06.
Permitir acceso desde direcciones IP específicas
Cuando un centro de datos local se conecta a una VPC mediante Express Connect, todos los recursos del centro de datos pueden acceder a los servicios en la nube. Utilice una ACL de red para permitir solo direcciones IP específicas.
En este ejemplo, la ACL de red permite el acceso a las instancias del vSwitch únicamente desde los servidores locales 1 y 2.
Más información
Facturación
Las ACL de red son gratuitas.
Regiones compatibles
Área | Regiones |
Asia Pacífico - China | China (Hangzhou), China (Shanghai), China (Nanjing - Local Region, Closing Down), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Chengdu), China (Zhongwei), China (Hong Kong), China (Wuhan - Local Region) y China (Fuzhou - Local Region, Closing Down) |
Asia Pacífico - Otras | Japan (Tokyo), South Korea (Seoul), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Philippines (Manila), Thailand (Bangkok) y Malaysia (Johor) |
Europa y América | Germany (Frankfurt), UK (London), France (Paris), US (Silicon Valley), US (Virginia), Mexico y Brazil (São Paulo) |
Medio Oriente | UAE (Dubai) y Saudi Arabia (Riyadh - Partner Region) |
Cuotas
Nombre de cuota | Descripción | Límite predeterminado | Ajustable |
vpc_quota_nacl_ingress_entry | Número máximo de reglas entrantes que puede crear en una ACL de red. Si IPv6 está habilitado para la VPC asociada con la ACL de red, puede crear hasta 20 reglas entrantes para IPv4 y 20 para IPv6. | 20 | Sí. Para solicitar un aumento de cuota, vaya a la página de Gestión de Cuotas o al Centro de Cuotas. |
vpc_quota_nacl_egress_entry | Número máximo de reglas salientes que puede crear en una ACL de red. Si IPv6 está habilitado para la VPC asociada con la ACL de red, puede crear hasta 20 reglas salientes para IPv4 y 20 para IPv6. | 20 | |
nacl_quota_vpc_create_count | Número máximo de ACL de red que puede crear en una VPC. | 20 |