Para controlar o acesso a uma instância do Application Load Balancer (ALB), configure um grupo de segurança. Ao contrário das listas de controle de acesso (ACLs), os grupos de segurança do ALB oferecem suporte ao controle de acesso por protocolo e porta, além de fornecerem políticas de controle de acesso para endereços IPv6.
Cenários
Se uma instância ALB não estiver associada a um grupo de segurança, as portas do listener permitirão todas as requisições de entrada por padrão.
-
Quando uma instância ALB está associada a um grupo de segurança, mas nenhuma política de negação está configurada, as portas do listener do ALB permitem todas as requisições de entrada por padrão. Para permitir o acesso apenas de endereços IP específicos, adicione uma política de negação como regra catch-all.
Para negar ou permitir o acesso a uma instância ALB a partir de endereços IP específicos, consulte Use security groups as blacklists and whitelists.
Para implementar o controle de acesso baseado em protocolo ou porta para uma instância ALB, consulte Implement port-level access control with security groups.
Se a sua instância ALB exigir controle de acesso e você quiser controlar o tráfego de entrada, adicione um grupo de segurança a ela e configure as regras de grupo de segurança correspondentes com base nos requisitos de negócio.
O tráfego de saída de um balanceador de carga consiste em respostas às requisições do cliente. Para garantir o funcionamento normal do negócio, o grupo de segurança de uma instância ALB não restringe o tráfego de saída. Não é necessário configurar regras de saída para o grupo de segurança.
-
Após a criação de uma instância ALB, o sistema gera automaticamente um Managed security groups na VPC da instância. Esse grupo de segurança é gerenciado pela instância ALB e você tem apenas permissões de visualização. O grupo de segurança gerenciado pelo ALB inclui as seguintes regras de grupo de segurança:
-
Uma regra com prioridade 1: por padrão, permite o tráfego do endereço IP local, usado para comunicação com os servidores de backend.
Ao adicionar regras de grupo de segurança, não adicione uma política de negação com prioridade 1 para o endereço IP local da instância ALB. Isso entraria em conflito com a política do grupo de segurança gerenciado e interromperia a comunicação entre a instância ALB e os servidores de backend. Encontre o endereço IP local na página de detalhes da instância no console do Application Load Balancer (ALB).
-
Uma regra com prioridade 100: por padrão, permite o tráfego de todos os endereços IP.
As Default access control rules (não visíveis) de um grupo de segurança básico ou corporativo incluem uma regra que nega todo o outro tráfego. No entanto, a regra de permissão padrão do grupo de segurança gerenciado tem precedência.
Para instâncias do ALB Extensible Edition, o grupo de segurança gerenciado inclui duas regras adicionais com prioridade 1 que negam o acesso do cliente a partir dos blocos CIDR
33.0.0.0/8e22.0.0.0/16.
-
Os três cenários a seguir descrevem como um grupo de segurança controla o acesso às portas de uma instância ALB associada. Nestes exemplos, a instância ALB possui um listener HTTP na porta 80 e outro na porta 81.
|
Cenário |
Regra do grupo de segurança |
Resultado esperado |
Link relacionado |
|
A instância ALB não está associada a um grupo de segurança. |
As portas do listener do ALB permitem todas as requisições de entrada por padrão. |
|
Step 5: Do not associate the ALB instance with a security group and verify the result |
|
A instância ALB está associada a um grupo de segurança. |
Negar acesso à porta HTTP 81. Nota
Apenas as regras relevantes do grupo de segurança estão listadas; outras regras padrão foram omitidas. |
|
Step 6: Associate the ALB instance with a security group and verify the result |
|
Modifique o grupo de segurança associado à instância ALB. |
Nota
Apenas as regras relevantes do grupo de segurança estão listadas; outras regras padrão foram omitidas. |
|
Limitações
Gerencie o tráfego de acesso para ALB instance upgrade announcement com grupos de segurança ou listas de controle de acesso (ACLs). Instâncias ALB mais antigas oferecem suporte ao controle de acesso apenas com ACLs. Se você precisar usar grupos de segurança, crie uma nova instância ou entre em contato com o gerente da sua conta para solicitar a atualização de uma instância existente.
|
Categoria |
Tipo de grupo de segurança |
Descrição |
|
Grupos de segurança com suporte a ALB |
|
Para obter mais informações sobre grupos de segurança básicos e corporativos, consulte Basic and advanced security groups. |
|
Grupos de segurança sem suporte a ALB |
grupo de segurança gerenciado |
Para obter mais informações sobre grupos de segurança gerenciados, consulte Managed security groups. |
Pré-requisitos
Você criou uma Virtual Private Cloud (VPC) chamada VPC1. Para obter mais informações, consulte Create and manage a VPC.
-
Você criou duas instâncias do Elastic Compute Service (ECS), ECS01 e ECS02, na VPC1. Essas instâncias atuam como servidores de backend para uma instância do Application Load Balancer (ALB) e você implantou um aplicativo diferente em cada uma.
-
Para criar uma instância ECS, consulte Create an instance by using the custom launch tab.
Para testar o controle de acesso de um grupo de segurança para tráfego IPv6, certifique-se de que o ECS01 e o ECS02 ofereçam suporte a IPv6 communication.
-
O exemplo a seguir demonstra como instalar os aplicativos de teste. Instale os aplicativos no ECS01 e no ECS02 conforme mostrado abaixo:
-
Você registrou um nome de domínio e concluiu o registro ICP necessário. Para obter mais informações, consulte Register an Alibaba Cloud domain name e ICP filing.
Etapas
Etapa 1: Crie um grupo de servidores
Faça login no console do ALB.
Na barra de navegação superior, selecione uma região. Este tópico usa China (Hangzhou) como exemplo.
No painel de navegação à esquerda, escolha .
Na página Server Groups, clique em Create Server Group.
-
Na caixa de diálogo Create Server Group, configure os seguintes parâmetros e clique em Create.
Esta seção descreve apenas os parâmetros principais. Aceite os valores padrão para os demais. Para obter mais informações, consulte Create and manage server groups.
Parâmetro
Descrição
Server Group Type
Selecione Server.
Server Group Name
Insira um nome para o grupo de servidores.
VPC
Selecione VPC1.
Backend Protocol
Selecione HTTP.
Scheduling Algorithm
Selecione Weighted Round-robin.
Na caixa de diálogo The server group is created, clique em Add Backend Server.
Na aba Backend Servers, clique em Add Backend Server.
No painel Add Backend Server, selecione as instâncias ECS01 e ECS02 e clique em Next.
Defina as portas e os pesos para os servidores de backend e clique em OK.
Etapa 2: Crie uma instância ALB e listeners
Faça login no console do ALB.
Na página Instances, clique em Create ALB.
-
Na página de compra, configure os seguintes parâmetros.
Este tutorial descreve apenas os parâmetros relevantes. Deixe todos os outros parâmetros com seus valores padrão. Para obter mais informações sobre os parâmetros, consulte Create and manage ALB instances.
Region: Selecione China (Hangzhou).
Network Type: Selecione Public.
VPC: Selecione a VPC1 que você criou.
IP Version: O valor padrão é IPv4. Selecione Dual-stack para permitir que os clientes acessem a instância usando endereços IPv4 e IPv6.
Clique em Buy Now e siga as instruções na tela para concluir a compra.
Retorne à página Instances, encontre a instância ALB criada e clique no ID dela.
Clique na aba Listener e, em seguida, clique em Quick Create Listener.
-
Na caixa de diálogo Quick Create Listener, configure os seguintes parâmetros para criar um listener HTTP na porta 80 e, em seguida, clique em OK.
Parâmetro
Descrição
Listener Protocol
O protocolo usado pelo listener. Para este tutorial, selecione HTTP.
Listener Port
A porta usada pelo listener. Para este tutorial, insira 80.
Server Group
Selecione o Server que você criou.
Na aba Listener, clique em Quick Create Listener novamente.
-
Na caixa de diálogo Quick Create Listener, configure os seguintes parâmetros para criar um listener HTTP na porta 81 e, em seguida, clique em OK.
Parâmetro
Descrição
Listener Protocol
O protocolo usado pelo listener. Para este tutorial, selecione HTTP.
Listener Port
A porta usada pelo listener. Para este tutorial, insira 81.
Server Group
Selecione o Server que você criou.
Etapa 3: Configure a resolução de nome de domínio
Para ambientes de produção, recomendamos mapear um nome de domínio personalizado para o nome de domínio da instância ALB criando um registro CNAME.
No painel de navegação à esquerda, escolha .
Na página Instances, copie o nome DNS da instância ALB criada.
-
Siga estas etapas para adicionar um registro CNAME.
NotaSe o seu nome de domínio estiver registrado por um provedor diferente da Alibaba Cloud, você precisará adicionar o nome de domínio ao console do Alibaba Cloud DNS antes de configurar a resolução DNS. Para obter mais informações, consulte Manage domain names. Se o seu nome de domínio estiver registrado na Alibaba Cloud, prossiga com as etapas a seguir.
Faça login no console do Alibaba Cloud DNS.
Na página Public Zone, encontre o nome de domínio de destino e clique em Settings na coluna Operations.
Na página Settings, clique em Add Record.
-
No painel Add Record, configure o registro CNAME definindo os seguintes parâmetros e, em seguida, clique em OK.
Parâmetro
Descrição
Record Type
Selecione CNAME na lista suspensa.
Hostname
O prefixo do seu nome de domínio. Este tutorial usa @.
NotaPara usar um domínio raiz, defina o nome do host como
@.Query Source
Selecione Default.
Record Value
Insira o nome DNS da instância ALB que você copiou.
TTL
O tempo de vida (TTL) é a duração em que um registro DNS é armazenado em cache em um servidor DNS. Use o valor padrão.
Etapa 4: Crie um grupo de segurança
Para adicionar uma instância ALB a um grupo de segurança, primeiro crie o grupo de segurança no console do ECS.
Faça login no console do ECS.
No painel de navegação à esquerda, escolha Network & Security > Security Groups.
Na barra de navegação superior, selecione uma região. Este tópico usa China (Hangzhou) como exemplo.
Na página Security Groups, clique em Create Security Group.
-
Na página Create Security Group, configure os parâmetros na seção Basic Information.
Este tópico lista apenas os parâmetros relevantes. Para obter informações sobre outros parâmetros, consulte Create a security group.
Network: Selecione a VPC que você criou.
security group type: Selecione basic security group.
-
Para o novo grupo de segurança, configure os parâmetros da access rule.
Na aba Inbound, clique em Add Security Group Rule duas vezes.
-
Adicione as regras da tabela a seguir e, em seguida, clique em Create Security Group.
Parâmetro
Regra 1: Negar tráfego IPv4 e IPv6 para a porta 81
(Opcional) Regra 2: Permitir tráfego IPv6 para a porta 80
Action
Selecione Deny.
Selecione Allow.
Priority
Mantenha o valor padrão 1.
Protocol type
Selecione custom TCP.
NotaAo configurar uma regra de grupo de segurança para um listener QUIC, selecione custom UDP como o tipo de protocolo.
Port range
Insira o número da porta 81.
Selecione o número da porta HTTP(80).
Source
Selecione
All IPv4 addresses (0.0.0.0/0)eAll IPv6 addresses (::/0).Selecione
All IPv6 addresses (::/0).Description
Insira uma descrição para a regra do grupo de segurança.
Etapa 5: Verifique a conectividade sem um grupo de segurança
Teste a conectividade entre o seu cliente e as instâncias ECS01 e ECS02.
Este exemplo usa um cliente com acesso à internet pública. Para testar o controle de acesso do grupo de segurança para endereços IPv6, certifique-se de que o seu cliente ofereça suporte a public IPv6 communication.
-
Abra uma janela de linha de comando e execute
curl -4 http://<custom_domain_name>:80. A saída mostra que os clientes IPv4 podem acessar a instância ALB via HTTP na porta 80.C:\Users\Administrator>curl -4 http://<custom_domain_name>:80 Hello World ! This is ECS02. -
Execute
curl -4 http://<custom_domain_name>:81. A saída mostra que os clientes IPv4 podem acessar a instância ALB via HTTP na porta 81.C:\Users\Administrator>curl -4 http://<custom_domain_name>:81 Hello World ! This is ECS01. -
(Opcional) Execute
curl -6 http://<custom_domain_name>:80. A saída mostra que os clientes IPv6 podem acessar a instância ALB via HTTP na porta 80.C:\Users\Administrator>curl -6 http://<custom_domain_name>:80 Hello World ! This is ECS02. -
(Opcional) Execute
curl -6 http://<custom_domain_name>:81. A saída mostra que os clientes IPv6 podem acessar a instância ALB via HTTP na porta 81.C:\Users\Administrator>curl -6 http://<custom_domain_name>:81 Hello World ! This is ECS01.
Etapa 6: Adicione a instância ALB a um grupo de segurança e verifique
Adicione a instância ALB a um grupo de segurança e verifique se o grupo de segurança controla o acesso às portas da instância ALB.
Faça login no console do ALB.
Na página Instances, encontre a instância ALB de destino e clique no ID dela. Na página de detalhes da instância, clique na aba Security Groups.
Na aba Security Groups, clique em Create Security Group. Na caixa de diálogo Add ALB to Security Group, selecione o grupo de segurança criado em Step 4: Create a security group e clique em OK.
-
No painel à esquerda, clique no ID do grupo de segurança de destino. Clique na aba Inbound Policies ou Outbound Policies e visualize as regras do grupo de segurança.
Esta seção lista apenas as regras de entrada do grupo de segurança relevantes para este tópico. As regras para a instância ALB são as seguintes:
Política
Prioridade
Protocolo
Destino
Origem
Allow
1
Custom TCP
Destination: 80/80Source: All IPv4 (0.0.0.0/0)Allow
1
Custom TCP
Destination: 80/80Source: All IPv6 (::/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv4 (0.0.0.0/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv6 (::/0) -
Após adicionar a instância ALB ao grupo de segurança, salve a configuração e teste o acesso à instância.
-
Na linha de comando do cliente, execute
curl -4 http://<custom_domain_name>:80. A saída a seguir indica que os clientes IPv4 podem acessar a instância ALB via HTTP na porta 80.C:\Users\Administrator>curl -4 http://<custom_domain_name>:80 Hello World ! This is ECS01. -
(Opcional) Execute
curl -6 http://<custom_domain_name>:80. A saída a seguir indica que os clientes IPv6 podem acessar a instância ALB via HTTP na porta 80.C:\Users\Administrator>curl -6 http://<custom_domain_name>:80 Hello World ! This is ECS02. -
Execute
curl -4 http://<custom_domain_name>:81. A conexão falha, o que confirma que a regra do grupo de segurança que nega acesso à porta 81 está em vigor para clientes IPv4.C:\Users\Administrator>curl -4 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42076 ms: Could not connect to server -
(Opcional) Execute
curl -6 http://<custom_domain_name>:81. A conexão falha, o que confirma que a regra do grupo de segurança que nega acesso à porta 81 está em vigor para clientes IPv6.C:\Users\Administrator>curl -6 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42121 ms: Could not connect to server
-
Etapa 7: Modifique e verifique o grupo de segurança
Modifique as regras do grupo de segurança e verifique se elas controlam o acesso às portas da instância ALB.
Retorne à página Instances do ALB, encontre a instância ALB de destino e clique no ID da instância. Na aba Instance Details, clique na aba Security Groups.
Na seção Basic Information, clique no ID do grupo de segurança. Alternativamente, no canto superior direito da aba Security Groups, clique em ECS Console para abrir a página Security Group Rules e modifique as regras.
-
Na página Security Group Rules, encontre a regra que permite o acesso à porta TCP 80. Na coluna Actions, clique em Modify Security Group Rule. Defina a Action como Deny e, em seguida, salve.
A tabela a seguir lista as regras atualizadas do grupo de segurança relevantes para este tópico.
Política
Prioridade
Protocolo
Intervalo de portas
Origem
Deny
1
Custom TCP
Destination: 80/80Source: All IPv4 (0.0.0.0/0)Deny
1
Custom TCP
Destination: 80/80Source: All IPv6 (::/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv4 (0.0.0.0/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv6 (::/0) -
Após modificar as regras do grupo de segurança para a instância ALB, teste o acesso.
-
Na janela de linha de comando do seu cliente, execute o comando
curl -4 http://<custom_domain_name>:80. A saída a seguir indica que os clientes IPv4 não podem acessar a porta 80 via HTTP, confirmando que a regra do grupo de segurança para a porta 80 está funcionando.C:\Users\Administrator>curl -4 http://<custom_domain_name>:80 curl: (28) Failed to connect to <custom_domain_name> port 80 after 42020 ms: Could not connect to server -
(Opcional) Execute o comando
curl -6 http://<custom_domain_name>:80. A saída a seguir indica que os clientes IPv6 não podem acessar a porta 80 via HTTP, confirmando que a regra do grupo de segurança para a porta 80 está funcionando.C:\Users\Administrator>curl -6 http://<custom_domain_name>:80 curl: (28) Failed to connect to <custom_domain_name> port 80 after 42077 ms: Could not connect to server -
Execute o comando
curl -4 http://<custom_domain_name>:81. A saída a seguir indica que os clientes IPv4 não podem acessar a porta 81 via HTTP, confirmando que a regra do grupo de segurança para a porta 81 está funcionando.C:\Users\Administrator>curl -4 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42095 ms: Could not connect to server -
(Opcional) Execute o comando
curl -6 http://<custom_domain_name>:81. A saída a seguir indica que os clientes IPv6 não podem acessar a porta 81 via HTTP, confirmando que a regra do grupo de segurança para a porta 81 está funcionando.C:\Users\Administrator>curl -6 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42095 ms: Could not connect to server
-
Referências
Console
Para associar um grupo de segurança a uma instância ALB ou desassociá-lo, consulte Associate an ALB instance with a security group.
Para criar uma lista de permissões ou uma lista de bloqueios para uma instância ALB usando um grupo de segurança, consulte Configure a security group for an ALB instance to implement an allowlist or blocklist.
Para obter mais informações sobre grupos de segurança básicos e corporativos, consulte Basic security groups and enterprise security groups.
API
LoadBalancerJoinSecurityGroup: Associa um grupo de segurança a uma instância do Application Load Balancer.
LoadBalancerLeaveSecurityGroup: Desassocia um grupo de segurança de uma instância do Application Load Balancer.