Protegiendo la API de Kubernetes ● Priorizar seguridad / No exponer más información de la necesaria ● Inventariar y manejar las API ● Usar una solución robusta de autorización y autenticación ● Practicar el principio de los privilegios mínimos ● Cifrar el tráfico usando TLS ● Quitar/limitar información que no debería ser compartida ● Validar datos ingeridos Ordenando un poquito la lista
Protegiendo la API de Kubernetes ● Bloquear acceso externo ● Mantener Kubernetes actualizado ○ Estar al tanto de vulnerabilidades: https://kubernetes.io/security Priorizando la seguridad / No exponer más información de la necesaria
Protegiendo la API de Kubernetes ● Kubernetes CRD son geniales! ○ Permiten crear y controlar tus propios recursos ○ Extiende la API de Kubernetes ○ Los controladores de estos nuevos recursos pueden ser peligrosos! Inventariar y manejar las API
Protegiendo la API de Kubernetes ● El sistema que viene por defecto está bastante bien ● Lo importante es configurarlo bien (próximo punto) Usar una solución robusta de autorización y autenticación
Protegiendo la API de Kubernetes Practicar el principio de los privilegios mínimos: RBAC ns1 ns2 ns3 ns4 cluster usuarios grupos pods ● Role (set de permisos: ns) ● ClusterRole ● RoleBinding ● ClusterRoleBinding ● ServiceAccount
Protegiendo la API de Kubernetes ● Kubernetes ya usa TLS por defecto y firma sus propios certificados ● Puedes crear tu propia CA y hacerlo incluso más seguro ○ Es una buena idea pero puede ser difícil de mantener ○ cert-manager es una buena opción Cifrar el tráfico usando TLS
Protegiendo la API de Kubernetes ● Kubernetes ya usa TLS por defecto y firma sus propios certificados ● Puedes crear tu propia CA y hacerlo incluso más seguro ○ Es una buena idea pero puede ser difícil de mantener ○ cert-manager es una buena opción Cifrar el tráfico usando TLS
Protegiendo Kubernetes desde adentro ● Privileged containers ○ PodSecurityPolicy / PodSecurityAdmission ○ Rootless containers ■ containerd, CRI-O ● NetworkPolicy ○ Requiere un plugin de Networking compatible: Calico, Cilium, Weave ● ServiceMesh ○ Ayuda con cifrado pod to pod / svc to svc Varias cosas para tener en cuenta