Configurar o Private Service Connect no Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Nesta página, explicamos como criar um ambiente de IP particular que usa o Private Service Connect em vez de peerings de VPC.

Para informações gerais sobre como criar ambientes de IP particular, consulte Configurar um ambiente de IP particular.

Sobre o Private Service Connect no Cloud Composer

Os componentes do ambiente são distribuídos entre o locatário e o projeto do cliente. Em ambientes de IP particular, os componentes localizados nesses dois projetos se conectam usando peerings VPC. Os peerings de VPC têm algumas limitações, incluindo o limite de número máximo de peerings em uma VPC. Esses limites podem se tornar mais evidentes se você usa redes de grande escala com ambientes do Cloud Composer.

Com o suporte ao Private Service Connect no Cloud Composer, os ambientes de IP privado se comunicam internamente sem o uso de peerings de VPC. Esses ambientes usam o IP privado com a arquitetura PSC.

Antes de começar

  • O suporte do Private Service Connect está disponível apenas no Cloud Composer 2.

  • Só é possível ativar o Private Service Connect quando você cria um novo ambiente. Não é possível alternar um ambiente existente para usar o Private Service Connect.

  • Seu ambiente precisa ser um ambiente de IP particular. Como os peerings de VPC não são usados, não é necessário especificar os intervalos CIDR para a instância do Cloud SQL e a rede interna do Cloud Composer.

  • Se a restrição da política da organização Desativar o Private Service Connect para consumidores nega os endpoints do SERVICE_PRODUCER, não é possível criar ambientes com o Private Service Connect. Essa política não afeta os ambientes atuais do Cloud Composer com PSC. Esses ambientes podem funcionar quando a política está ativada.

Ativar o Private Service Connect ao criar um ambiente

Console

Para criar um ambiente com o Private Service Connect, selecione o tipo de conectividade Private Service Connect ao criar um ambiente de IP particular. Em seguida, especifique a sub-rede para a conexão do Private Service Connect.

Ao criar um ambiente de IP privado:

  1. Na seção Configuração de rede, expanda o item Mostrar configuração de rede.

  2. Na seção Tipo de rede, selecione a opção Ambiente de IP particular para criar um ambiente de IP particular.

  3. Na seção Conectividade do Composer, selecione Private Service Connect.

  4. Na lista suspensa Sub-rede de conexão do Composer, selecione a sub-rede para os endpoints do Private Service Connect.

    É possível usar a sub-rede do ambiente.

    Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado.Esse intervalo pode ser compartilhado por vários ambientes do Cloud Composer. Cada ambiente exige um endereço IP.

  5. Especifique outros parâmetros para seu ambiente de IP privado.

gcloud

Para criar um ambiente com o Private Service Connect, use o argumento --connection-subnetwork ao criar um ambiente de IP particular. Em seguida, especifique a sub-rede para a conexão do Private Service Connect.

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

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • LOCATION pela região em que o ambiente está localizado;
  • ENVIRONMENT_PSC_SUBNETWORK pelo URI da sub-rede para os endpoints do Private Service Connect.

    É possível usar a sub-rede do ambiente.

    Como alternativa, especifique uma sub-rede diferente. Isso oferece mais controle sobre o intervalo CIDR de onde o endereço IP do endpoint do PSC é selecionado. Esse intervalo pode ser compartilhado por vários ambientes do Cloud Composer. Cada ambiente exige um endereço IP.

Exemplo:

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

API

Crie uma solicitação de API environments.create. No recurso Ambiente, especifique os parâmetros de configuração da conexão do Private Service Connect.

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

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.5.2-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"
        }
      ]
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • ENVIRONMENT_NETWORK pelo URI da rede do ambiente.
  • ENVIRONMENT_SUBNETWORK pelo URI da sub-rede do ambiente;
  • ENVIRONMENT_PSC_SUBNETWORK pelo URI da sub-rede para endpoints de PSC;

    É possível usar a sub-rede do ambiente.

    Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado. Esse intervalo pode ser compartilhado por vários ambientes do Cloud Composer. Cada ambiente requer um endereço IP.

Exemplo:

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

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

    "softwareConfig": {
      "imageVersion": "composer-2.5.2-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

Ao criar um ambiente, o campo cloud_composer_connection_subnetwork no bloco private_environment_config ativa o Private Service Connect.

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

  config {

    software_config {
      image_version = "composer-2.5.2-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"
      }
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • ENVIRONMENT_NETWORK pelo URI da rede do ambiente.
  • ENVIRONMENT_SUBNETWORK pelo URI da sub-rede do ambiente;
  • ENVIRONMENT_PSC_SUBNETWORK pelo URI da sub-rede para endpoints de PSC;

    É possível usar a sub-rede do ambiente.

    Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado. Esse intervalo pode ser compartilhado por vários ambientes do Cloud Composer. Cada ambiente requer um endereço IP.

Exemplo:

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.5.2-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"
      }
    }
 }
}

A seguir