Configura redes autorizadas en Cloud Composer

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página, se explica cómo configurar las redes autorizadas para tu entorno.

Acerca de las redes autorizadas en Cloud Composer

Las redes autorizadas te permiten especificar rangos de CIDR que pueden acceder al plano de control del clúster de tu entorno mediante HTTPS.

Por ejemplo, en Cloud Composer 2, se requiere ese acceso al clúster de tu entorno en entornos de IP privada para ejecutar comandos kubectl en el clúster de tu entorno. Las redes desde las que se originan esas solicitudes deben estar autorizadas para acceder al plano de control del clúster de tu entorno.

Redes autorizadas en entornos de IP públicas y privadas

Puedes especificar redes autorizadas para entornos de IP pública y IP privada.

  • En los entornos de IP privadas, puedes configurar redes autorizadas para permitir que un rango determinado de direcciones IP acceda al plano de control del clúster de tu entorno. Por ejemplo, para permitir que ciertos rangos de IP ejecuten comandos kubectl. De forma predeterminada, en los entornos de IP privada, puedes ejecutar estos comandos solo desde una VM en la subred de VPC del entorno de IP privada.

  • En los entornos de IP pública, puedes configurar redes autorizadas para restringir el rango de direcciones IP que pueden acceder al plano de control del clúster de tu entorno. De forma predeterminada, en los entornos de IP pública, no hay restricciones en los rangos de IP que pueden ejecutar comandos kubectl.

Antes de comenzar

Crea entornos con redes autorizadas

gcloud

Para crear un entorno con redes autorizadas, usa el argumento --enable-master-authorized-networks cuando crees un entorno. Luego, proporciona una lista de rangos CIDR separados por comas en el argumento --master-authorized-networks.

Para especificar redes autorizadas para un entorno de IP privada, haz lo siguiente:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.11.1-airflow-2.10.2 \
    --enable-private-environment \
    --enable-master-authorized-networks \
    --master-authorized-networks AUTHORIZED_NETWORKS_IP_RANGES

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • AUTHORIZED_NETWORKS_IP_RANGES con una lista separada por comas de rangos de direcciones IP en la notación CIDR. Estos rangos se agregan como redes autorizadas para el clúster de tu entorno.

Ejemplo (entorno de IP privada):

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.11.1-airflow-2.10.2 \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --enable-master-authorized-networks \
    --master-authorized-networks 192.0.2.0/23,192.0.4.0/23

API

Realiza una solicitud a la API de environments.create. En el recurso Entorno, especifica los parámetros de configuración para un entorno con redes autorizadas.

Para especificar redes autorizadas para un entorno de IP privada, haz lo siguiente:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",
  "config": {
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
    },
    "masterAuthorizedNetworksConfig": {
      "enabled": true,
      "cidrBlocks": [
        {
          "displayName": "AUTHORIZED_NETWORK_NAME",
          "cidrBlock": "AUTHORIZED_NETWORK_RANGE"
        }
      ]
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • AUTHORIZED_NETWORK_NAME por el nombre del rango de IP de la red autorizada. Usa este nombre para identificar el bloque. Este campo es opcional.
  • AUTHORIZED_NETWORK_RANGE por un rango de direcciones IP en la notación CIDR. Este rango se agrega como una red autorizada para el clúster de tu entorno.
  • Si deseas usar varios rangos de IP, agrega rangos adicionales a cidrBlocks.

Ejemplo (entorno de IP privada):

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
    },
    "masterAuthorizedNetworksConfig": {
      "enabled": true,
      "cidrBlocks": [
        {
          "displayName": "example_range_1",
          "cidrBlock": "192.0.2.0/23"
        },
        {
          "displayName": "example_range_2",
          "cidrBlock": "192.0.4.0/23"
        }
      ]
    }
  }
}

Terraform

Cuando creas un entorno, el bloque master_authorized_networks_config en el bloque config controla las redes autorizadas para tu entorno.

Para especificar redes autorizadas para un entorno de IP privada, haz lo siguiente:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    private_environment_config {
      // Private environment parameters
    }

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "AUTHORIZED_NETWORK_RANGE"
          display_name = "AUTHORIZED_NETWORK_NAME"
      }

    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • AUTHORIZED_NETWORK_RANGE por un rango de direcciones IP en la notación CIDR. Este rango se agrega como una red autorizada para el clúster de tu entorno.
  • AUTHORIZED_NETWORK_NAME por el nombre del rango de IP de la red autorizada. Usa este nombre para identificar el bloque.
  • Si deseas usar varios rangos de IP, agrega bloques cidr_blocks adicionales a master_authorized_networks_config.

Ejemplo (entorno de IP privada):

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    private_environment_config {
      // Private environment parameters
    }

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "192.0.2.0/23"
          display_name = "example_range_1"
      }

      cidr_blocks {
          cidr_block = "192.0.4.0/23"
          display_name = "example_range_2"
      }
    }
  }
}

Especifica redes autorizadas para un entorno existente

Puedes especificar redes autorizadas para un entorno existente.

gcloud

Para especificar las redes autorizadas, usa el argumento --enable-master-authorized-networks. Luego, proporciona una lista de rangos CIDR separados por comas en el argumento --master-authorized-networks.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --enable-master-authorized-networks \
  --master-authorized-networks AUTHORIZED_NETWORKS_IP_RANGES

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • AUTHORIZED_NETWORKS_IP_RANGES con una lista separada por comas de rangos de direcciones IP en la notación CIDR. Estos rangos se agregan como redes autorizadas para el clúster de tu entorno.

Ejemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --enable-master-authorized-networks \
  --master-authorized-networks 192.0.2.0/23,192.0.4.0/23

API

  1. Realiza una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.softwareConfig.masterAuthorizedNetworksConfig.

    2. En el cuerpo de la solicitud, especifica los rangos de CIDR para las redes autorizadas.

"config": {

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

Reemplaza lo siguiente:

  • AUTHORIZED_NETWORK_NAME por el nombre del rango de IP de la red autorizada. Usa este nombre para identificar el bloque. Este campo es opcional.
  • AUTHORIZED_NETWORK_RANGE por un rango de direcciones IP en la notación CIDR. Este rango se agrega como una red autorizada para el clúster de tu entorno.
  • Si deseas usar varios rangos de IP, agrega rangos adicionales a cidrBlocks.

Ejemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.masterAuthorizedNetworksConfig

"config": {
  "masterAuthorizedNetworksConfig": {
    "enabled": true,
    "cidrBlocks": [
      {
        "displayName": "example_range_1",
        "cidrBlock": "192.0.2.0/23"
      },
      {
        "displayName": "example_range_2",
        "cidrBlock": "192.0.4.0/23"
      }
    ]
  }
}

Terraform

El bloque master_authorized_networks_config en el bloque config controla las redes autorizadas para tu entorno.

Para agregar redes autorizadas para un entorno de IP privada, agrega este bloque a la definición de tu entorno:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example_environment"
  region = "us-central1"

  config {

    // Other environment parameters

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "AUTHORIZED_NETWORK_RANGE"
          display_name = "AUTHORIZED_NETWORK_NAME"
      }

    }
  }
}

Reemplaza lo siguiente:

  • AUTHORIZED_NETWORK_RANGE por un rango de direcciones IP en la notación CIDR. Este rango se agrega como una red autorizada para el clúster de tu entorno.
  • AUTHORIZED_NETWORK_NAME por el nombre del rango de IP de la red autorizada. Usa este nombre para identificar el bloque.
  • Si deseas usar varios rangos de IP, agrega bloques cidr_blocks adicionales a master_authorized_networks_config.

Ejemplo:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    // Other environment parameters

    master_authorized_networks_config {

      enabled = true

      cidr_blocks {
          cidr_block = "192.0.2.0/23"
          display_name = "example_range_1"
      }

      cidr_blocks {
          cidr_block = "192.0.4.0/23"
          display_name = "example_range_2"
      }
    }
  }
}

Inhabilita las redes autorizadas

Puedes inhabilitar las redes autorizadas para un entorno existente:

  • En el caso de los entornos de IP privada, se quita el acceso a los rangos que se agregaron anteriormente como red autorizada.
  • En el caso de los entornos de IP públicas, se quitan las restricciones configuradas anteriormente.

gcloud

Para inhabilitar las redes autorizadas, usa el argumento --disable-master-authorized-networks.

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-master-authorized-networks

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.

Ejemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --disable-master-authorized-networks

API

  1. Realiza una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.softwareConfig.masterAuthorizedNetworksConfig.

    2. En el cuerpo de la solicitud, especifica false en el campo enabled.

"config": {

  "masterAuthorizedNetworksConfig": {
    "enabled": false
  }
}

Ejemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.masterAuthorizedNetworksConfig

"config": {
  "masterAuthorizedNetworksConfig": {
    "enabled": false,
  }
}

Terraform

El bloque master_authorized_networks_config en el bloque config controla las redes autorizadas para tu entorno.

Para inhabilitar las redes autorizadas, establece el campo enabled en el bloque master_authorized_networks_config como false.

Ejemplo:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example_environment"
  region = "us-central1"

  config {

    // Other environment parameters

    master_authorized_networks_config {
      enabled = false
    }
  }
}

¿Qué sigue?