Spécifier votre réseau et sous-réseau

Cette page explique comment spécifier un réseau et un sous-réseau lorsque vous exécutez des tâches Cloud Dataflow.

VPC et VPC partagé

Un réseau VPC, parfois simplement appelé réseau, assure la connectivité des ressources d'un projet. Pour en savoir plus sur les réseaux VPC, consultez la présentation des réseaux VPC.

Un réseau VPC partagé est un réseau existant dans un projet distinct, appelé projet hôte, au sein de votre organisation. Si un administrateur de VPC partagé vous a accordé le rôle d'administrateur de projet de service, vous êtes autorisé à utiliser au moins certains des sous-réseaux situés dans les réseaux du projet hôte. Reportez-vous à la section Présentation du VPC partagé pour obtenir des informations générales sur le VPC partagé.

VPC Service Controls

Les outils VPC Service Controls de Cloud Dataflow offrent une sécurité supplémentaire pour les ressources et services de votre pipeline. Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls.

Pour en savoir plus sur les limites liées à l'utilisation de Cloud Dataflow avec VPC Service Controls, consultez la page produits compatibles et limites.

Spécifier un réseau et un sous-réseau

Lorsque vous créez une tâche Cloud Dataflow, vous pouvez spécifier un réseau ou un sous-réseau. Les sections suivantes décrivent quand utiliser chaque paramètre.

Si vous omettez les paramètres de sous-réseau et de réseau, GCP part du principe que vous avez l'intention d'utiliser un réseau VPC en mode automatique portant le nom default. Si vous omettez les paramètres de sous-réseau et de réseau et qu'il n'existe pas de réseau nommé default dans votre projet, une erreur vous sera renvoyée.

Remarque : Si vous ne savez pas quel paramètre utiliser, spécifiez uniquement le paramètre de sous-réseau. Le paramètre réseau sera spécifié implicitement pour vous.

Paramètre de réseau

Vous pouvez utiliser le paramètre network pour spécifier un réseau en mode automatique dans votre projet.

Vous pouvez également utiliser le paramètre réseau pour sélectionner un réseau VPC partagé uniquement si les deux conditions suivantes sont remplies :

  • Le réseau VPC partagé que vous sélectionnez est un réseau en mode automatique.
  • Vous êtes administrateur du projet de service disposant d'autorisations au niveau du projet pour l'ensemble du projet hôte de VPC partagé. Cela signifie qu'un administrateur VPC partagé vous a attribué le rôle d'utilisateur de réseau pour l'ensemble du projet hôte, vous permettant ainsi d'utiliser tous ses réseaux et sous-réseaux.

Dans tous les autres cas, vous devez spécifier un sous-réseau.

Paramètre de sous-réseau

Si vous devez sélectionner un sous-réseau spécifique dans un réseau, spécifiez le paramètre subnetwork. Vous devez sélectionner un sous-réseau situé dans la même région que la zone dans laquelle vous exécutez votre tâche Cloud Dataflow. Par exemple, vous devez spécifier le paramètre de sous-réseau dans les situations suivantes :

  • Le sous-réseau dont vous avez besoin se trouve dans un réseau en mode personnalisé.
  • Vous êtes un administrateur de projet de service doté d'autorisations au niveau du sous-réseau pour un sous-réseau spécifique dans un projet hôte de VPC partagé.

Vous pouvez spécifier un sous-réseau à l'aide d'une URL complète ou d'un chemin d'accès abrégé. Si le sous-réseau est situé sur un réseau VPC partagé, vous devez utiliser l'URL complète.

  • URL complète :
    https://www.googleapis.com/compute/v1/projects/<HOST_PROJECT>/regions/<REGION>/subnetworks/<SUBNETWORK>
  • Version abrégée :
    regions/<REGION>/subnetworks/<SUBNETWORK>

Si vous spécifiez un sous-réseau (subnetwork), Cloud Dataflow choisit le réseau (network) pour vous. Par conséquent, lorsque vous spécifiez un subnetwork, vous pouvez omettre le paramètre network.

Paramètre d'adresse IP publique

Le paramètre d'adresse IP publique indique au service Cloud Dataflow s'il faut attribuer des adresses IP publiques aux nœuds de calcul Cloud Dataflow. Par défaut, le service Cloud Dataflow attribue aux nœuds de calcul des adresses IP publiques et privées. Lorsque vous désactivez des adresses IP publiques, le pipeline Cloud Dataflow peut accéder aux ressources uniquement aux emplacements suivants :

Lorsque les adresses IP publiques sont désactivées, vous pouvez toujours effectuer des tâches d'administration et de surveillance. Vous pouvez accéder à vos nœuds de calcul à l'aide de SSH grâce aux options répertoriées ci-dessus. Toutefois, le pipeline ne peut accéder ni à Internet ni aux autres réseaux GCP, et les hôtes Internet ne peuvent pas accéder à vos nœuds de calcul Cloud Dataflow.

La désactivation des adresses IP publiques vous permet de mieux sécuriser votre infrastructure de traitement de données. En n'utilisant pas les adresses IP publiques pour vos nœuds de calcul Cloud Dataflow, vous réduisez également le nombre d'adresses IP publiques que vous consommez par rapport au quota de votre projet GCP.

JAVA

Pour désactiver les adresses IP publiques :

  1. Activez Accès privé à Google pour votre réseau ou votre sous-réseau.
  2. Dans les paramètres de votre tâche Cloud Dataflow, spécifiez --usePublicIps=false, ainsi que --network=[NETWORK] ou --subnetwork=[SUBNETWORK].

PYTHON

Pour désactiver les adresses IP publiques :

  1. Suivez les instructions de dépendance du pipeline Apache Beam pour mettre en scène toutes les dépendances du package Python.
  2. Activez Accès privé à Google pour votre réseau ou votre sous-réseau.
  3. Dans les paramètres de votre tâche Cloud Dataflow, spécifiez --no_use_public_ips, ainsi que --network=[NETWORK] ou --subnetwork=[SUBNETWORK].

Exécuter votre pipeline avec le réseau et le sous-réseau spécifié

Les exemples suivants montrent comment exécuter votre pipeline sur le service Cloud Dataflow en spécifiant les paramètres network et subnetwork.

Si vous êtes un administrateur de projet de service autorisé à n'utiliser que des sous-réseaux spécifiques dans un réseau VPC partagé, vous devez renseigner le paramètre subnetwork avec le nom d'un sous-réseau que vous êtes autorisé à utiliser.

Utiliser la ligne de commande

L'exemple suivant vous montre comment exécuter votre pipeline dans la ligne de commande en spécifiant le sous-réseau. La spécification du sous-réseau spécifie implicitement le réseau.

JAVA

mvn compile exec:java \
  -Dexec.mainClass=com.example.WordCount \
  -Dexec.args="--project=my-cloud-project \
    --stagingLocation=gs://my-wordcount-storage-bucket/staging/ \
    --output=gs://my-wordcount-storage-bucket/output \
    --runner=DataflowRunner \
    --subnetwork=https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

PYTHON

python -m apache_beam.examples.wordcount \
  --project my-cloud-project \
  --runner DataflowRunner \
  --staging_location gs://my-wordcount-storage-bucket/staging \
  --temp_location gs://my-wordcount-storage-bucket/temp \
  --output gs://my-wordcount-storage-bucket/output \
  --subnetwork https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

Utiliser l'API REST

L'exemple suivant montre comment exécuter un modèle et spécifier un sous-réseau. La spécification du sous-réseau spécifie implicitement le réseau.

Si vous exécutez un modèle Cloud Dataflow à l'aide de l'API REST, ajoutez un attribut network et/ou un attribut subnetwork à l'objet environment. Exemple :

POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/wordcount/template_file
{
    "jobName": "my_job",
    "parameters": {
       "inputFile" : "gs://dataflow-samples/shakespeare/kinglear.txt",
       "output": "gs://my-wordcount-storage-bucket/output"
    },
    "environment": {
       "tempLocation": "gs://my-wordcount-storage-bucket/temp",
       "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork",
       "zone": "us-central1-f"
    }
}
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.