Segurança de container — Rede

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

A 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.

Podemos e devemos fazer boas configurações por meio dos SGs, lembre-se da matriz de responsabilidade.

Segurança de container — Rede

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

O que é uma politica de redes Kubernetes ?

É 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.

Segurança 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)

Default Deny depois que uma política é aplicada:

  • Se uma ou mais diretivas de rede se aplicarem a um pod contendo regras de entrada, somente o tráfego de entrada especificamente permitido por essas políticas será permitido.
  • Se uma ou mais diretivas de rede se aplicarem a um pod contendo regras de 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

Quer saber mais sobre segurança de containers?
Fique ligado nos próximos artigos de Terça Tech em nosso blog!