Configura Private Service Connect en Cloud Composer

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica cómo crear un entorno de IP privada que use Private Service Connect en lugar de intercambios de tráfico de VPC.

Para obtener información general sobre la creación de entornos de IP privada, consulta Configura un entorno de IP privada.

Acerca de Private Service Connect en Cloud Composer

Los componentes de tu entorno se distribuyen entre el usuario y el proyecto del cliente. En los entornos de IP privada, los componentes ubicados en estos dos proyectos se conectan mediante intercambios de tráfico de VPC. Los intercambios de tráfico de VPC tienen algunas limitaciones, incluido el límite de la cantidad máxima de intercambios de tráfico en una VPC. Estos límites pueden ser más evidentes si usas redes a gran escala con entornos de Cloud Composer.

Gracias a la compatibilidad con Private Service Connect en Cloud Composer, tus entornos de IP privados se comunican internamente sin usar los intercambios de tráfico entre VPC. Estos entornos usan la IP privada con arquitectura de PSC.

Antes de comenzar

  • La compatibilidad con Private Service Connect solo está disponible en Cloud Composer 2.

  • Solo puedes habilitar Private Service Connect cuando creas un entorno nuevo. No es posible cambiar un entorno existente para usar Private Service Connect.

  • Tu entorno debe ser un entorno de IP privada. Debido a que no se usan los intercambios de tráfico entre VPC, no necesitas especificar los rangos de CIDR para la instancia de Cloud SQL y la red interna de Cloud Composer.

  • Si la restricción de la política de la organización Inhabilitar Private Service Connect para consumidores rechaza los extremos de SERVICE_PRODUCER, no es posible crear entornos con Private Service Connect. Esta política no afecta los entornos existentes de Cloud Composer con PSC. Esos entornos pueden funcionar cuando esta política está habilitada.

Habilita Private Service Connect cuando crees un entorno

Console

Para crear un entorno con Private Service Connect, selecciona el tipo de conectividad Private Service Connect cuando crees un entorno de IP privada. Luego, especifica la subred para la conexión de Private Service Connect.

Cuando creas un entorno de IP privada, sucede lo siguiente:

  1. En la sección Configuración de red, expande el elemento Mostrar configuración de red.

  2. En la sección Tipo de red, selecciona la opción Entorno de IP privado para crear un entorno de IP privado.

  3. En la sección Conectividad de Composer, selecciona Private Service Connect.

  4. En la lista desplegable Composer connection subnetwork, selecciona la subred para los extremos de Private Service Connect.

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Esto te brinda más control sobre el rango de CIDR desde el que se selecciona la dirección IP para el extremo de PSC.Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una dirección IP.

  5. Especifica otros parámetros para tu entorno de IP privada.

gcloud

Para crear un entorno con Private Service Connect, usa el argumento --connection-subnetwork cuando crees un entorno de IP privada. Luego, especifica la subred para la conexión de Private Service Connect.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • ENVIRONMENT_PSC_SUBNETWORK por el URI de la subred para los extremos de Private Service Connect

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Esto te brinda más control sobre el rango de CIDR desde el que se selecciona la dirección IP para el extremo de PSC. Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una dirección IP.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"

API

Realiza una solicitud a la API de environments.create. En el recurso Entorno, especifica los parámetros de configuración para la conexión de Private Service Connect.

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

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.6.6-airflow-2.6.3"
    },
    "nodeConfig": {
      "network": "ENVIRONMENT_NETWORK",
      "subnetwork": "ENVIRONMENT_SUBNETWORK"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "ENVIRONMENT_PSC_SUBNETWORK"
    }
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "0.0.0.0/0",
          "description": "Allows access from all IPv4 addresses"
        },
        {
          "value": "::0/0",
          "description": "Allows access from all IPv6 addresses"
        }
      ]
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • ENVIRONMENT_NETWORK por el URI de la red de tu entorno
  • ENVIRONMENT_SUBNETWORK por el URI de la subred de tu entorno
  • ENVIRONMENT_PSC_SUBNETWORK por el URI de la subred para los extremos de PSC

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Esto te brinda más control sobre el rango de CIDR desde el que se selecciona la dirección IP para el extremo de PSC. Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una dirección IP.

Ejemplo:

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

{
  "name": "example-environment",
  "config": {

    "softwareConfig": {
      "imageVersion": "composer-2.6.6-airflow-2.6.3"
    },
    "nodeConfig": {
      "network": "projects/example-project/global/networks/default",
      "subnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
    }
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "0.0.0.0/0",
          "description": "Allows access from all IPv4 addresses"
        },
        {
          "value": "::0/0",
          "description": "Allows access from all IPv6 addresses"
        }
      ]
    }
  }
}

Terraform

Cuando creas un entorno, el campo cloud_composer_connection_subnetwork en el bloque private_environment_config habilita Private Service Connect.

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

  config {

    software_config {
      image_version = "composer-2.6.6-airflow-2.6.3"
    }

    node_config {
      network = "ENVIRONMENT_NETWORK"
      subnetwork = "ENVIRONMENT_SUBNETWORK"

    }

    private_environment_config {
      // Other private IP environment parameters
      cloud_composer_connection_subnetwork = "ENVIRONMENT_PSC_SUBNETWORK"
    }

    web_server_network_access_control  {
      allowed_ip_range {
        value = "0.0.0.0/0"
        description = "Allows access from all IPv4 addresses"
      }

      allowed_ip_range {
        value = "::0/0"
        description = "Allows access from all IPv6 addresses"
      }
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • ENVIRONMENT_NETWORK por el URI de la red de tu entorno
  • ENVIRONMENT_SUBNETWORK por el URI de la subred de tu entorno
  • ENVIRONMENT_PSC_SUBNETWORK por el URI de la subred para los extremos de PSC

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Esto te brinda más control sobre el rango de CIDR desde el que se selecciona la dirección IP para el extremo de PSC. Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una dirección IP.

Ejemplo:

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

  config {
    environment_size = "ENVIRONMENT_SIZE_SMALL"

    software_config {
      image_version = "composer-2.6.6-airflow-2.6.3"
    }

    node_config {
      network = "projects/example-project/global/networks/default"
      subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

    private_environment_config {
      // Other private IP environment parameters
      enable_private_endpoint = "true"
      cloud_composer_connection_subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

    web_server_network_access_control  {
      allowed_ip_range {
        value = "0.0.0.0/0"
        description = "Allows access from all IPv4 addresses"
      }

      allowed_ip_range {
        value = "::0/0"
        description = "Allows access from all IPv6 addresses"
      }
    }
 }
}

¿Qué sigue?