O Kubernetes tornou-se o orquestrador de contêineres padrão de mercado para empresas que rodam sistemas distribuídos complexos. No entanto, por ser um ecossistema robusto e flexível, sua configuração padrão prioriza a facilidade de desenvolvimento em detrimento da segurança restritiva.
Sem o devido hardening, invasores podem escalar privilégios de um único contêiner para comprometer todo o cluster. Abaixo, destacamos práticas essenciais para proteger seu Kubernetes.
1. Implemente o Princípio de Menor Privilégio com RBAC
O controle de acesso baseado em funções (RBAC - Role-Based Access Control) permite restringir quais ações usuários e pods podem realizar nas APIs do Kubernetes.
Recomendações:
- Nunca use a conta padrão
system:serviceaccount:defaultcom privilégios de administrador. - Crie
ServiceAccountsdedicadas para cada aplicação e associe apenas as permissões necessárias (ex: somente leitura no namespace correspondente).
2. Restrinja o Acesso a Recursos dos Pods (Security Context)
Por padrão, contêineres Docker podem rodar como usuário root. Se um contêiner root for invocado com vulnerabilidades, o atacante ganha acesso completo ao nó físico hospedeiro.
O que configurar nos manifestos (YAML):
Configure o bloco securityContext do seu Pod para impedir execução privilegiada:
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
containers:
- name: minha-app
image: minha-app:latest
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
Nota: O uso de readOnlyRootFilesystem bloqueia qualquer gravação no disco local do contêiner, forçando o uso de diretórios temporários (tmpfs) ou volumes persistentes montados explicitamente para escrita, impedindo a injeção de scripts maliciosos.
3. Aplique Network Policies (Isolamento de Rede)
Por padrão, a rede interna do Kubernetes é aberta: qualquer Pod de qualquer Namespace pode conversar livremente com outros Pods do cluster.
Como proteger:
- Habilite políticas de rede (NetworkPolicies) para atuar como um firewall interno de camada 3/4.
- Isole bancos de dados e sistemas de fila, configurando-os para aceitar conexões apenas de pods marcados com a label específica do microsserviço autorizado.
Conclusão
Garantir a segurança de clusters Kubernetes exige uma abordagem em camadas. Ao aplicar o isolamento de rede, políticas RBAC rígidas e contextos de segurança nos Pods, sua organização elimina os principais pontos cegos de infraestruturas conteinerizadas em produção.