Endurece la seguridad del clúster

Debido a la gran velocidad de desarrollo en Kubernetes, a menudo hay nuevas funciones de seguridad que puedes usar. En este documento, se describe cómo endurecer tus clústeres de GKE en VMware.

En este documento, se priorizan las mitigaciones de seguridad de alto valor que requieren que intervengas durante la creación del clúster. Las funciones menos importantes, la configuración segura predeterminada y las que pueden habilitarse después de la creación del clúster se mencionan más adelante en el documento. Para obtener una descripción general de los temas de seguridad, consulta Seguridad.

Lista de tareas

En la siguiente lista de tareas, se destacan las prácticas recomendadas para endurecer la implementación de la plataforma de clústeres de GKE. Para obtener más información sobre cada práctica, consulta las secciones de este documento.

Lista de tareas de implementación Descripción
Identidad y control de acceso

Usa privilegios de cuenta de vSphere:
Usa una cuenta de administrador de vSphere con privilegios mínimos.

Protege las cuentas de servicio de Google Cloud:
Minimiza los privilegios de la cuenta de servicio de Google Cloud.

Configura OpenID Connect (OIDC):
Configura OpenID Connect para la autenticación de usuarios.

Usa espacios de nombres de Kubernetes y RBAC para restringir el acceso:
Usa espacios de nombres con RBAC para el aislamiento administrativo, y el mínimo de funciones y autorizaciones de privilegio.

Protección de datos

Encripta las máquinas virtuales de vSphere:
Configura vSphere para encriptar los volúmenes que usa GKE en VMware.

Administra secretos:
Encripta los secretos en reposo.

Protección de la red

Restringe el acceso de red al plano de control y los nodos:
Configura controles para aislar y proteger los nodos y las redes del plano de control.

Usa políticas de red para restringir el tráfico:
Implementa políticas de red a fin de restringir el tráfico dentro del clúster.

Seguridad declarativa

Usa Policy Controller:
Instala Policy Controller para implementar una política de seguridad declarativa en tus clústeres.

Mantenimiento

Actualiza GKE Enterprise:
Asegúrate de ejecutar la versión más reciente de GKE Enterprise para tu plataforma.

Supervisa los boletines de seguridad:
Consulta los boletines de seguridad de GKE Enterprise para obtener las sugerencias y orientación más recientes sobre el control de versiones.

Supervisa y registra

Configura las opciones del registro de los clústeres de GKE:
Asegúrate de que el registro esté habilitado y integrado en una solución de SIEM.

Identidad y control de acceso

En esta sección, se proporciona información sobre cómo controlar el acceso a tus clústeres.

Usa privilegios de cuenta de vSphere

La cuenta de usuario de vCenter que usas para instalar GKE en VMware debe tener privilegios suficientes. Por ejemplo, una cuenta de usuario a la que se le asigna la función de administrador de vCenter tiene privilegios para acceder completo a todos los objetos de vCenter y proporciona un administrador de clústeres de GKE on VMware con acceso completo.

Se recomienda el principio de privilegio mínimo, que solo otorga los privilegios necesarios para instalar con éxito GKE Enterprise. Hemos predefinido el conjunto mínimo de privilegios necesarios para realizar la instalación, así como los comandos necesarios a fin de otorgarlos.

Protege las cuentas de servicio de Google Cloud

GKE en VMware requiere tres cuentas de servicio de Google Cloud:

  • Una cuenta de servicio predefinida para acceder al software de GKE en VMware Creas esto cuando compras GKE Enterprise.
  • Una cuenta de servicio de registro que Connect usará para registrar clústeres de GKE en VMware con Google Cloud
  • Una cuenta de servicio de Cloud Logging que usará Cloud Logging para recopilar registros de clústeres

Durante la instalación, debes vincular las funciones de administración de identidades y accesos a estas cuentas de servicio. Esas funciones otorgan privilegios específicos a las cuentas de servicio dentro de tu proyecto y se pueden generar durante la instalación.

Configura la autenticación para los usuarios del clúster

Para configurar la autenticación de usuarios de tu clúster, puedes usar OpenID Connect (OIDC) o el Protocolo ligero de acceso a directorios (LDAP).

Para obtener más información, consulta Servicio GKE Identity.

Usa espacios de nombres de Kubernetes y RBAC para restringir el acceso

Para otorgarles a los equipos el acceso de privilegio mínimo a Kubernetes, crea espacios de nombres de Kubernetes o clústeres específicos del entorno. Asigna centros de costos y etiquetas adecuadas a cada espacio de nombres para la rendición de cuentas y devolución del cargo. Solo brinda a los desarrolladores el nivel de acceso a su espacio de nombres que necesitan para implementar y administrar su aplicación, sobre todo en producción.

Asigna las tareas que los usuarios deben seguir en el clúster y define los permisos necesarios para completar cada tarea. Para otorgar permisos a nivel de clúster y de espacio de nombres, usa el RBAC de Kubernetes.

Más allá de los permisos para las cuentas de servicio de Google Cloud que se usan a fin de instalar GKE en VMware, IAM no se aplica a los clústeres de GKE en VMware.

Para obtener más información, consulta la siguiente documentación:

Protección de datos

En esta sección, se proporciona información sobre cómo proteger tus datos.

Encripta máquinas virtuales de vSphere

Los nodos del clúster de GKE en VMware se ejecutan en máquinas virtuales (VM) del clúster de vSphere. Google te recomienda que encriptes todos los datos en reposo. Para hacerlo en vSphere, sigue la Guía de endurecimiento y configuración de seguridad de VMware vSphere 7 y la guía de prácticas recomendadas para encriptar las VM.

Esto debe hacerse antes de la instalación de GKE Enterprise.

Administra secretos

Si deseas proporcionar una capa adicional de protección para los datos sensibles, como los Secrets de Kubernetes almacenados en etcd, configura un administrador de secretos que esté integrado en los clústeres de GKE en VMware.

Si ejecutas cargas de trabajo en varios entornos, te recomendamos una solución que funcione para Google Kubernetes Engine y GKE on VMware. Si eliges usar un administrador de secretos externo, como HashiCorp Vault, configúralo antes de integrar tus clústeres de GKE en VMware.

Tienes varias opciones para la administración secreta:

  • Puedes usar los Secrets de Kubernetes de forma nativa en GKE en VMware. Se espera que los clústeres usen la encriptación de vSphere para las VM como se describió antes, lo que proporciona a los secretos una protección básica de encriptación en reposo. Los secretos no tienen una encriptación mayor de forma predeterminada.
  • Puedes usar un administrador de secretos externo, como HashiCorp Vault. Puedes autenticarte en HashiCorp mediante una cuenta de servicio de Kubernetes o de Google Cloud.

Para obtener más información, consulta la siguiente documentación:

Protección de la red

En esta sección, se proporciona información sobre cómo proteger tu red.

Restringe el acceso de red al plano de control y a los nodos

Limita la exposición en Internet del plano de control y los nodos de tu clúster. Estas opciones no se pueden cambiar después de la creación del clúster. De forma predeterminada, los nodos del clúster de GKE en VMware se crean mediante direcciones RFC 1918, y se recomienda no cambiar esto. Implementa reglas de firewall en la red local para restringir el acceso al plano de control.

Usa políticas de red para restringir el tráfico

De forma predeterminada, todos los servicios de un clúster de GKE en VMware pueden comunicarse entre sí. Si deseas obtener información a fin de controlar la comunicación de servicio a servicio según sea necesario para tus cargas de trabajo, consulta las secciones siguientes.

Restringir el acceso de la red a los servicios hace que sea mucho más difícil para los atacantes moverse de forma lateral dentro de tu clúster, y ofrece a los servicios cierta protección contra la denegación accidental o deliberada del servicio. Existen dos maneras recomendadas para controlar el tráfico:

  • Para controlar el tráfico de la capa 7 en los extremos de tus aplicaciones, usa Istio. Elige esta opción si te interesa el balanceo de cargas, la autorización de servicios, la limitación, la cuota y las métricas.
  • Para controlar el tráfico de la capa 4 entre Pods, usa políticas de red de Kubernetes. Elige esta opción si buscas las funciones básicas de control de acceso que administra Kubernetes.

Puedes habilitar la política de red de Istio y de Kubernetes después de crear los clústeres de GKE on VMware. Puedes usarlas en conjunto si es necesario.

Para obtener más información, consulta la siguiente documentación:

Seguridad declarativa

En esta sección, se proporcionan recomendaciones para proteger los clústeres.

Usa el controlador de políticas

Los controladores de admisión de Kubernetes son complementos que rigen y aplican la forma en que se usa un clúster de Kubernetes. Los controladores de admisión son una parte importante del enfoque de defensa en profundidad para endurecer el clúster.

La práctica recomendada es usar el Controlador de políticas. El controlador de políticas usa el framework de restricción de OPA para describir y aplicar la política como CRD. Las restricciones que aplicas en el clúster se deben definir en plantillas de restricciones, que se implementan en los clústeres.

Si deseas obtener información a fin de usar las restricciones del controlador de políticas a fin de lograr muchas de las mismas protecciones que PodSecurityPolicies, con la capacidad adicional de probar tus políticas antes de implementarlas, consulta Usa restricciones para aplicar la seguridad del Pod.

Para obtener más información, consulta la siguiente documentación:

Restringe la capacidad de las cargas de trabajo de realizar modificaciones automáticas

Algunas cargas de trabajo de Kubernetes, en especial las del sistema, tienen permiso para realizar modificaciones automáticas. Por ejemplo, algunas cargas de trabajo se escalan automáticamente. Si bien es conveniente, esto puede permitir que un atacante que ya haya vulnerado un nodo pueda escalar más a fondo en el clúster. Por ejemplo, un atacante podría hacer que una carga de trabajo en el nodo se modifique a sí misma para ejecutarse como una cuenta de servicio con más privilegios que exista en el mismo espacio de nombres.

Idealmente, a las cargas de trabajo no se les debería otorgar permiso para modificarse a sí mismas. Cuando la modificación automática es necesaria, puedes limitar los permisos mediante la aplicación de restricciones de Gatekeeper o del controlador de políticas, como NoUpdateServiceAccount de la biblioteca de Gatekeeper de código abierto, que proporciona varias políticas de seguridad útiles.

Cuando implementas políticas, por lo general, es necesario permitir que los controladores que administran el ciclo de vida del clúster omitan las políticas y las canalizaciones de registro y supervisión. Esto es necesario para que los controladores puedan realizar cambios en el clúster, como aplicar actualizaciones del clúster. Por ejemplo, si implementas la política NoUpdateServiceAccount en GKE en VMware, debes establecer los siguientes parámetros en Constraint:

parameters:
  allowedGroups:
  - system:masters
  allowedUsers:
  - system:serviceaccount:kube-system:monitoring-operator
  - system:serviceaccount:kube-system:stackdriver-operator
  - system:serviceaccount:kube-system:metrics-server-operator
  - system:serviceaccount:kube-system:logmon-operator

Mantenimiento

En esta sección, se proporciona información sobre cómo mantener los clústeres.

Actualizar GKE Enterprise

Kubernetes suele agregar nuevas funciones de seguridad y proporcionar parches de seguridad con frecuencia.

Eres responsable de mantener actualizados tus clústeres de GKE en VMware. Revisa las notas de la versión de todas las versiones. Además, planifica la actualización a las versiones de parches nuevas todos los meses y a las versiones secundarias cada tres meses. Obtén más información para actualizar los clústeres.

También eres responsable de actualizar y proteger la infraestructura de vSphere:

Supervisa boletines de seguridad

El equipo de seguridad de GKE Enterprise publica boletines de seguridad para detectar vulnerabilidades de gravedad alta y crítica.

Estos boletines siguen un esquema de numeración de vulnerabilidades común de Google Cloud y están vinculados desde la página principal de boletines de Google Cloud y las notas de la versión de GKE on VMware. Cada página de boletín de seguridad tiene un feed RSS en el que los usuarios pueden suscribirse para recibir actualizaciones.

Cuando se requiere una acción del cliente para abordar estas vulnerabilidades altas y críticas, Google se comunica con los clientes por correo electrónico. Además, Google también puede comunicarse con los clientes con contratos de asistencia a través de canales de asistencia.

Para obtener más información, consulta la siguiente documentación:

Supervisión y registro

GKE en VMware incluye varias opciones de registro y supervisión de clústeres, incluidos servicios administrados basados en la nube, herramientas de código abierto y compatibilidad validada con soluciones comerciales de terceros:

  • Cloud Logging y Cloud Monitoring, habilitados por agentes en el clúster e implementados con GKE on VMware
  • Opciones de configuración validadas con soluciones de terceros

Sin importar la solución de registro que elijas en función de los requisitos empresariales, recomendamos encarecidamente que registres y se generen alertas y eventos relevantes de reenvío de registros en un servicio de administración eventos y de la información y seguridad centralizado (SIEM) para la administración de los incidentes de seguridad.

Para obtener más información, consulta la siguiente documentación: