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:
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:```yaml
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
containers:
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:
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.