Agrega redes autorizadas para el acceso al plano de control

En esta página, se explica cómo otorgar acceso a las redes autorizadas a los planes de control de clúster en los clústeres de Google Kubernetes Engine (GKE). Para obtener información general sobre las Herramientas de redes de GKE, consulta la Descripción general de la red.

Descripción general

Las redes autorizadas te permiten especificar rangos de CIDR y permitir que las direcciones IP de esos rangos accedan al extremo del plano de control de tu clúster mediante HTTPS. Las redes autorizadas son compatibles con todos los clústeres.

GKE usa la seguridad de la capa de transporte (TLS) y la autenticación para ofrecer acceso seguro al extremo del plano de control del clúster desde la Internet pública. Esto te ofrece la flexibilidad de administrar tu clúster desde cualquier lugar. Con las redes autorizadas, puedes restringir el acceso solo a conjuntos específicos de direcciones IP.

Los clústeres privados ejecutan nodos que solo tengan direcciones IP internas y, al igual que las redes autorizadas, no permitan direcciones IP que no sean de confianza desde fuera de Google Cloud para acceder al extremo del plano de control.

El uso de redes autorizadas en clústeres privados hace que tu plano de control sea accesible solo mediante las siguientes acciones:

  • Direcciones dentro de Google Cloud, como las máquinas virtuales (VM) de Compute Engine, Cloud Functions y Cloud Run
  • Bloques CIDR permitidos
  • Nodos y Pods dentro de la VPC de tu clúster
  • Los trabajos de producción interna de Google que administran tu plano de control

Las redes autorizadas y los usuarios de clústeres privados no deben depender del acceso al plano de control desde servicios en la nube, como Cloud Run y Cloud Functions, ya que se quitará este acceso en el futuro.

Ventajas

Agregar redes autorizadas puede ofrecer más beneficios de seguridad a tu clúster. Las redes autorizadas otorgan acceso a un conjunto específico de direcciones que selecciones, como aquellas provenientes de tu entorno. Esto puede ayudarte a proteger el acceso a tu clúster en caso de que ocurra una vulnerabilidad en los mecanismos de autorización o autenticación.

Limitaciones

  • Los clústeres públicos pueden tener hasta 50 rangos CIDR de redes autorizadas; los clústeres privados pueden tener hasta 100.
  • Si expandes una subred que un clúster usa con redes autorizadas, debes actualizar la red autorizada para que incluya el rango de direcciones IP expandido.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Asegúrate de que habilitaste la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de que instalaste Google Cloud CLI.
  • Establece la configuración predeterminada de Google Cloud CLI para tu proyecto mediante uno de los siguientes métodos:
    • Usa gcloud init si deseas ver una explicación sobre cómo configurar los valores predeterminados del proyecto.
    • Usa gcloud config para configurar el ID, la zona y la región del proyecto de manera individual.

    gcloud init

    1. Ejecuta gcloud init y sigue las instrucciones:

      gcloud init

      Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

      gcloud init --console-only
    2. Sigue las instrucciones para autorizar a la CLI de gcloud a usar tu cuenta de Google Cloud.
    3. Crea una configuración nueva o selecciona una existente.
    4. Elige un proyecto de Google Cloud.
    5. Elige una zona de Compute Engine predeterminada.
    6. Elige una región de Compute Engine predeterminada.

    gcloud config

    1. Establece tu ID del proyecto predeterminado:
      gcloud config set project PROJECT_ID
    2. Configura la región de Compute Engine predeterminada (por ejemplo, us-central1):
      gcloud config set compute/region COMPUTE_REGION
    3. Configura la zona de Compute Engine predeterminada (por ejemplo, us-central1-c):
      gcloud config set compute/zone COMPUTE_ZONE
    4. Actualiza gcloud a la versión más reciente:
      gcloud components update

    Cuando configuras las ubicaciones predeterminadas, puedes evitar errores en la CLI de gcloud como el siguiente: One of [--zone, --region] must be supplied: Please specify location.

Crea un clúster con redes autorizadas

Puedes crear un clúster con una o más redes autorizadas mediante Google Cloud CLI, Google Cloud Console o la API de GKE.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster existente.
  • CIDR1,CIDR2,...: Es una lista delimitada por comas de los valores CIDR para las redes autorizadas. Por ejemplo, 8.8.8.8/32,8.8.8.0/24

Console

  1. Ve a la página de Google Kubernetes Engine en la consola.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura tu clúster según sea necesario.

  4. En el menú de navegación, en Clúster, haz clic en Herramientas de redes.

  5. En Opciones avanzadas de redes, selecciona la casilla de verificación Habilitar redes autorizadas del plano de control.

  6. Haga clic en Agregar red autorizada.

  7. Ingresa un Nombre para la red.

  8. En Red, ingresa un rango de CIDR para el que desees otorgar acceso al plano de control de tu clúster.

  9. Haga clic en Listo. Agrega redes autorizadas adicionales según sea necesario.

  10. Haga clic en Crear.

API

Especifica el objeto masterAuthorizedNetworksConfig en la solicitud create de tu clúster:

"masterAuthorizedNetworksConfig": {
  "enabled": true,
  "cidrBlocks": [
    {
      "displayName": string,
      "cidrBlock": string
    }
  ]
}

Para obtener más información, consulta MasterAuthorizedNetworksConfig.

Crea un clúster privado con redes autorizadas

Para obtener información sobre cómo crear un clúster privado con una red autorizada o más, consulta Configura un clúster privado.

Agrega una red autorizada a un clúster existente

Puedes agregar una red autorizada a un clúster existente con la CLI de gcloud o la consola.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster existente.
  • CIDR1,CIDR2,...: Es una lista delimitada por comas de los valores CIDR para las redes autorizadas. Por ejemplo, 8.8.8.8/32,8.8.8.0/24

Console

  1. Dirígete a la página Google Kubernetes Engine en la consola.

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster que deseas modificar.

  3. En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en Editar redes autorizadas del plano de control.

  4. Selecciona la casilla de verificación Habilitar redes autorizadas del plano de control.

  5. Haga clic en Agregar red autorizada.

  6. Ingresa un Nombre para la red.

  7. En Red, ingresa un rango de CIDR para el que desees otorgar acceso al plano de control de tu clúster.

  8. Haga clic en Listo. Agrega redes autorizadas adicionales según sea necesario.

  9. Haz clic en Save Changes.

API

Especifica el campo desiredMasterAuthorizedNetworksConfig en la solicitud update de tu clúster. En el campo, especifica un objeto MasterAuthorizedNetworksConfig:

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

Verifica una red autorizada

Puedes verificar una red autorizada en un clúster existente con la CLI de gcloud o la consola.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters describe CLUSTER_NAME

El resultado es similar a este:

...
masterAuthorizedNetworksConfig:
  cidrBlocks:
  - cidrBlock: 8.8.8.8/32
  - cidrBlock: 8.8.4.4/32
  enabled: true
...

Console

  1. Dirígete a la página Google Kubernetes Engine en la consola.

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster que deseas modificar.

  3. En Herramientas de redes, el campo Redes autorizadas del plano de control muestra los CIDR permitidos.

API

Envía una solicitud get. Busca los bloques CIDR debajo del campo masterAuthorizedNetworksConfig. Por ejemplo:

"masterAuthorizedNetworksConfig": {
"enabled": true,
 "cidrBlocks": [
  {
    "displayName": "Office",
    "cidrBlock": "192.0.2.0/24"
  }
]
}

Inhabilita las redes autorizadas

Puedes inhabilitar las redes autorizadas para un clúster existente con la CLI de gcloud o la consola.

gcloud

Ejecuta el comando siguiente:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-master-authorized-networks

Console

  1. Dirígete a la página Google Kubernetes Engine en la consola.

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster que deseas modificar.

  3. En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en Editar redes autorizadas del plano de control.

  4. Desmarca la casilla de verificación Habilitar redes autorizadas del plano de control.

  5. Haz clic en Save Changes.

Quita redes autorizadas

Puedes quitar todas las redes autorizadas personalizadas de un clúster existente con la consola.

  1. Ve a la página de Google Kubernetes Engine en la consola.

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster que deseas modificar.

  3. En Herramientas de redes, en el campo Redes autorizadas del plano de control, haz clic en Editar redes autorizadas del plano de control.

  4. Para quitar CIDR, haz clic en Borrar.

  5. Haz clic en Save Changes.

Soluciona problemas

En las siguientes secciones, se explica cómo solucionar problemas comunes con las redes autorizadas:

Demasiados bloques CIDR

gcloud muestra el siguiente error cuando intenta crear o actualizar un clúster con más de 50 bloques CIDR:

ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args

Para resolver este problema, si tu clúster es público, asegúrate de no especificar más de 50 bloques CIDR. Si tu clúster es privado, no especifiques más de 100 bloques CIDR.

No se puede establecer una conexión con el servidor

Los comandos kubectl agotan el tiempo de espera debido a que los bloques CIDR están configurados de forma incorrecta:

Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out

Cuando creas o actualizas un clúster, asegúrate de especificar los bloques CIDR correctos.

Pasos siguientes