Kubernetes по умолчанию не безопасен. Кластер из коробки — это открытые порты, pods без ограничений и плоская сеть без сегментации.
Топ-5 уязвимостей K8s
- Открытый API Server — доступ без аутентификации
- Privileged containers — root внутри pod = root на ноде
- Отсутствие Network Policies — любой pod видит любой pod
- Secrets в plain text — base64 это не шифрование
- Устаревшие образы — известные CVE в production
Network Policies: сегментация на уровне подов
Без Network Policies сеть K8s — как офис без стен. Любой compromised pod может сканировать весь кластер.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-ingress
spec:
podSelector: {}
policyTypes:
- IngressЗащита Ingress от DDoS
Rate limiting на уровне Ingress Controller (nginx-ingress, Traefik). WAF перед кластером (ModSecurity, Cloudflare). HPA для auto-scaling при spike нагрузки.
RBAC: минимум привилегий
Каждый ServiceAccount — только те права, которые реально нужны. Никаких cluster-admin для приложений. Audit logs для всех действий.
Runtime Security
Falco — обнаружение аномалий в runtime. OPA/Gatekeeper — policy enforcement. Trivy, Anchore — сканирование образов.
Kubernetes security — это не продукт, а процесс. Постоянный мониторинг, обновления, аудит.