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