As Network ACLs permitem controlar o tráfego de entrada e saída no nível do vSwitch mediante a definição de regras de permissão ou negação priorizadas.
Funcionamento
Escopo
Uma Network ACL aplica-se apenas às interfaces de rede elásticas (ENIs) dentro do vSwitch associado.
-
A Network ACL controla o tráfego de recursos em nuvem que utilizam ENIs, como instâncias ECS, ECI e NLB.
Instâncias ApsaraDB RDS e CLB não utilizam ENIs; portanto, as Network ACLs não se aplicam a elas. O acesso ao RDS é controlado por listas de permissões , e o acesso ao CLB por políticas de controle de acesso .
A Network ACL não controla o tráfego de uma ENI secundária associada a um EIP no modo visível para ENI.
-
O tráfego do PrivateLink passa pela ENI do endpoint de interface e está sujeito às regras da Network ACL.
Mecanismo de avaliação de regras
-
A avaliação das regras ocorre em ordem crescente de prioridade, começando pelo valor 1. Cada regra corresponde ao tráfego com base na versão do IP, protocolo, endereço de origem ou destino e intervalo de portas. A primeira regra correspondente aplica sua política de permissão ou negação e interrompe a avaliação.
Tanto para regras de entrada quanto de saída, o intervalo de portas sempre corresponde à porta de destino do tráfego.
Regras de entrada aplicam-se apenas a endereços de origem, enquanto regras de saída aplicam-se apenas a endereços de destino. Uma única regra não pode especificar simultaneamente um endereço de origem e um de destino.
O sistema descarta silenciosamente o tráfego negado. A origem não recebe resposta, resultando em timeout ou falha de conexão.
-
As regras da Network ACL são stateless. Uma regra de entrada que permite tráfego não autoriza automaticamente o tráfego de retorno — crie uma regra de saída para Allow respostas de volta à porta efêmera do cliente. Os clientes selecionam aleatoriamente uma porta efêmera para receber respostas.
Para oferecer suporte a todos os tipos de clientes, defina o intervalo de portas efêmeras como 1024-65535.
Neste exemplo, duas regras possuem blocos CIDR sobrepostos. Um cliente em 192.168.0.1 acessando o vSwitch via HTTPS corresponde à Prioridade 1 e tem o acesso negado. Um cliente em 192.168.1.1 corresponde à Prioridade 2 e tem o acesso permitido. O tráfego de retorno alcança a porta efêmera do cliente através da regra de saída de Prioridade 1.
Para liberar muitas portas e negar apenas algumas específicas, atribua às regras de negação um número de prioridade menor (prioridade mais alta) do que às regras de permissão.
Diferenças entre Network ACLs e grupos de segurança
|
Item |
Network ACL |
Grupo de segurança |
|
Escopo |
Controla o tráfego de entrada e saída de um vSwitch. |
Vários grupos de segurança podem ser associados a uma instância. Suas regras combinadas controlam o tráfego de entrada e saída. |
|
Estado |
Stateless: O tráfego de retorno deve ser explicitamente permitido por uma regra de saída. |
Stateful: O tráfego de retorno é permitido automaticamente, independentemente das regras de saída. |
|
Avaliação de regras |
As regras são avaliadas por prioridade; a primeira correspondência é aplicada. |
As regras são avaliadas por prioridade. Para regras com a mesma prioridade, as regras de negação têm precedência sobre as de permissão. |
|
Associação |
Cada vSwitch pode ser associado a apenas uma Network ACL. |
Uma instância ECS pode ser associada a vários grupos de segurança. |
|
Configuração de endereço da regra |
Regras de entrada aplicam-se apenas a endereços de origem, e regras de saída aplicam-se apenas a endereços de destino. Uma única regra não pode especificar simultaneamente origem e destino. |
Regras de entrada especificam a origem do tráfego e regras de saída especificam o destino do tráfego. |
Criar e excluir Network ACLs
Crie uma Network ACL e associe-a a um vSwitch para controlar o tráfego.
Ao criar uma Network ACL para uma VPC somente IPv4, o sistema adiciona as seguintes regras padrão de entrada e saída:
-
Regra de serviço em nuvem: Permite acesso ao DNS da Alibaba Cloud e ao serviço de metadados do ECS. Esta regra possui a maior prioridade e não pode ser modificada ou excluída.
1. Endereços padrão de servidor DNS: 100.100.2.136 e 100.100.2.138 (resolução de nomes de domínio internos).
2. Endereço do MetaServer: 100.100.100.200 (serviço de metadados de instância ECS).
Regra personalizada: Permite todo o tráfego IPv4 para preservar a conectividade entre vSwitches na mesma VPC. Adicione regras personalizadas para controlar o tráfego do vSwitch.
Regra de sistema: Nega todo o tráfego IPv4 não correspondido por outras regras. Esta regra possui a menor prioridade e não pode ser modificada ou excluída.
Se a VPC tiver o IPv6 ativado, o sistema também adiciona uma regra personalizada permitindo todo o tráfego IPv6 e uma regra de sistema negando todo o tráfego IPv6 para ambas as direções.
Uma Network ACL pode ser associada apenas a vSwitches dentro de sua VPC. Cada vSwitch pode ser associado a apenas uma Network ACL.
Console
Criar uma Network ACL
Acesse a página VPC console - network ACL. Selecione uma região no topo da página e clique em Create Network ACL.
Em VPC, selecione a VPC que contém os vSwitches a serem associados à Network ACL.
Associar vSwitches
Clique no ID da Network ACL ou clique em Manage na coluna Actions. Na aba Associated Resources, clique em Associate vSwitch. Selecione um ou mais vSwitches e clique em OK. Para desassociar um vSwitch, clique em Unbind na coluna Actions do vSwitch desejado nesta aba.
Também é possível associar, substituir ou desvincular uma Network ACL na seção Network ACL da página de detalhes do vSwitch alvo.
Excluir uma Network ACL
Certifique-se de que a Network ACL não esteja associada a nenhum vSwitch. Na coluna Actions da Network ACL desejada, clique em Delete.
API
Chame CreateNetworkAcl para criar uma Network ACL.
Chame AssociateNetworkAcl para associar uma Network ACL a um vSwitch.
Chame UnassociateNetworkAcl para desassociar uma Network ACL de um vSwitch.
Chame DeleteNetworkAcl para excluir uma Network ACL.
Terraform
O Terraform associa uma Network ACL a apenas um vSwitch por 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 regras de Network ACL
Após criar uma Network ACL, as regras padrão permitem ou negam todo o tráfego.
-
Configure regras personalizadas para controlar o tráfego do vSwitch. Quando o tráfego corresponde ao Protocol, IP Version, Source IP Address ou Destination IP Address e intervalo de portas de uma regra, o sistema aplica a Policy.
Para
TCP(6)ouUDP(17), especifique um intervalo de portas (0-65535) no formatostart_port/end_port. Não utilize-1/-1. Para outros protocolos, o intervalo de portas assume o valor padrão-1/-1(todas as portas).Regras IPv6 exigem que o IPv6 esteja ativado na VPC.
Alterações nas regras são aplicadas automaticamente a todos os vSwitches associados.
-
Agrupe blocos CIDR frequentemente utilizados em uma lista de prefixos e referencie-a nas regras da Network ACL. Alterações em uma lista de prefixos atualizam automaticamente todas as regras que a referenciam.
A configuração de entradas máximas de uma lista de prefixos (e não a contagem real de entradas) consome sua cota de regras da Network ACL. Para permanecer dentro da cota, reduza o máximo, mescle intervalos de IP adjacentes ou remova entradas não utilizadas.
Uma lista de prefixos é específica da região e não pode ser compartilhada entre regiões. Uma única lista de prefixos não pode misturar blocos CIDR IPv4 e IPv6.
1. Se você configurar um conjunto de opções DHCP com um servidor DNS personalizado, adicione regras de entrada e saída para permitir o tráfego para esse servidor. Caso contrário, a resolução de nomes de domínio pode falhar.
2. Ao usar um balanceador de carga, adicione regras para permitir o encaminhamento da porta do listener e o tráfego de verificação de integridade para os servidores backend.
Console
Na aba Inbound Rules ou Outbound Rules da Network ACL desejada, siga estas etapas para configurar regras personalizadas.
As regras da Network ACL são stateless. Uma regra de entrada que permite tráfego exige uma regra de saída correspondente para o tráfego de retorno.
Adicionar regras
-
Configuração manual: Na aba Inbound Rules ou Outbound Rules da Network ACL desejada, clique em Manage Inbound Rule ou Manage Outbound Rule.
Clique em Add IPv4 Rule ou Add IPv6 Rule para configurar regras individualmente.
Para aplicar a mesma regra a vários blocos CIDR, selecione Quick Add e defina a Priority para especificar onde a regra será inserida.
Após gerenciar blocos CIDR frequentes em uma lista de prefixos, clique em Add IPv4 Rule ou Add IPv6 Rule, defina IP Version como VPC Prefix List e, em seguida, defina Source IP Address/Destination IP Address como a lista de prefixos.
-
Importação em lote: Use o modelo fornecido para Import Rule.
Todos os campos do modelo são obrigatórios. Regras incompletas não podem ser importadas.
Listas de prefixos não são suportadas.
As regras importadas são anexadas após as regras existentes sem sobrescrevê-las.
Reordenar regras
Clique em Manage Inbound Rule ou Manage Outbound Rule e arraste as regras para cima ou para baixo para ajustar a ordem de avaliação.
Excluir regras
Na coluna Actions da regra da Network ACL desejada, clique em Delete.
API
Chame UpdateNetworkAclEntries para atualizar as regras da Network ACL. Esta API realiza uma substituição completa — quaisquer regras existentes não incluídas na sua solicitação serão excluídas. Para manter regras, inclua-as na chamada da API.
Chame CopyNetworkAclEntries para copiar todas as regras de uma Network ACL para outra. Ambas as ACLs devem pertencer a VPCs com configurações de versão de IP compatíveis. Não é possível adicionar regras IPv6 a uma Network ACL em uma VPC somente IPv4. Copiar regras para uma VPC com IPv6 ativado não adiciona a regra personalizada padrão que permite todo o tráfego IPv6, o que pode interromper a comunicação IPv6.
Terraform
Este exemplo adiciona regras de negação para tráfego de entrada e saída. Ajuste conforme sua política de controle de acesso.
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
}
}
Exemplos de regras de Network ACL
Restringir comunicação entre diferentes vSwitches
Por padrão, vSwitches dentro da mesma VPC comunicam-se livremente. Utilize uma Network ACL para negar acesso de endereços IP específicos.
Neste exemplo, as regras de entrada e saída da Network ACL do vSwitch 1 impedem que suas instâncias se comuniquem com a ECS06.
Permitir acesso de endereços IP específicos
Quando um data center on-premises se conecta a uma VPC via Express Connect, todos os recursos do data center podem acessar os serviços em nuvem. Utilize uma Network ACL para permitir apenas endereços IP específicos.
Neste exemplo, a Network ACL permite acesso às instâncias do vSwitch apenas dos servidores on-premises 1 e 2.
Mais informações
Faturamento
As Network ACLs são gratuitas.
Regiões suportadas
Nuvem pública
Área | Regiões |
Ásia-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) e China (Fuzhou - Local Region, Closing Down) |
Ásia-Pacífico - Outros | Japan (Tokyo), South Korea (Seoul), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Philippines (Manila), Thailand (Bangkok) e Malaysia (Johor) |
Europa e Américas | Germany (Frankfurt), UK (London), France (Paris), US (Silicon Valley), US (Virginia) e Mexico |
Oriente Médio | UAE (Dubai) e Saudi Arabia (Riyadh) (partner region) |
Finance cloud
Gov cloud
Cotas
Nome da cota | Descrição | Limite padrão | Ajustável |
vpc_quota_nacl_ingress_entry | Número máximo de regras de entrada que podem ser criadas em uma Network ACL. Se o IPv6 estiver ativado para a VPC associada à Network ACL, é possível criar até 20 regras de entrada para IPv4 e 20 para IPv6. | 20 | Sim. Para solicitar aumento de cota, acesse a Página de Gerenciamento de Cotas ou o Quota Center. |
vpc_quota_nacl_egress_entry | Número máximo de regras de saída que podem ser criadas em uma Network ACL. Se o IPv6 estiver ativado para a VPC associada à Network ACL, é possível criar até 20 regras de saída para IPv4 e 20 para IPv6. | 20 | |
nacl_quota_vpc_create_count | Número máximo de Network ACLs que podem ser criadas em uma VPC. | 20 |