Para aumentar a segurança na cloud, controle o acesso às suas instâncias NLB com base em protocolo, porta ou endereço IP usando grupos de segurança. Diferentemente do Classic Load Balancer (CLB), que utiliza listas de controle de acesso (ACLs), o NLB usa grupos de segurança para oferecer um controle de acesso mais granular e abrangente em toda a instância, baseado em protocolo e porta. Este tópico descreve como configurar grupos de segurança para controlar o acesso a listeners individuais em uma instância NLB.
Cenários
Se uma instância NLB não estiver associada a um grupo de segurança, todo o tráfego para as portas de listener do NLB será permitido por padrão.
Se uma instância NLB estiver associada a um grupo de segurança, mas nenhuma regra de negação estiver configurada, todo o tráfego para as portas de listener do NLB será permitido por padrão. Para permitir que apenas endereços IP específicos acessem a instância NLB, adicione uma regra de negação como fallback.
Para controlar o tráfego de entrada da sua instância NLB, associe grupos de segurança à instância e configure as regras conforme os requisitos do seu negócio.
O tráfego de saída do balanceador de carga consiste em pacotes de resposta às solicitações dos clientes. Para garantir o funcionamento normal do service, o grupo de segurança do NLB 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 NLB, o sistema cria automaticamente um managed security group na VPC onde a instância reside. Esse grupo de segurança gerenciado é controlado pela instância NLB e você tem acesso somente leitura a ele. O grupo de segurança gerenciado inclui os dois tipos de regras a seguir:
-
Regra de prioridade 1: permite o tráfego do Local IP da instância por padrão para comunicação com servidores de back-end e verificações de integridade.
Ao adicionar regras de grupo de segurança, evite criar regras de negação com prioridade 1 para o Local IP do NLB. Tais regras podem entrar em conflito com as políticas do grupo de segurança gerenciado e afetar a comunicação entre o NLB e seus serviços de back-end. Faça login no console do NLB e visualize o Local IP na página de detalhes da instância.
-
Regra de prioridade 100: permite o tráfego de todos os endereços IP por padrão. Isso significa que, se uma instância NLB estiver associada a um grupo de segurança sem regras de negação configuradas, todo o tráfego para as portas de listener do NLB será permitido.
As implicit rules de um grupo de segurança básico ou avançado contêm uma regra que nega todo o outro tráfego. Nesse caso, a regra de permissão padrão no grupo de segurança gerenciado do NLB tem precedência.
-
Este tópico apresenta três cenários que demonstram como controlar o acesso a uma instância NLB usando um grupo de segurança. Os exemplos utilizam uma instância NLB configurada com um listener TCP na porta 80 e outro na porta 81.
Cenário | Regra do grupo de segurança | Resultado esperado | Procedimento relacionado |
1: A instância NLB não está associada a um grupo de segurança. | Por padrão, as portas de listener do NLB permitem todo o tráfego. | Este exemplo usa uma instância NLB com listeners TCP nas portas 80 e 81.
| |
2: A instância NLB está associada a um grupo de segurança. | Negar acesso à porta TCP 81. Nota Apenas as regras de grupo de segurança relevantes para este tópico estão listadas. As regras padrão não são exibidas. |
| |
3: O grupo de segurança associado à instância NLB é modificado. |
Nota Apenas as regras de grupo de segurança relevantes para este tópico estão listadas. As regras padrão não são exibidas. |
|
Limitações
|
Item |
Detalhes |
|
Tipos de grupo de segurança suportados |
Grupo de segurança básico, grupo de segurança avançado |
|
Tipo de grupo de segurança não suportado |
Grupo de segurança gerenciado |
|
Mesma VPC obrigatória |
O grupo de segurança e a instância NLB devem pertencer à mesma VPC |
|
Número máximo de grupos de segurança |
Até 4 grupos de segurança por instância NLB |
|
Tipos mistos não permitidos |
Todos os grupos de segurança associados a uma instância NLB devem ser do mesmo tipo. Para mudar de básico para avançado, remova primeiro a instância NLB do grupo de segurança básico. Para mudar de avançado para básico, remova primeiro a instância NLB do grupo de segurança avançado |
|
Cálculo de cota |
Slots disponíveis de grupo de segurança = Cota de grupo de segurança de ENI para ECS − 1 (reservado para o grupo de segurança gerenciado) |
|
Cota de regras de grupo de segurança |
Slots de regras disponíveis = Cota de regras de grupo de segurança de ENI para ECS − número de regras no grupo de segurança gerenciado |
|
Instâncias legadas |
Instâncias NLB criadas antes de 30 de setembro de 2022 (durante a prévia pública) não podem ser adicionadas a grupos de segurança. Substitua essas instâncias ou adquira novas para usar este recurso |
Para obter detalhes sobre as diferenças entre grupos de segurança básicos e avançados, consulte Basic and advanced security groups.
Pré-requisitos
Crie uma VPC chamada VPC1. Para mais informações, consulte Create and manage a VPC.
-
Crie duas instâncias ECS, ECS01 e ECS02, na VPC1 para atuar como servidores de back-end da instância NLB. Implante serviços de aplicação em ambas as instâncias ECS.
Para mais informações sobre como criar uma instância ECS, consulte Create an instance by using the wizard.
-
Este tópico utiliza as seguintes implantações de aplicação de exemplo no ECS01 e ECS02:
Registre um nome de domínio, conclua o ICP filing e configure um registro CNAME para a instância NLB.
Etapa 1: Criar um grupo de servidores
Faça login no console do NLB.
Na barra de navegação superior, selecione a região onde o grupo de servidores está implantado. Neste exemplo, China (Hangzhou) está selecionada.
No painel de navegação à esquerda, escolha NLB > Server Groups.
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 relevantes para este tópico. Mantenha os valores padrão para os demais parâmetros. Para mais informações, consulte Create a server group.
Parâmetro
Descrição
Server Group Type
Selecione um tipo de grupo de servidores. Neste exemplo, Server está selecionado.
Server Group Name
Insira um nome para o grupo de servidores. Neste exemplo, RS01 é usado.
VPC
Selecione uma VPC na lista suspensa. Neste exemplo, VPC1 está selecionada.
Backend Server Protocol
Selecione um protocolo para os servidores de back-end. Neste exemplo, TCP está selecionado.
Scheduling Algorithm
Escolha um algoritmo de agendamento. Neste exemplo, Weighted Round-Robin está selecionado.
Na caixa de diálogo The server group is created, clique em Add Backend Server.
No painel Add Backend Server, selecione as instâncias ECS01 e ECS02 criadas e clique em Next.
Defina as portas e pesos para os servidores adicionados e clique em OK.
Etapa 2: Criar uma instância NLB e configurar listeners
Faça login no console do NLB.
Na barra de navegação superior, selecione a região onde a instância NLB está implantada. Neste exemplo, China (Hangzhou) está selecionada.
Na página Instances, clique em Create NLB.
-
Na página de compra Create NLB(Pay-As-You-Go), configure os parâmetros a seguir e clique em Create.
Esta seção descreve apenas os parâmetros relevantes para este tópico. Para mais informações sobre outros parâmetros, consulte Create an NLB instance.
Escolha uma região. Neste exemplo, China (Hangzhou) está selecionada.
Network Type: Neste exemplo, Private está selecionado.
VPC: Neste exemplo, VPC1 está selecionada.
Retorne à página Instances, localize a instância NLB criada e clique no ID da instância NLB.
-
Clique na aba Listener. Na aba Listener, clique em Quick Create Listener. Na caixa de diálogo Quick Create Listener, configure os parâmetros a seguir para criar um listener TCP na porta 80 e clique em OK.
Configuração do listener
Descrição
Listener Protocol
Selecione um protocolo de listener. Neste exemplo, TCP está selecionado.
Listener Port
Insira uma porta de listener. Neste exemplo, a porta 80 é usada.
Server Group
Selecione um Server e um grupo de servidores em Server.
Neste exemplo, o grupo de servidores RS01 criado na Etapa 1: Criar um grupo de servidores está selecionado.
-
Na aba Listener, clique em Quick Create Listener. Na caixa de diálogo Quick Create Listener, configure os parâmetros a seguir para criar um listener TCP na porta 81 e clique em OK.
Configuração do listener
Descrição
Listener Protocol
Selecione um protocolo de listener. Neste exemplo, TCP está selecionado.
Listener Port
Insira uma porta de listener. Neste exemplo, a porta 81 é usada.
Server Group
Selecione o Server e o grupo de servidores de back-end em Server.
Neste exemplo, o grupo de servidores RS01 criado na Etapa 1: Criar um grupo de servidores está selecionado.
-
Verifique a acessibilidade da instância NLB antes de associá-la a um grupo de segurança.
Faça login em um cliente Linux com acesso à internet. Se estiver usando um sistema CentOS e o Telnet não estiver instalado, execute o comando
yum install -y telnetpara instalá-lo.-
Execute o comando
telnet <domain_name> 80para testar se o cliente consegue acessar a porta TCP 80 da instância NLB.A resposta a seguir indica que a conexão foi bem-sucedida.
Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.Insira o nome de domínio e o número da porta, como
http://<domain_name>:80, no navegador. Uma página semelhante à mostrada na figura a seguir indica que a instância NLB consegue encaminhar solicitações aos servidores de back-end.Hello World ! this is ECS01. -
Execute o comando
telnet <domain_name> 81para testar se o cliente consegue acessar a porta TCP 81 da instância NLB.Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.Insira o nome de domínio e o número da porta, como
http://<domain_name>:81, no navegador. Uma página semelhante à mostrada na figura a seguir indica que a instância NLB consegue encaminhar solicitações aos servidores de back-end.Hello World ! this is ECS01. Os resultados do teste mostram que, quando a instância NLB não está associada a um grupo de segurança, os clientes conseguem acessar tanto o listener TCP na porta 80 quanto o listener TCP na porta 81.
Etapa 3: Criar um grupo de segurança
Antes de adicionar uma instância NLB a um grupo de segurança, crie um grupo de segurança no console do ECS.
Faça login no console do ECS.
No painel de navegação à esquerda, em Network & Security, clique em Security Groups.
Na barra de navegação superior, selecione a região onde deseja criar o grupo de segurança. Neste exemplo, China (Hangzhou) está selecionada.
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.
Esta seção descreve apenas os parâmetros relevantes para este tópico. Para mais informações sobre outros parâmetros, consulte Create a security group.
Network: Neste exemplo, a VPC chamada VPC1 está selecionada.
Security Group Type: Neste exemplo, Basic Security Group está selecionado.
-
Na página Create Security Group, configure os parâmetros na seção Rules.
Clique em Add Rule. Na página Create Security Group Rule, adicione uma regra de entrada para negar acesso à porta 81 com base nos parâmetros a seguir. Em seguida, adicione uma segunda regra de entrada para permitir acesso à porta 80 com a mesma prioridade. Clique em Submit.
Parâmetro
Descrição
Traffic Direction
Selecione Inbound.
Action
Selecione Deny.
Priority
Mantenha o valor padrão 1.
Protocol
Selecione Custom TCP.
Source
Selecione
0.0.0.0/0.Port Range
Insira o número da porta 81.
Description
Insira uma descrição para a regra do grupo de segurança.
Etapa 4: Associar a instância NLB e verificar
Associe a instância NLB ao grupo de segurança criado na Etapa 3: Criar um grupo de segurança e verifique se as regras do grupo de segurança entraram em vigor para a instância NLB.
Faça login no console do NLB.
Na barra de navegação superior, selecione a região onde a instância NLB está implantada. Neste exemplo, China (Hangzhou) está selecionada.
Na página NLB Instances, localize a instância NLB criada na Etapa 2: Criar uma instância NLB e configurar listeners e clique no ID da instância. Na aba Instance Details, clique na aba Security Groups.
Na aba Security Groups, clique em Create Security Group. Na caixa de diálogo Add NLB Instance to Security Group, selecione o grupo de segurança criado na Etapa 3: Criar um grupo de segurança e clique em OK.
-
Na lista à esquerda, clique no ID do grupo de segurança desejado. Em seguida, clique na aba Inbound ou Outbound para visualizar as regras do grupo de segurança.
Apenas as regras de entrada relevantes do grupo de segurança são mostradas aqui. As regras do grupo de segurança associado à instância NLB são as seguintes:
Action
Priority
Protocol type
Port range
Source
Allow
1
Custom TCP
Destination: 80/80Source: 0.0.0.0/0Deny
1
Custom TCP
Destination: 81/81Source: 0.0.0.0/0 -
Verifique os resultados de acesso após associar a instância NLB ao grupo de segurança.
Faça login em um cliente Linux com acesso à internet.
-
Execute o comando
telnet <domain_name> 80para testar se o cliente consegue acessar o listener TCP na porta 80 da instância NLB.A resposta a seguir indica que a conexão foi bem-sucedida.
Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.Insira o nome de domínio e o número da porta, como
http://<domain_name>:80, no navegador. Uma página semelhante à mostrada na figura a seguir indica que a instância NLB consegue encaminhar solicitações aos servidores de back-end.Hello World ! this is ECS01. -
Execute o comando
telnet <domain_name> 81para testar se o cliente consegue acessar o listener TCP na porta 81 da instância NLB.Se receber uma mensagem de resposta como a mostrada abaixo, significa que o cliente não consegue acessar a porta 81 do listener TCP da instância NLB. Isso também indica que o grupo de segurança ao qual a instância NLB foi adicionada está aplicando controle de acesso na instância NLB.
Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed out Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed outInsira o nome de domínio e o número da porta no navegador, por exemplo,
http://domain_name:81. Se a página web estiver inacessível, isso indica que os clientes não conseguem acessar a porta 81 do listener TCP da instância NLB e que o controle de acesso do grupo de segurança ao qual a instância NLB foi adicionada entrou em vigor na instância NLB.
Etapa 5: Modificar o grupo de segurança e verificar
Modifique as regras do grupo de segurança e verifique se as regras atualizadas para a instância NLB estão efetivas.
Retorne à página NLB Instances, localize a instância NLB criada na Etapa 2: Criar uma instância NLB e configurar listeners e clique no ID da instância. Na aba Instance Details, clique na aba Security Groups.
Na aba Security Groups, clique em ECS Console.
-
Na página Security Group Details, localize uma regra que permite acesso à porta TCP 80. Na coluna Actions, clique em Edit e altere a Action para Deny.
Apenas as regras relevantes do grupo de segurança são mostradas aqui. As regras modificadas do grupo de segurança são as seguintes:
Action
Priority
Protocol type
Port range
Source
Deny
1
Custom TCP
Destination: 80/80Source: 0.0.0.0/0Deny
1
Custom TCP
Destination: 81/81Source: 0.0.0.0/0ImportanteApós modificar ou adicionar regras de grupo de segurança, o sistema pode adicionar automaticamente regras de alta prioridade, como regras Allow para todo o tráfego All TCP proveniente de 192.168.0.0/16 com Priority 1. Essas regras geradas pelo sistema têm prioridade maior que as regras definidas pelo usuário e podem substituir suas regras Deny configuradas manualmente.
Antes de verificar os resultados do controle de acesso, recomendamos verificar as regras do grupo de segurança e excluir ou ajustar quaisquer regras geradas pelo sistema que possam entrar em conflito com suas políticas de controle de acesso pretendidas.
-
Verifique os resultados de acesso após modificar as regras do grupo de segurança para a instância NLB.
Faça login em um cliente Linux com acesso à internet.
-
Execute o comando
telnet <domain_name> 80para testar se o cliente consegue acessar o listener TCP na porta 80 da instância NLB.Uma mensagem de resposta como a mostrada abaixo indica que o cliente não consegue acessar a porta 80 do listener TCP da instância NLB. Isso confirma que o controle de acesso da regra modificada do grupo de segurança para a instância NLB entrou em vigor.
Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed out Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed outInsira o nome de domínio e o número da porta em um navegador, por exemplo,
http://domain_name:80. Se a página web estiver inacessível, isso indica que o cliente não consegue acessar a porta 80 do listener TCP da instância NLB e que o controle de acesso do grupo de segurança ao qual a instância NLB foi adicionada entrou em vigor na instância NLB. -
Execute o comando
telnet <domain_name> 81para testar se o cliente consegue acessar o listener TCP na porta 81 da instância NLB.Se receber a mensagem de resposta mostrada abaixo, significa que o cliente não consegue acessar a porta 81 do listener TCP da instância NLB e que a regra modificada do grupo de segurança para controle de acesso na instância NLB entrou em vigor.
Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed out Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed outInsira o nome de domínio e o número da porta no navegador, por exemplo,
http://domain_name:81. Se a página web estiver inacessível, indica que o cliente não consegue acessar a porta 81 do listener TCP da instância NLB e que o controle de acesso do grupo de segurança para a instância NLB entrou em vigor na instância NLB.
Tópicos relacionados
Para informações sobre como associar ou desassociar uma instância NLB de um grupo de segurança, consulte Associate an NLB instance with a security group.
Para permitir ou negar acesso de endereços IP específicos a uma instância NLB, consulte Use security groups as allowlists or blocklists.
Para mais informações sobre grupos de segurança, consulte Security groups.
LoadBalancerJoinSecurityGroup: Associa um grupo de segurança a uma instância NLB.
LoadBalancerLeaveSecurityGroup: Desassocia um grupo de segurança de uma instância NLB.