Configurer Private Service Connect dans Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment créer un environnement d'adresse IP privée qui utilise Private Service Connect au lieu des appairages de VPC.

Pour obtenir des informations générales sur la création d'environnements d'adresse IP privée, consultez la page Configurer un environnement d'adresse IP privée.

À propos de Private Service Connect dans Cloud Composer

Les composants de votre environnement sont répartis entre le locataire et le projet client. Dans les environnements d'adresse IP privée, les composants situés dans ces deux projets se connectent à l'aide d'appairages VPC. Les appairages VPC présentent certaines limites, y compris une limite de nombre maximal d'appairages dans un VPC. Ces limites peuvent devenir plus évidentes si vous utilisez des réseaux à grande échelle avec des environnements Cloud Composer.

Avec la compatibilité avec Private Service Connect, dans Cloud Composer, vos environnements IP privés communiquent en interne sans utiliser d'appairage de VPC. Ces environnements utilisent Adresse IP privée avec architecture PSC.

Avant de commencer

  • Private Service Connect n'est disponible que dans Cloud Composer 2.

  • Vous ne pouvez activer Private Service Connect que lorsque vous créez un environnement. Vous ne pouvez pas passer d'un environnement existant à Private Service Connect.

  • Votre environnement doit être un environnement d'adresse IP privée. Comme les appairages VPC ne sont pas utilisés, il n'est pas nécessaire de spécifier plages CIDR de l'instance Cloud SQL et de l'instance sur le réseau Cloud Composer.

  • Si l'option Désactiver Private Service Connect pour les clients contrainte de règle d'administration refuse SERVICE_PRODUCER, il est impossible de créer des environnements avec Private Service Connect Cette règle n'affecte pas aux environnements Cloud Composer existants avec PSC. De tels environnements peuvent fonctionner lorsque cette règle est activée.

Activer Private Service Connect lorsque vous créez un environnement

Console

Pour créer un environnement avec Private Service Connect, procédez comme suit : sélectionnez le type de connectivité Private Service Connect lorsque vous créez Environnement IP privé. Spécifiez ensuite le sous-réseau Connexion Private Service Connect.

Lorsque vous créez un environnement d'adresse IP privée:

  1. Dans la section Configuration du réseau, développez l'élément Afficher la configuration réseau.

  2. Dans la section Type de réseau, sélectionnez l'option Environnement d'adresse IP privée pour créer un environnement d'adresse IP privée.

  3. Dans la section Connectivité de Composer sélectionnez Private Service Connect.

  4. Dans la liste déroulante Composer connection subnetwork (Sous-réseau de connexion de Composer), sélectionnez le pour les points de terminaison Private Service Connect.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Cela vous permet de mieux contrôler la plage CIDR dans laquelle l'adresse IP du point de terminaison PSC est sélectionnée. Cette plage peut être partagée par plusieurs environnements Cloud Composer. Chaque environnement nécessite une adresse IP.

  5. Spécifiez d'autres paramètres pour votre environnement IP privé.

gcloud

Pour créer un environnement avec Private Service Connect, utilisez l'argument --connection-subnetwork lorsque vous créez un environnement d'adresse IP privée. Spécifiez ensuite le sous-réseau pour la connexion Private Service Connect.

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • ENVIRONMENT_PSC_SUBNETWORK par l'URI du sous-réseau pour points de terminaison Private Service Connect.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Procéder à cette opération vous donne plus de contrôle sur la plage CIDR à partir de laquelle l'adresse IP le point de terminaison PSC sont sélectionnés. Cette plage peut être partagée par plusieurs Environnements Cloud Composer. Chaque environnement nécessite une adresse IP.

Exemple :

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

API

Rédigez une requête API environments.create. Dans la ressource Environment, spécifiez les paramètres de configuration de la connexion Private Service Connect.

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

{
  "name": "ENVIRONMENT_NAME",

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • ENVIRONMENT_NETWORK par l'URI du réseau de votre environnement.
  • ENVIRONMENT_SUBNETWORK par l'URI du sous-réseau de votre environnement.
  • ENVIRONMENT_PSC_SUBNETWORK par l'URI du sous-réseau des points de terminaison PSC.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Procéder à cette opération vous donne plus de contrôle sur la plage CIDR à partir de laquelle l'adresse IP le point de terminaison PSC est sélectionné. Cette plage peut être partagée par plusieurs Environnements Cloud Composer. Chaque environnement nécessite une adresse IP adresse e-mail.

Exemple :

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

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

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

Lorsque vous créez un environnement, la classe cloud_composer_connection_subnetwork dans le bloc private_environment_config active 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.5-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"
      }
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • ENVIRONMENT_NETWORK par l'URI du réseau de votre environnement.
  • ENVIRONMENT_SUBNETWORK par l'URI du sous-réseau de votre environnement.
  • ENVIRONMENT_PSC_SUBNETWORK par l'URI du sous-réseau des points de terminaison PSC.

    Vous pouvez utiliser le sous-réseau de votre environnement.

    Vous pouvez également spécifier un sous-réseau différent. Procéder à cette opération vous donne plus de contrôle sur la plage CIDR à partir de laquelle l'adresse IP le point de terminaison PSC est sélectionné. Cette plage peut être partagée par plusieurs Environnements Cloud Composer. Chaque environnement nécessite une adresse IP adresse e-mail.

Exemple :

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

Étape suivante