Plano de seguridad de Anthos: Aplica restricciones de localidad para clústeres en Google Cloud

En este documento, se describe cómo administrar los recursos para que estén disponibles solo en regiones específicas. Se incluye una descripción general de cómo y por qué deberías cumplir con las restricciones de ubicación, y se describen los controles de Google Cloud que usas para esta tarea.

El documento es parte de una serie de planos de seguridad que proporcionan orientación prescriptiva para trabajar con Anthos. Para obtener más información sobre estos planos, consulta Planos de seguridad de Anthos: Preguntas frecuentes.

Introducción

Muchas empresas deben cumplir con los requisitos de residencia específicos de la ubicación. Es decir, requieren que sus servicios, y en muchos casos los clústeres en los que se ejecutan, se implementen en ubicaciones específicas o se pueda acceder a ellos solo desde estas. Puede haber varios motivos, entre ellos, los requisitos normativos, de latencia o empresariales para ofrecer el servicio solo en países específicos.

Para cumplir con los requisitos de residencia específicos de la ubicación, debes tener en cuenta lo siguiente:

  • La ubicación de los servicios
  • Si necesitas restringir el acceso a tus servicios desde regiones específicas
  • Los servicios de Google Cloud de los que dependen tus servicios
  • Si usas GKE en Google Cloud o clústeres de Anthos alojados en VMware.
  • Los flujos y las operaciones permitidos dentro de tu app y desde y hacia esta.

Cuando comprendas estos problemas, podrás determinar la configuración de cada uno de los controles de seguridad aplicables para cumplir con los requisitos de residencia específicos de la ubicación.

El contenido del directorio de fuerza de localización del repositorio de GitHub asociado con este plano proporciona instrucciones sobre cómo configurar los controles de seguridad que necesitas para orden. para cumplir con los requisitos de restricción de localidad.

Información sobre los controles de seguridad que necesitas

En esta sección, se analizan los controles que puedes usar para alcanzar el nivel de restricción de localidad que cumple con tus requisitos.

Espacios de nombres

Etiqueta recursos que deben usar las mismas políticas

Los espacios de nombres te permiten proporcionar un permiso para los recursos relacionados dentro de un clúster, por ejemplo, pods, servicios y controladores de replicación. Si usas espacios de nombres, puedes delegar la responsabilidad de administración de los recursos relacionados como una unidad. Por lo tanto, los espacios de nombres son una parte integral de la mayoría de los patrones de seguridad.

Los espacios de nombres son una función importante para el aislamiento del plano de control. Sin embargo, no proporcionan aislamiento de los nodos, del plano de datos ni de la red.

Un enfoque común es crear espacios de nombres para aplicaciones individuales. Por ejemplo, puedes crear el espacio de nombres myapp-frontend para el componente de IU de una aplicación.

Políticas de la organización

Restringe las ubicaciones en las que puedes implementar tus clústeres

El Servicio de políticas de la organización se usa para configurar restricciones en los recursos compatibles dentro de tu organización de Google. Debes configurar restricciones en los recursos compatibles.

Cuando restringes los servicios a una localidad, debes usar la restricción de ubicación de recursos. Esta restricción define el conjunto de ubicaciones en las que se pueden crear los recursos de Google Cloud basados en la ubicación. Las políticas para esta restricción pueden especificar diferentes ubicaciones permitidas o denegadas. Por ejemplo, las políticas pueden especificar multirregiones, como Asia y Europa; regiones, como us-east1 o europe-west1; o zonas individuales, como europe-west1-b. Toda ubicación que se permita o se deniegue debe estar detallada de forma explícita.

Anthos Config Management

Aplica parámetros de configuración a tus clústeres de Anthos

Cuando administras los clústeres de Anthos, se recomienda usar Anthos Config Management, que mantiene tus clústeres inscritos sincronizados con los archivos de configuración. Un archivo de configuración es un archivo YAML o JSON que se almacena en tu repositorio y que contiene los mismos tipos de detalles de configuración que puedes aplicar de forma manual a un clúster mediante el comando kubectl apply. Anthos Config Management te permite administrar tus políticas e implementaciones de infraestructura como lo haces con tus apps, mediante la adopción de un enfoque declarativo.

Debes usar Anthos Config Management junto con un repositorio de Git que actúe como la única fuente de información de tus políticas declaradas. Anthos Config Management puede administrar políticas de control de acceso, como RBAC, cuotas de recursos, implementaciones de infraestructura a nivel de la plataforma y espacios de nombres. Anthos Config Management es declarativo; verifica de forma continua el estado del clúster y aplica el estado que se declara en el archivo de configuración para aplicar políticas.

Redes autorizadas para acceder al clúster principal

Restringe las ubicaciones que pueden acceder al servidor de la API de Kubernetes

Las redes autorizadas te permiten habilitar rangos de CIDR específicos y permitir que las direcciones IP de esos rangos accedan al extremo instancia principal del clúster mediante HTTPS. Los clústeres privados no exponen direcciones IP externas y, de manera opcional, ejecutan su instancia principal del clúster sin un extremo accesible de forma pública.

Sigue las instrucciones de la guía de endurecimiento de GKE que recomienda usar clústeres privados junto con la habilitación de redes autorizadas.

Selecciona un tipo de clúster

A fin de saber qué tipo de clúster es apropiado para tu caso práctico, debes comprender las regiones y zonas y las ubicaciones en las que se pueden implementar los recursos. Las regiones son áreas geográficas independientes que constan de zonas. Por ejemplo, Londres (europe-west2) es una región dentro de Europa, y Oregón (us-west1) es una región dentro de América.

Una zona es un área de implementación para los recursos de Google Cloud dentro de una región. Las zonas se pueden considerar como dominios con fallas únicos dentro de una región. Para implementar aplicaciones tolerantes a errores con alta disponibilidad, puedes hacerlo en varias zonas de una región.

Las ubicaciones dentro de las regiones suelen tener latencias de red de ida y vuelta de menos de 1 milisegundo en el percentil 95. Un ejemplo de una ubicación es Tokio, Japón, que tiene 3 zonas y se encuentra en la región asia-northeast1.

GKE tiene tres tipos de clústeres:

  • Clúster de zona única. Un clúster de zona única tiene un solo plano de control (instancia principal) que se ejecuta en una zona. Este plano de control administra las cargas de trabajo en los nodos que se ejecutan en la misma zona.
  • Clúster de varias zonas. Un clúster de varias zonas tiene una sola réplica del plano de control que se ejecuta en una zona única y nodos que se ejecutan en varias zonas.
  • Clúster regional. Los clústeres regionales replican los nodos y las instancias principales del clúster en varias zonas de una misma región. Por ejemplo, un clúster regional en la región us-east1 crea réplicas del plano de control y los nodos en tres zonas us-east1: us-east1-b, us-east1-c y us-east1-d.

Debes seleccionar el clúster que se adapte a tus necesidades de disponibilidad. Por ejemplo, si necesitas que tus cargas de trabajo tengan alta disponibilidad, usa un clúster regional.

Revisión general

Para integrar los controles, determina tus requisitos de restricción de localidad. Luego, asigna el alcance de los controles que se analizan en esta guía y la etapa en la que se deben configurar de la siguiente manera:

  1. Define tus requisitos regionales.
  2. Identifica la ubicación adecuada para tu clúster.
  3. Crea una política organizativa de ubicación de recursos para restringir la creación de los clústeres de GKE solo a las ubicaciones que cumplen con tus requisitos.
  4. Sigue las instrucciones de la guía de endurecimiento de clústeres de GKE para crear tus clústeres privados. Cuando crees tu clúster, asegúrate de seguir la guía de endurecimiento y usar la marca --enable-network-policy. Las políticas de red son obligatorias, y este paso te permite implementar reglas de firewall que restrinjan el tráfico que fluye entre los pods en un clúster.
  5. Agrega redes autorizadas a tus clústeres privados.

Si necesitas restringir la ubicación desde la que los clientes pueden acceder a tus servicios, haz lo siguiente:

  • Para los clústeres de GKE en Google Cloud, define una política de seguridad de Google Cloud Armor a fin de aplicar el control de acceso según la ubicación geográfica del tráfico entrante. Adjunta la política de seguridad a cada uno de los backends asociados con el recurso de entrada.
  • Usa Anthos Config Management para definir políticas que restrinjan quién puede acceder a tus clústeres.