Configurar o Private Service Connect no Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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 do Private Service Connect no Cloud Composer, seus ambientes de IP privado se comunicam internamente sem usar peerings de VPC. Esses ambientes usam o IP particular com 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 é preciso especificar os intervalos CIDR para a instância do Cloud SQL e os intervalos rede do Cloud Composer.

  • Se a caixa de diálogo Desativar o Private Service Connect for Consumers restrição da política da organização nega SERVICE_PRODUCER, não é possível criar ambientes com Private Service Connect. Esta política não afeta ambientes atuais do Cloud Composer com o PSC. Esses ambientes podem operar quando esta política estiver 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 Ambiente de IP particular. Em seguida, especifique a sub-rede da Private Service Connect.

Ao criar um ambiente de IP privado:

  1. Na seção Configuração de rede, expanda no 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. Em Conectividade do Composer selecione Private Service Connect.

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

    Você pode usar a sub-rede do seu 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.8.6-airflow-2.7.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 da endpoints do Private Service Connect.

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

    Como alternativa, especifique uma sub-rede diferente. Ao fazer isso oferece mais controle sobre o intervalo CIDR do qual o endereço IP endpoint do PSC são selecionados. 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.8.6-airflow-2.7.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.8.6-airflow-2.7.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.8.6-airflow-2.7.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

Quando você cria um ambiente, o cloud_composer_connection_subnetwork no bloco private_environment_config ativa Private Service Connect.

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

  config {

    software_config {
      image_version = "composer-2.8.6-airflow-2.7.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.8.6-airflow-2.7.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