Configuração de ACL no Load Balancer
Introdução
As Listas de Controle de Acesso (ACLs) permitem restringir ou permitir o tráfego para o Load Balancer com base em regras específicas. Essa funcionalidade melhora a segurança e o controle sobre as conexões, garantindo que apenas fontes autorizadas possam acessar os serviços balanceados.
Vale destacar que o LB atua como a primeira camada de segurança, controlando o acesso por meio de suas ACLs, enquanto os Security Groups (SG) das VMs representam uma segunda camada, reforçando a proteção no nível das instâncias. Em outras palavras, mesmo que uma conexão seja autorizada pelo LB, a VM pode, por meio do seu SG, bloquear o acesso se necessário.
Arquitetura em Duas Camadas
ACL do Load Balancer:
- Controla o acesso à porta de entrada do LB (o listener), permitindo ou negando o tráfego com base nos intervalos de IP configurados.
- Na prática, o LB permanece aberto por padrão, sendo necessário inserir apenas os intervalos de IP que se deseja bloquear ou, alternativamente, permitir somente determinados intervalos e negar o restante.
Security Groups das VMs:
- Aplicam regras de controle no nível da instância, atuando como uma camada adicional de segurança.
- Mesmo que o tráfego passe pela ACL do LB, as VMs podem recusar a conexão se o SG estiver configurado para bloquear determinados acessos.
Etapas para Configuração de ACL
1. Criar uma ACL
A criação de uma ACL envolve definir regras de controle para permitir ou negar conexões.
- Endpoint:
POST /v0beta1/network-load-balancers/{load_balancer_id}/acls
- Parâmetros principais:
name
: Nome da ACLethertype
: IPv4 ou IPv6protocol
: Protocolo permitido: TCPremote_ip_prefix
: Faixa de IPs permitidosaction
: ALLOW ou DENY
2. Remoção de ACLs
Remoção: Caso uma ACL não seja mais necessária, ela pode ser removida para liberar as restrições aplicadas ao tráfego.
- Endpoint:
DELETE /v0beta1/network-load-balancers/{load_balancer_id}/acls/{acl_id}
Exemplos de Configuração
-
Bloqueio de uma Subnet Específica:
- Regra:
Deny 198.162.0.0/24
- Regra padrão:
default Allow
- Regra:
-
Permitir Apenas um Intervalo Específico e Bloquear o Restante:
- Regra:
Allow 192.168.0.0/16
- Regra:
Deny 0.0.0.0/0
- Regra padrão:
default Allow
(Neste cenário, a regra padrão não terá efeito, pois o tráfego já será bloqueado pelo Deny aplicado a todos os IPs.)
- Regra:
Boas Práticas
- Minimize regras permissivas: Permita apenas o tráfego estritamente necessário.
- Use ACLs para proteção contra ataques: Bloqueie IPs maliciosos e reduza exposição a ameaças.
- Monitore ACLs regularmente: Revise e ajuste as regras conforme necessário para manter a segurança.