Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Prácticas de Seguridad en Kubernetes

Prácticas de Seguridad en Kubernetes

Charla que di en un webinar con Arsys sobre las mejores prácticas para proteger tu cluster de Kubernetes.

Pablo Fredrikson

January 25, 2023
Tweet

More Decks by Pablo Fredrikson

Other Decks in Programming

Transcript

  1. Pablo Fredrikson • Principal SRE @ Split Software • +15

    años de experiencia • +5 años con Kubernetes en Producción • Pelado Nerd en YouTube
  2. Kubernetes en 3 minutos - Conceptos • Pods • Workers:

    Nodos, VMs • Masters: Controllers, Schedulers, API
  3. MASTER API server Kube Scheduler Controller Manager Cloud Controller Manager

    API Kubernetes Cluster Services API Kubernetes Cluster Services API etcd deployment pod1: - container1 - container2 replicas: 3 pod2: - container3 replicas: 2 Kubelet Kubelet Kubelet P1R3 P1R1 P2R1 P1R2 P2R2 Kubernetes en 3 minutos
  4. Kubelet P2R1 Kubelet P1R2 Kubelet Kubernetes Cluster Services API deployment

    pod1: - container1 - container2 replicas: 3 pod2: - container3 replicas: 2 P1R3 P1R1 P2R2 P1R3 P1R1 Kubernetes en 3 minutos
  5. 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
  6. 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
  7. 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
  8. 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
  9. Protegiendo la API de Kubernetes • RBAC: Role Based Access

    Control Practicar el principio de los privilegios mínimos
  10. 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
  11. 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
  12. 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
  13. 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