Kubernetes
Segurança
CloudNative
RBAC
NetworkPolicies
Falco
OPA
DevSecOps

Segurança Cloud Native: Protegendo Infraestruturas Kubernetes

Segurança Cloud Native: Protegendo Infraestruturas Kubernetes

Kubernetes trouxe flexibilidade, mas também um novo conjunto de vetores de ataque. A segurança deve ser integrada ao pipeline, desde a construção da imagem até a execução no cluster.

Principais Camadas de Segurança

  • Supply-Chain, escaneamento de vulnerabilidades nas imagens Docker.
  • Controle de Acesso (RBAC), permissões mínimas por service account.
  • Políticas de Rede, NetworkPolicy para isolar pods.
  • Runtime Security, Falco, OPA Gatekeeper para detectar comportamentos anômalos.
  • Segurança de Dados, Secrets criptografados com KMS, encriptação de volumes.

Checklist de Segurança Kubernetes

  • Habilitar PodSecurityPolicy ou Pod Security Standards.
  • Definir Roles e RoleBindings com princípio do menor privilégio.
  • Aplicar NetworkPolicy para limitar tráfego intra-namespace.
  • Escanear imagens com Trivy ou Clair no CI.
  • Implementar OPA Gatekeeper para políticas de validação.
  • Configurar Falco para monitorar syscalls suspeitas.
  • Rotacionar Secrets regularmente.
  • Auditar logs do API Server com audit policy.

Exemplo de RBAC Restrito

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: prod name: read-only-role rules: - apiGroups: [""] resources: ["pods", "services", "configmaps"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-only-binding namespace: prod subjects: - kind: ServiceAccount name: app-sa namespace: prod roleRef: kind: Role name: read-only-role apiGroup: rbac.authorization.k8s.io

Políticas de Rede Simples

apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-except-frontend namespace: prod spec: podSelector: {} policyTypes: - Ingress - Egress ingress: - from: - podSelector: matchLabels: app: frontend

Escaneamento de Imagens no CI

## .gitlab-ci.yml stages: - scan - build - deploy scan_image: stage: scan image: aquasec/trivy:latest script: - trivy image --severity HIGH,CRITICAL myapp:latest

Monitoramento de Runtime com Falco

apiVersion: apps/v1 kind: DaemonSet metadata: name: falco namespace: kube-system spec: selector: matchLabels: app: falco template: metadata: labels: app: falco spec: containers: - name: falco image: falcosecurity/falco:latest securityContext: privileged: true volumeMounts: - name: devfs mountPath: /host/dev - name: procfs mountPath: /host/proc - name: sysfs mountPath: /host/sys volumes: hostPath: path: /proc - name: sysfs hostPath: path: /sys

Conclusão

Segurança em Kubernetes é um processo contínuo. Aplicando camadas de defesa, desde a construção da imagem até políticas de runtime, você reduz drasticamente a superfície de ataque e aumenta a confiança nos ambientes de produção.


Quais práticas de segurança você já adotou no seu cluster? Compartilhe nos comentários!

Leia também