Segurança de container — Rede

Victor BatistaX
4 min readJul 5, 2023

Segurança de rede é um tópico amplo que abrange vários subtópicos. Estes incluem criptografia em trânsito, segmentação e isolamento de rede, firewall, roteamento de tráfego e observabilidade.

Criptografia em trânsito

É importante, pois, impede que usuários não autorizados interceptem e leiam dados quando esses são transmitidos através de uma rede. Com os gerenciadores de containers da AWS, sendo eles Amazon ECS e Amazon EKS, a critptografia de rede pode ser implementada das seguintes formas.

  • Com uma malha de serviço (TLS)
    Usando o AWS App Mesh, voce pode configurar conexões TLS entre os proxies Envoy implantados com endpoints de malha. Outro serviço popular para tal ação é o ISTIO.
  • Usar instâncias Nitro
    Por padrão, o tráfego é criptografado automaticamente entre os seguintes tipos de instância Nitro: C5n, G4, I3en, M5dn, M5n, P3dn, R5dn e R5n. O tráfego não é criptografado quando é roteado por um gateway de trânsito, balanceador de carga ou intermediário similar.
  • Usando a SNI (Server Name Indication) com um Application Load Balancer:
    O Application Load Balancer (ALB) e o Network Load Balancer (NLB) suportam o Server Name Indication (SNI). Usando o SNI, você pode colocar vários aplicativos seguros atrás de um único ouvinte. Para isso, cada um tem seu próprio certificado TLS. Para isso voce pode usar o AWS Certificate Manager (ACM).
  • Criptografia de ponta a ponta com certificados TLS:
    Isso envolve a implantação de um certificado TLS com a tarefa. Pode ser um certificado auto-assinado ou um certificado de uma autoridade de certificação confiável. Você pode obter o certificado fazendo referência a um segredo para o certificado. Caso contrário, você pode optar por executar um contêiner que emite uma Solicitação de Assinatura de Certificado (CSR) para o ACM e, em seguida, monta o segredo resultante em um volume compartilhado.

Ahhh, podemos e devemos fazer boas configurações por meio dos SGs, lembre-se da matriz de responsabilidade ;)

Em Amazon EKS, é importante proteger as comunicações pod para pod

Security Groups para Pods

  • Integre security groups de EC2 com pods de Kubernetes
  • Reutilizar o conhecimento operacional e a ferramenta em torno de grupos de segurança existentes

Políticas de rede (Network Policy)

  • Implementar segmentação de rede e isolamento de “tenant”
  • Abordagem nativa de Kubernetes para controle de tráfego

… Mas me diz uma coisa, tu sabe
O que é uma politica de redes Kubernetes ?

São um recurso no Kubernetes responsável por controlar o tráfego de e para os pods executados em um cluster.

Então, NetworkPolicy especifica como os pods se comunicam entre si e com outros endpoints.
As políticas de rede definem regras de saída e entrada para proteger o tráfego de rede.
As políticas de rede são implementadas pelo plug-in CNI

  • O plug-in CNI da AWS VPC não tem um motor de política
  • Os clusters EKS precisam de um mecanismo de políticas, como o Calico, para dar suporte às políticas de rede

As políticas de rede do Kubernetes identificam três conjuntos de entidades
• Namespaces
• Pods
• Blocos IP (intervalos CIDR)

Segue aqui um exemplo de policy

Use Tufin para visualizar/visualizar políticas de rede.

“Behaviors” de política de rede

Se nenhuma diretiva de rede se aplicar a um pod, todo o tráfego de/para esse pod será permitido (padrão)

DefaultDenydepoisqueumapolíticaéaplicada

  • Seumaoumaisdiretivasderedeseaplicaremaumpodcontendoregrasde entrada, somente o tráfego de entrada especificamente permitido por essas políticas será permitido.
  • Seumaoumaisdiretivasderedeseaplicaremaumpodcontendoregrasde saída, somente o tráfego de saída especificamente permitido por essas políticas será permitido

[Referencia Principal] https://docs.aws.amazon.com/pt_br/eks/latest/userguide/pod-security-policy.html

--

--

Victor BatistaX

Computer Scientist | Architect Cloud | AWS Community Builder - Security Topics