Información sobre la seguridad de redes en GKE

En este documento se explican los conceptos básicos de seguridad de red de GKE, como el principio de mínimos accesos, y se te ayuda a elegir las herramientas adecuadas para proteger tu clúster. Los objetivos principales de la implementación de la seguridad de red de GKE son el aislamiento de las cargas de trabajo y la propiedad múltiple segura. Para alcanzar estos objetivos, debes aplicar los principios de mínimos accesos y defensa en profundidad, así como usar datos útiles para tomar decisiones de seguridad.

En Google Kubernetes Engine (GKE), aplicar el principio de mínimos privilegios al tráfico de red significa restringir la comunicación a lo que sea necesario para que funcionen tus aplicaciones. De forma predeterminada, la red de un clúster de GKE está abierta, lo que significa que todos los pods pueden comunicarse entre sí.

Este documento ayuda a los operadores y a los especialistas en redes y seguridad a comprender e implementar la seguridad de la red en los clústeres de GKE. Para obtener más información sobre los roles comunes y las tareas de ejemplo en Google Cloud, consulta Roles y tareas comunes de los usuarios de GKE.

Antes de leer este documento, compruebe que conoce los siguientes conceptos:

  • Conceptos de redes de GKE: para obtener una descripción general, consulta Información sobre las redes de GKE.
  • Pods, servicios y espacios de nombres de Kubernetes: estos recursos fundamentales de Kubernetes son esenciales para definir políticas de seguridad de red. Consulta la documentación de Kubernetes.
  • Principio de mínimos accesos: este principio de seguridad es un concepto fundamental que se aplica en todo este documento.

Objetivos de la seguridad de redes de GKE

Las políticas de seguridad de red de GKE proporcionan un control del tráfico pormenorizado y compatible con Kubernetes en tu clúster. Estas políticas son un elemento fundamental de tu estrategia de seguridad general. Para implementar una seguridad de red sólida, ten en cuenta estos principios fundamentales:

  • Mínimos accesos: concede a los sistemas y servicios solo los privilegios mínimos necesarios para llevar a cabo sus funciones. Este principio reduce el posible impacto de una vulneración. Las políticas de red de Kubernetes te ayudan a pasar de una red abierta de forma predeterminada a una en la que solo se permiten las conexiones necesarias.
  • Defensa en profundidad: aplica varias medidas de seguridad independientes. Un fallo en un control no provoca un fallo total del sistema. Por ejemplo, puedes usar una política de red para aislar una base de datos, aunque la propia base de datos requiera autenticación.
  • Datos útiles: toma decisiones de seguridad basadas en datos. La modelización de amenazas y la evaluación de riesgos determinan tu nivel de protección. Funciones como el registro de políticas de red proporcionan los datos necesarios para verificar las políticas y detectar posibles brechas.

Elegir una política de seguridad de red

Para elegir la política adecuada, identifica el tipo y el alcance del tráfico que quieras controlar.

Tipos de tráfico

Para elegir la política adecuada, ten en cuenta el origen y el destino del tráfico que quieras gestionar:

  • Comunicación entre pods del clúster: para controlar cómo se comunican entre sí los microservicios, usa políticas que operen en etiquetas y espacios de nombres de pods.

    • Como desarrollador de aplicaciones, usa el estándar de Kubernetes NetworkPolicy para definir reglas de entrada y salida de tu aplicación en su espacio de nombres.
    • Como administrador de clústeres, usa CiliumClusterwideNetworkPolicy para aplicar medidas de seguridad que se apliquen a todo el clúster. Las reglas de denegación de NetworkPolicy tienen prioridad sobre las reglas de permiso de CiliumClusterwideNetworkPolicy.
  • Tráfico de salida de pods a servicios externos: para controlar el tráfico de salida de pods a servicios externos en función de los nombres de dominio, usa FQDNNetworkPolicy. Esta política es útil cuando las direcciones IP de los servicios externos no son estáticas, ya que resuelve y actualiza automáticamente las direcciones IP permitidas en función del DNS.

  • Cifrado de todo el tráfico entre servicios: para asegurarte de que todas las comunicaciones entre servicios estén cifradas y autenticadas, usa una malla de servicios. Usa Istio o Anthos Cloud Service Mesh para implementar TLS mutuo (mTLS), que gestiona el cifrado automáticamente.

Resumen de las opciones de políticas

En la siguiente tabla se resume qué política debes usar en función de tu objetivo de seguridad.

Objetivo Política recomendada
Controla el tráfico entre pods mediante etiquetas y espacios de nombres. Kubernetes NetworkPolicy
Controla el tráfico de salida a servicios externos por nombre de dominio. FQDNNetworkPolicy
Encripta y autentica todo el tráfico entre servicios. Istio o Anthos Cloud Service Mesh (para mTLS)
Aplica reglas obligatorias en todo el clúster como administrador. CiliumClusterwideNetworkPolicy
Audita y registra las conexiones permitidas o denegadas por las políticas. Almacenamiento de registros de políticas de red (habilitado para cualquier política)

Auditar y solucionar problemas de políticas de red

Después de implementar las políticas de red, comprueba que funcionan correctamente y diagnostica cualquier problema de conectividad. Puedes usar Registro de políticas de red como herramienta principal para ello.

Cuando habilitas el registro de políticas de red, GKE genera un registro en Cloud Logging por cada conexión que permite o deniega una política de red. Estos registros son esenciales para realizar auditorías de seguridad y solucionar problemas de comportamiento inesperado. Revisar estos registros te permite ver los efectos concretos de tus reglas, confirmar que el tráfico legítimo fluye como se espera y que el tráfico no autorizado se bloquea.

Siguientes pasos