Configura redes autorizadas en Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

Acerca de las redes autorizadas en Cloud Composer

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

Por ejemplo, en Cloud Composer 2, ese acceso al clúster de tu entorno en los entornos de IP privada para ejecutar comandos de kubectl en tu en el clúster del entorno. Las redes desde las que se originen estas solicitudes deben tener autorización para acceder al plano de control del clúster de tu entorno.

Redes autorizadas en entornos de IP privadas y públicas

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

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

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

Antes de comenzar

Crear entornos con redes autorizadas

gcloud

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

A fin de especificar redes autorizadas para un entorno de IP privada, sigue estos pasos:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.8.5-airflow-2.7.3 \
    --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 ubicado.
  • AUTHORIZED_NETWORKS_IP_RANGES por una lista de direcciones IP separadas por comas en la notación CIDR. Estos rangos se agregan como autorizados redes 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.8.5-airflow-2.7.3 \
    --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 Environment, especifica la parámetros de configuración para un entorno con redes autorizadas.

A fin de especificar redes autorizadas para un entorno de IP privada, sigue estos pasos:

// 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 de la IP de la red autorizada del rango de destino de la ruta. Usarás este nombre para identificar este bloque. Este campo es opcional.
  • AUTHORIZED_NETWORK_RANGE por una dirección IP en la notación CIDR. Este rango se agrega como un rango redes para el clúster de tu entorno.
  • Si quieres 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, master_authorized_networks_config en el bloque config controla las redes autorizadas para tu en un entorno de nube.

A fin de especificar redes autorizadas para un entorno de IP privada, sigue estos pasos:

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 ubicado.
  • AUTHORIZED_NETWORK_RANGE por una dirección IP en la notación CIDR. Este rango se agrega como un rango redes para el clúster de tu entorno.
  • AUTHORIZED_NETWORK_NAME por el nombre de la IP de la red autorizada del rango de destino de la ruta. Usarás este nombre para identificar este bloque.
  • Si quieres usar varios rangos de IP, agrega bloques cidr_blocks adicionales a 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"
      }
    }
  }
}

Especificar redes autorizadas para un entorno existente

Puedes especificar redes autorizadas para un entorno existente.

gcloud

Para especificar redes autorizadas, usa el --enable-master-authorized-networks argumento. Luego, proporciona una lista separada por comas de los rangos de CIDR 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 ubicado.
  • AUTHORIZED_NETWORKS_IP_RANGES por una lista de direcciones IP separadas por comas en la notación CIDR. Estos rangos se agregan como autorizados redes 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 de la IP de la red autorizada del rango de destino de la ruta. Usarás este nombre para identificar este bloque. Este campo es opcional.
  • AUTHORIZED_NETWORK_RANGE por una dirección IP en la notación CIDR. Este rango se agrega como un rango red para el clúster de tu entorno.
  • Si quieres 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 los controles de bloque config redes autorizadas para tu entorno.

Para agregar redes autorizadas a un entorno de IP privada, agrega este bloque a tu definición de 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 una dirección IP en la notación CIDR. Este rango se agrega como un rango redes para el clúster de tu entorno.
  • AUTHORIZED_NETWORK_NAME por el nombre de la IP de la red autorizada del rango de destino de la ruta. Usarás este nombre para identificar este bloque.
  • Si quieres usar varios rangos de IP, agrega bloques cidr_blocks adicionales a 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 los entornos de IP privada, esto quita el acceso a los rangos agregada anteriormente como red autorizada.
  • Para los entornos de IP públicas, esto quita las restricciones configuradas previamente.

gcloud

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

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 ubicado.

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 los controles de bloque config redes autorizadas para tu entorno.

Para inhabilitar las redes autorizadas, establece el campo enabled en el bloque master_authorized_networks_config a 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?