Configurar redes autorizadas en Cloud Composer

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

Información sobre las redes autorizadas en Cloud Composer

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

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

Redes autorizadas en entornos de IP pública y privada

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

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

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

Antes de empezar

Crear entornos con redes autorizadas

gcloud

Para crear un entorno con redes autorizadas, usa el argumento --enable-master-authorized-networks al crear un entorno. A continuación, proporcione una lista separada por comas de intervalos CIDR en el argumento --master-authorized-networks.

Para especificar redes autorizadas en un entorno de IP privada, sigue estos pasos:

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

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • AUTHORIZED_NETWORKS_IP_RANGES con una lista de intervalos de direcciones IP separados por comas en notación CIDR. Estos intervalos se añaden como redes autorizadas al clúster de tu entorno.

Ejemplo (entorno de IP privada):

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --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

Crea una solicitud de la API environments.create. En el recurso Environment, especifique los parámetros de configuración de un entorno con redes autorizadas.

Para especificar redes autorizadas en 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"
        }
      ]
    }
  }
}

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • AUTHORIZED_NETWORK_NAME con el nombre de la red autorizada intervalo de IPs. Este nombre te servirá para identificar el bloque. Este campo es opcional.
  • AUTHORIZED_NETWORK_RANGE con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como red autorizada al clúster de tu entorno.
  • Si quieres usar varios intervalos de IPs, añade intervalos 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 del bloque config controla las redes autorizadas de tu entorno.

Para especificar redes autorizadas en 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"
      }

    }
  }
}

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • AUTHORIZED_NETWORK_RANGE con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como red autorizada al clúster de tu entorno.
  • AUTHORIZED_NETWORK_NAME con el nombre de la red autorizada intervalo de IPs. Este nombre te servirá para identificar el bloque.
  • Si quieres usar varios intervalos de IP, añade 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"
      }
    }
  }
}

Especificar redes autorizadas en un entorno

Puedes especificar redes autorizadas para un entorno que ya tengas.

gcloud

Para especificar las redes autorizadas, usa el argumento --enable-master-authorized-networks. A continuación, proporcione una lista separada por comas de intervalos 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

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • AUTHORIZED_NETWORKS_IP_RANGES con una lista de intervalos de direcciones IP separados por comas en notación CIDR. Estos intervalos se añaden como redes autorizadas al 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. Crea una solicitud de la API environments.patch.

  2. En esta solicitud:

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

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

"config": {

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

Sustituye:

  • AUTHORIZED_NETWORK_NAME con el nombre de la red autorizada intervalo de IPs. Este nombre te servirá para identificar el bloque. Este campo es opcional.
  • AUTHORIZED_NETWORK_RANGE con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como red autorizada al clúster de tu entorno.
  • Si quieres usar varios intervalos de IPs, añade intervalos 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 del bloque config controla las redes autorizadas de tu entorno.

Para añadir redes autorizadas a un entorno de IP privada, añade este bloque a la definición del 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"
      }

    }
  }
}

Sustituye:

  • AUTHORIZED_NETWORK_RANGE con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como red autorizada al clúster de tu entorno.
  • AUTHORIZED_NETWORK_NAME con el nombre de la red autorizada intervalo de IPs. Este nombre te servirá para identificar el bloque.
  • Si quieres usar varios intervalos de IP, añade 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"
      }
    }
  }
}

Inhabilitar redes autorizadas

Para inhabilitar las redes autorizadas de un entorno, sigue estos pasos:

  • En los entornos de IP privada, se elimina el acceso a los intervalos que se habían añadido anteriormente como redes autorizadas.
  • En los entornos de IP pública, se eliminan 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

Sustituye:

  • ENVIRONMENT_NAME con 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. Crea una solicitud de la API environments.patch.

  2. En esta solicitud:

    1. En el parámetro updateMask, especifique 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 del bloque config controla las redes autorizadas de tu entorno.

Para inhabilitar las redes autorizadas, asigna el valor false al campo enabled del bloque 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 = false
    }
  }
}

Siguientes pasos