Connecter un environnement à un réseau VPC

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment votre environnement peut accéder à un réseau VPC dans Cloud Composer 3, fournit des instructions pour connecter un environnement à un réseau VPC et explique comment désactiver une connexion précédemment configurée.

À propos de l'accès au réseau VPC

Dans Cloud Composer 3, vous pouvez activer l'accès à un réseau VPC pour un environnement.

Si vous activez l'accès à un réseau VPC pour un environnement:

  • Les composants Airflow de votre environnement peuvent accéder aux points de terminaison du réseau privé dans votre réseau VPC. Par exemple, votre code DAG peut accéder aux ressources situées sur votre réseau VPC via une connexion Airflow configurée.

  • Si votre environnement utilise un réseau IP privé, tout le trafic interne, à l'exception du trafic vers l'API Google Services, est acheminé vers votre réseau VPC.

  • Selon la configuration de votre réseau VPC, un environnement d'adresse IP privée peut accéder à Internet via votre réseau VPC.

  • Quel que soit l'état de l'accès au réseau VPC, l'accès aux API des services Google est toujours possible.

  • Les zones DNS privées définies dans votre réseau VPC sont automatiquement disponibles pour les composants Airflow de votre environnement.

  • L'environnement réserve deux adresses IP dans votre sous-réseau VPC.

Cloud Composer utilise un rattachement de réseau pour connecter votre environnement à un réseau VPC:

  • Si vous spécifiez un réseau VPC et un sous-réseau, Cloud Composer crée un rattachement de réseau dans votre projet. Ce rattachement est supprimé une fois que vous avez supprimé un environnement, désactivé la connexion à un réseau VPC ou écrasé les paramètres de connexion VPC.

  • Si vous spécifiez un rattachement de réseau existant, celui-ci doit se trouver dans le même projet que celui de l'environnement. Ce rattachement n'est pas supprimé lorsque vous supprimez un environnement, désactivez la connexion ou écrasez les paramètres de connexion VPC.

  • Dans la mise en réseau VPC partagé:

    • Assurez-vous d'avoir configuré la mise en réseau VPC partagé pour Cloud Composer. Pour en savoir plus sur la configuration des projets et des autorisations pour Cloud Composer, consultez la page Configurer un VPC partagé.

    • Une fois la mise en réseau VPC partagé configurée, vous pouvez connecter votre environnement à un réseau VPC à partir du projet hôte. Si vous utilisez un rattachement de réseau existant, celui-ci doit être créé dans le projet de service (où se trouve l'environnement) et associé à un réseau VPC partagé.

À propos de la plage d'adresses IP internes de l'environnement

Les environnements Cloud Composer 3 nécessitent plusieurs adresses IP pour ses composants qui s'exécutent dans le projet locataire, tels que le cluster de votre environnement et le proxy Cloud SQL. Ces adresses IP sont extraites de la plage d'adresses IP internes de l'environnement.

  • La plage d'adresses IP internes par défaut est 100.64.128.0/20.

  • Vous pouvez spécifier une autre plage d'adresses IP internes lorsque vous créez un environnement. Cette plage doit utiliser un masque /20.

  • Vous ne pouvez pas modifier la plage d'adresses IP internes d'un environnement existant.

La plage d'adresses IP internes interagit avec votre réseau VPC de la manière suivante:

  • La plage d'adresses IP internes ne doit pas entrer en conflit avec le sous-réseau VPC auquel l'environnement Cloud Composer est connecté. Il n'est pas possible d'activer une connexion avec un sous-réseau VPC qui chevauche la plage d'adresses IP internes.

  • Si la plage d'adresses IP internes d'un environnement chevauche les plages de votre réseau VPC, les points de terminaison de votre réseau VPC dont les adresses IP se chevauchent ne sont pas accessibles depuis l'environnement.

    Par exemple, si la plage interne est 100.64.128.0/20, toute requête adressée au point de terminaison 100.64.128.1 de votre réseau VPC échoue, car la requête ne quitte pas le projet locataire.

  • La plage d'adresses IP internes n'est pas réservée. Vous pouvez utiliser la même plage d'adresses IP internes pour plusieurs environnements sans configuration supplémentaire, car les réseaux VPC internes utilisés par les différents environnements sont séparés.

  • Vous pouvez utiliser les adresses IP de la plage interne à d'autres fins, à condition que les DAG et les tâches de votre environnement ne leur envoient pas de requêtes.

Se connecter à un réseau VPC

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans la section Configuration du réseau, recherchez l'élément Rattachement de réseau, puis cliquez sur Modifier.

  5. Dans la boîte de dialogue Rattachement de réseau:

    • Pour créer un rattachement de réseau, sélectionnez Créer un rattachement de réseau dans la liste Rattachement de réseau. Dans les listes Réseau et Sous-réseau, sélectionnez un réseau VPC et un sous-réseau.

    • Pour utiliser un rattachement de réseau existant, sélectionnez un rattachement dans la liste Rattachement de réseau.

  6. Cliquez sur Enregistrer.

gcloud

Les arguments de Google Cloud CLI suivants spécifient les paramètres de connexion réseau VPC:

  • --network: ID de réseau VPC.
  • --subnetwork: ID du sous-réseau VPC.
  • --network-attachment: utilisez un rattachement de réseau existant à la place.

Nouveau rattachement de réseau

Pour connecter votre environnement à un réseau VPC via un nouveau rattachement de réseau, exécutez la commande Google Cloud CLI suivante:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --network NETWORK_ID \
  --subnetwork SUBNETWORK_ID

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME: nom de l'environnement
  • LOCATION: région où se trouve l'environnement
  • NETWORK_ID: ID du réseau VPC
  • SUBNETWORK_ID: ID du sous-réseau VPC

Exemple :

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --network projects/example-project/global/networks/example-network \
  --subnetwork projects/example-project/regions/us-central1/subnetworks/example-subnetwork

Rattachement de réseau existant

Pour connecter votre environnement à un réseau VPC via un nouveau rattachement de réseau, exécutez la commande Google Cloud CLI suivante:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --network-attachment NETWORK_ATTACHMENT_ID

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME: nom de l'environnement
  • LOCATION: région où se trouve l'environnement
  • NETWORK_ATTACHMENT_ID: rattachement de réseau au format projects/{project}/regions/{region}/networkAttachments/{networkAttachment}.

Exemple :

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --network-attachment projects/example-project/regions/us-central1/networkAttachments/example-network-attachment

API

  1. Créez une requête API environments.patch.

  2. Dans cette requête :

    • Pour créer un rattachement de réseau:

      1. Dans le paramètre updateMask, spécifiez le masque config.node_config.network,config.node_config.subnetwork.

      2. Dans le corps de la requête, spécifiez les ID de votre réseau VPC et de votre sous-réseau dans les champs network et subnetwork.

    • Pour utiliser un rattachement de réseau existant:

      1. Dans le paramètre updateMask, spécifiez le masque config.node_config.composer_network_attachment.

      2. Dans le corps de la requête, indiquez une valeur au format projects/{project}/regions/{region}/networkAttachments/{networkAttachment} pour le rattachement de réseau existant.

Exemple (nouveau rattachement de réseau):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork

"config": {
  "nodeConfig": {
    "network": "projects/example-project/global/networks/example-network",
    "subnetwork": "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
  }
}

Exemple (rattachement de réseau existant):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.composer_network_attachment

"config": {
  "nodeConfig": {
    "composerNetworkAttachment": "projects/example-project/regions/us-central1/networkAttachments/example-network-attachment"
  }
}

Terraform

Les champs suivants du bloc node_config spécifient les paramètres de connexion au réseau VPC:

  • network: ID de réseau VPC.
  • subnetwork: ID du sous-réseau VPC.
  • composer_network_attachment: utilisez un rattachement de réseau existant à la place.

Nouveau rattachement de réseau

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

  config {

    node_config {
      network = NETWORK_ID
      subnetwork = SUBNETWORK_ID
    }

  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.
  • NETWORK_ID: ID du réseau VPC
  • SUBNETWORK_ID: ID du sous-réseau VPC

Exemple (nouveau rattachement de réseau):

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

  config {

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

    ... other configuration parameters
  }
}

Rattachement de réseau existant

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

  config {

    node_config {
      composer_network_attachment = NETWORK_ATTACHMENT_ID
    }

  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.
  • NETWORK_ATTACHMENT_ID: ID du rattachement de réseau.

Exemple (rattachement de réseau existant):

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

  config {

    node_config {
      composer_network_attachment = projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
    }

    ... other configuration parameters
  }
}

Désactiver la connexion à un réseau VPC

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans la section Configuration du réseau, recherchez l'élément Rattachement de réseau, puis cliquez sur Modifier.

  5. Dans la boîte de dialogue Rattachement de réseau, sélectionnez Aucun, puis cliquez sur Enregistrer.

gcloud

Les arguments --disable-vpc-connectivity désactivent la connexion au réseau VPC de votre environnement:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-vpc-connectivity

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME: nom de l'environnement
  • LOCATION: région où se trouve l'environnement

Exemple :

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --disable-vpc-connectivity

API

  1. Créez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.node_config.network,config.node_config.subnetwork.

    2. Dans le corps de la requête, spécifiez des valeurs vides dans les champs network et subnetwork.

Exemple :

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork

"config": {
  "nodeConfig": {
    "network": "",
    "subnetwork": ""
  }
}

Terraform

Il n'est pas possible de dissocier un réseau VPC à l'aide de Terraform. À la place, vous pouvez associer un autre réseau VPC à la place ou dissocier le réseau à l'aide d'autres outils tels que Google Cloud CLI.

Étapes suivantes