Para controlar o acesso a uma instância de Application Load Balancer (ALB), configure um grupo de segurança. Diferentemente das listas de controle de acesso (ACLs), os grupos de segurança do ALB permitem o controle de acesso por protocolo e porta, além de oferecer 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 solicitaçõ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 foi configurada, as portas do listener do ALB permitem todas as solicitaçõ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 geral.
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 controle de acesso baseado em protocolo ou porta para uma instância ALB, consulte Implement port-level access control with security groups.
Caso sua instância ALB exija controle de acesso e você deseje gerencie o tráfego de entrada, adicione um grupo de segurança à instância ALB e configure as regras correspondentes conforme as necessidades do seu negócio.
O tráfego de saída de um balanceador de carga consiste nas respostas às solicitações dos clientes. Para garantir a operação normal dos serviços, o grupo de segurança de uma instância ALB não restringe o tráfego de saída. Portanto, 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 própria instância ALB, e você possui apenas permissões de visualização. O grupo de segurança gerenciado pelo ALB inclui as seguintes regras:
-
Uma regra com prioridade 1: Por padrão, permite o tráfego do endereço IP local, utilizado para comunicação com os servidores de backend.
Ao adicionar regras de grupo de segurança, não inclua uma política de negação com prioridade 1 para o endereço IP local da instância ALB. Isso causaria conflito com a política do grupo de segurança gerenciado e interromperia a comunicação entre a instância ALB e seus servidores de backend. Você pode encontrar 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 empresarial 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 da ALB Extensible Edition, o grupo de segurança gerenciado inclui duas regras adicionais com prioridade 1 que negam o acesso de clientes 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 solicitações de entrada por padrão. |
|
Etapa 5: Verificar a conectividade sem um grupo de segurança |
|
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. |
|
Etapa 6: Adicionar a instância ALB a um grupo de segurança e verificar |
|
Modificar 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
É possível gerencie o tráfego de acesso para ALB instance upgrade usando grupos de segurança ou listas de controle de acesso (ACLs). Instâncias ALB mais antigas suportam controle de acesso apenas via ACLs. Se você precisar usar grupos de segurança, crie uma nova instância ou entre em contato com seu gerente de conta para solicitar a atualização de uma instância existente.
|
Categoria |
Tipo de grupo de segurança |
Descrição |
|
Grupos de segurança suportados pelo ALB |
|
Para mais informações sobre grupos de segurança básicos e empresariais, consulte Basic and advanced security groups. |
|
Grupos de segurança não suportados pelo ALB |
grupo de segurança gerenciado |
Para 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 mais informações, consulte Create and manage a VPC.
-
Você criou duas instâncias Elastic Compute Service (ECS), ECS01 e ECS02, na VPC1. Essas instâncias funcionam como servidores de backend para uma instância de 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 as instâncias ECS01 e ECS02 suportem IPv6 communication.
-
O exemplo a seguir demonstra como implantar os aplicativos de teste nas instâncias ECS01 e ECS02:
-
Você registrou um nome de domínio e concluiu o registro ICP obrigatório. Para mais informações, consulte Register an Alibaba Cloud domain name e ICP filing.
Procedimento
Etapa 1: Criar 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 parâmetros a seguir e clique em Create.
Esta seção descreve apenas os parâmetros principais. Mantenha os valores padrão para os demais. Para 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: Criar 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. Mantenha todos os outros parâmetros com seus valores padrão. Para 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, localize a instância ALB criada e clique no respectivo ID.
Clique na aba Listener e, em seguida, clique em Quick Create Listener.
-
Na caixa de diálogo Quick Create Listener, configure os parâmetros a seguir para criar um listener HTTP na porta 80 e clique em OK.
Parâmetro
Descrição
Listener Protocol
Protocolo usado pelo listener. Para este tutorial, selecione HTTP.
Listener Port
Porta usada pelo listener. Para este tutorial, insira 80.
Server Group
Selecione o grupo de Server criado anteriormente.
Na aba Listener, clique novamente em Quick Create Listener.
-
Na caixa de diálogo Quick Create Listener, configure os parâmetros a seguir para criar um listener HTTP na porta 81 e clique em OK.
Parâmetro
Descrição
Listener Protocol
Protocolo usado pelo listener. Para este tutorial, selecione HTTP.
Listener Port
Porta usada pelo listener. Para este tutorial, insira 81.
Server Group
Selecione o grupo de Server criado anteriormente.
Etapa 3: Configurar 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 for registrado por um provedor diferente da Alibaba Cloud, será necessário adicioná-lo ao console do Alibaba Cloud DNS antes de configurar a resolução DNS. Para mais informações, consulte Manage domain names. Se o seu nome de domínio for registrado na Alibaba Cloud, prossiga com as etapas a seguir.
Faça login no console do Alibaba Cloud DNS.
Na página Public Zone, localize o nome de domínio desejado 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 parâmetros a seguir e 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 utiliza @.
NotaPara usar um domínio raiz, defina o hostname 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 durante a qual um registro DNS fica armazenado em cache em um servidor DNS. Use o valor padrão.
Etapa 4: Criar um grupo de segurança
Para adicionar uma instância ALB a um grupo de segurança, é necessário primeiro criar 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 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.
-
Configure os parâmetros da access rule para o novo grupo de segurança.
Na aba Inbound, clique em Add Security Group Rule duas vezes.
-
Adicione as regras da tabela a seguir e 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 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: Verificar a conectividade sem um grupo de segurança
Teste a conectividade entre seu cliente e as instâncias ECS01 e ECS02.
Este exemplo utiliza 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 seu cliente suporte public IPv6 communication.
-
Abra uma janela de linha de comando e execute
curl -4 http://<custom_domain_name>:80. A saída mostra que clientes IPv4 conseguem 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 clientes IPv4 conseguem 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 clientes IPv6 conseguem 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 clientes IPv6 conseguem 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: Adicionar a instância ALB a um grupo de segurança e verificar
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, localize a instância ALB desejada e clique no respectivo ID. 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 na Etapa 4: Criar um grupo de segurança e clique em OK.
-
No painel esquerdo, clique no ID do grupo de segurança desejado. Clique na aba Inbound Policies ou Outbound Policies para visualizar 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, 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 clientes IPv4 conseguem 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 clientes IPv6 conseguem 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á ativa 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á ativa 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: Modificar e verificar 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, localize a instância ALB desejada 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 modificar as regras.
-
Na página Security Group Rules, localize a regra que permite acesso à porta TCP 80. Na coluna Actions, clique em Modify Security Group Rule. Defina a Action como Deny e clique em Save.
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 clientes IPv4 não conseguem 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 clientes IPv6 não conseguem 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 clientes IPv4 não conseguem 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 clientes IPv6 não conseguem 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 ou desassociar um grupo de segurança de uma instância ALB, 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 mais informações sobre grupos de segurança básicos e empresariais, consulte Basic security groups and enterprise security groups.
API
LoadBalancerJoinSecurityGroup: Associa um grupo de segurança a uma instância de Application Load Balancer.
LoadBalancerLeaveSecurityGroup: Desassocia um grupo de segurança de uma instância de Application Load Balancer.