Skip to main content

Primitivos de Seguridad

En un clúster de Kubernetes en producción, la seguridad es la principal preocupación.

Naturalmente, todos los accesos a los hosts deben estar protegidos.

  • Desactivar el acceso root.
  • Desactivar el acceso por autenticación con contraseña.
  • Permitir solo acceso por clave SSH.
  • Otras precauciones como acceso físico y virtual a la infraestructura que aloja Kubernetes.

Si algo se ve comprometido, todo está comprometido

El kube-apiserver está en el centro de toda comunicación de Kubernetes, siendo la comunicación entre los componentes de Kubernetes y el propio usuario utilizando kubectl. A través de él podemos hacer cualquier cosa en Kubernetes, por lo que la primera línea de defensa es controlar el acceso al kube-apiserver.

Necesitamos preguntarnos...

Alt text

Quién puede acceder se puede definir por diferentes métodos de autenticación.

  • Nombre de usuario y tokens almacenados en archivos.
  • Certificados.
  • Proveedores de autenticación externa - LDAP.
  • Service Accounts para máquinas.

Una vez que se permite el acceso, ¿qué se puede hacer? Varios mecanismos serán estudiados aquí.

  • RBAC Authorization
  • ABAC Authorization
  • Node Authorization
  • Webhook Mode

Toda la comunicación entre los componentes de Kubernetes está cifrada por TLS.

Alt text

Por defecto, todos los pods pueden acceder a todos los pods dentro del clúster y para restringir estos accesos podemos usar políticas de red.

Alt text

Alt text