Cette page explique comment se connecter à des applications SaaS (Software as a Service) telles que Salesforce et à des services cloud tiers tels qu'Amazon S3 depuis une instance Cloud Data Fusion privée lors du développement d'un pipeline.
Tout au long de ce guide, les termes sortie et contrôle de sortie sont utilisés :
La sortie fait référence au trafic réseau quittant Google Cloud via l'Internet public. En général, le trafic de sortie se produit lorsque vous créez un pipeline écrit sur un service SaaS tel que Salesforce, ou sur un service de cloud public tel que Amazon S3.
Le contrôle de sortie définit des garde-fous pour le trafic de sortie par le biais d'une VM proxy. Ainsi, le trafic sortant vers un ensemble de domaines préconfigurés sera autorisé, alors que tous les autres trafics échoueront. Cela active un périmètre de sécurité renforcée pour le trafic de sortie et peut empêcher toute sortie non souhaitée depuis une instance privée.
Le schéma d'architecture système suivant montre comment une instance Cloud Data Fusion privée se connecte à l'Internet public lorsque vous développez un pipeline :
Lorsque vous concevez votre pipeline dans ce scénario, Cloud Data Fusion achemine le trafic de sortie via votre projet client dans la version Preview ou Wrangler de Cloud Data Fusion. Ce processus utilise les ressources suivantes :
Une route de réseau VPC personnalisé : un réseau VPC personnalisé achemine le trafic via une route personnalisée importée vers des VM de passerelle, qui exportent vers un VPC de projet locataire à l'aide de l'appairage de VPC.
Une VM de passerelle : une VM de passerelle achemine le trafic sortant de Google Cloud en provenance du projet locataire Cloud Data Fusion vers un cloud SaaS ou tiers via l'Internet public. Vous gérez cette VM dans votre projet client. Vous pouvez la configurer dans un environnement à haute disponibilité à l'aide d'un équilibreur de charge interne (ILB). Il est recommandé de réutiliser la VM pour plusieurs des instances Cloud Data Fusion privées au sein du même VPC.
Pour plus d'informations sur la configuration du contrôle de sortie dans vos environnements conceptuels et d'exécution, consultez la page Contrôler le trafic de sortie dans une instance privée.
Avant de commencer
Vous pouvez vous connecter à une source publique depuis une instance privée dans Cloud Data Fusion version 6.4 ou ultérieure. Pour utiliser l'une de ces versions, vous pouvez créer une instance Cloud Data Fusion privée ou mettre à niveau une instance existante vers la version 6.4.0.
Lorsque vous créez une connexion d'appairage de réseaux VPC Pour votre instance, sélectionnez Exporter les routes.
Configurer la connectivité Internet
Les étapes suivantes décrivent comment accéder à un bucket Amazon S3 depuis une instance Cloud Data Fusion privée dans Wrangler. Les mêmes étapes s'appliquent pour l'accès à n'importe quelle source de données via le réseau Internet public lorsque vous concevez un pipeline en mode Aperçu ou Wrangler.
Une seule VM est utilisée dans ce guide, mais pour les applications critiques, nous vous recommandons de créer des VM à équilibrage de charge. Pour en savoir plus, consultez la section Configurer une VM à haute disponibilité.
Créer une passerelle NAT
Créez une passerelle Cloud NAT dans la même région et sur le même réseau VPC que votre instance privée Cloud Data Fusion.
Créer une instance de VM de passerelle et des règles de pare-feu
Console
Accédez à la page Instances de VM.
Cliquez sur Créer une instance. Il est recommandé d'utiliser une VM sans adresse IP externe.
Utilisez le VPC pour lequel l'appairage de réseaux est configuré avec l'instance Cloud Data Fusion privée. Pour en savoir plus sur l'appairage de réseaux VPC dans ce scénario, consultez la section Avant de commencer.
Activez le transfert IP pour l'instance au sein du même réseau que l'instance Cloud Data Fusion.
Dans le champ Script de démarrage, saisissez le script suivant :
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-save
Pour en savoir plus, consultez la page Exécuter des scripts de démarrage.
Pour obtenir la plage d'adresses IP allouée à l'instance Cloud Data Fusion, accédez à la page Détails de l'instance de Cloud Data Fusion.
gcloud
Pour créer la VM de passerelle et les règles de pare-feu, exécutez le script suivant dans la Google Cloud CLI :
export CDF_PROJECT=CDF_PROJECT export GATEWAY_VM=GATEWAY_VM_NAME export ZONE=VM_ZONE export SUBNET=SUBNET export VPC_NETWORK=VPC_NETWORK export COMPUTE_ENGINE_SA=COMPUTE_ENGINE_SA gcloud beta compute --project=$CDF_PROJECT instances create $GATEWAY_VM --zone=$ZONE --machine-type=e2-medium --subnet=$SUBNET --network-tier=PREMIUM --metadata=startup-script=\#\!\ /bin/bash$'\n'echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward$'\n'iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf$'\n'iptables-save --can-ip-forward --no-address --maintenance-policy=MIGRATE --service-account=$COMPUTE_ENGINE_SA --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --tags=http-server,https-server --image=debian-10-buster-v20210316 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=$GATEWAY_VM --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-http --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:80 --source-ranges=CDF_IP_RANGE --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-https --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE --target-tags=https-server
Remplacez les éléments suivants :
- CDF_PROJECT: identifiant unique personnalisable de votre projet
- GATEWAY_VM: nom de la VM que vous souhaitez configurer
- ZONE : zone de votre VM
- SUBNET : sous-réseau
- VPC_NETWORK : nom de votre VM
- COMPUTE_ENGINE_SA : nom de votre compte de service Compute Engine
- CDF_IP_RANGE : plage d'adresses IP allouée à l'instance Cloud Data Fusion
Utiliser un VPC partagé
Si vous utilisez un VPC partagé pour connecter votre instance privée Cloud Data Fusion vers des sources sur l'Internet public, créez une VM passerelle dans le projet hôte où L'appairage de réseaux VPC est configuré avec le projet locataire.
Créer une route personnalisée
Créez une route personnalisée pour vous connecter à l'instance de VM de passerelle que vous avez créée.
Console
Pour créer votre route dans la console Google Cloud, consultez la section Ajouter une route statique.
Lorsque vous configurez la route :
- Définissez la priorité sur supérieur ou égal à
1001
. Définissez la destination sur la plage d'adresses IP allouée à l'instance Cloud Data Fusion. - Utilisez le même projet et le même VPC que l'instance Cloud Data Fusion privée.
- Assurez-vous que la configuration de l'appairage de réseaux VPC autorise l'exportation de routes, afin que le VPC du projet locataire Cloud Data Fusion importe cette route personnalisée via l'appairage de réseaux VPC.
gcloud
Pour créer votre route dans gcloud CLI:
export ROUTE=ROUTE gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-instance=$GATEWAY_VM \ --next-hop-instance-zone=$ZONE
Remplacez les éléments suivants :
- ROUTE: nom de la route personnalisée.
Vérifier votre configuration
Après avoir effectué les étapes précédentes, vérifiez que vous pouvez accéder au bucket S3 (ou d'autres services SaaS ou de cloud public) dans Preview et Wrangler.
Configurer une passerelle haute disponibilité
Recommandation : Pour les applications critiques, nous vous recommandons de créer des VM à équilibrage de charge.
Créer des règles de pare-feu pour les vérifications d'état
Créez des règles de pare-feu pour autoriser :
- Port 80 (HTTP) et port 443 (HTTPS) de toutes les plages sources.
Trafic TCP, UDP et ICMP provenant d'adresses IP de vérification d'état. Exemple :
130.211.0.0/22,35.191.0.0/16
.
Console
Créez des règles de pare-feu pour autoriser les ports de toutes les plages sources, et des règles de pare-feu pour autoriser le trafic TCP, UDP et ICMP provenant d'adresses IP de vérification d'état, telles que 130.211.0.0/22,35.191.0.0/16
.
Consultez la page Créer des vérifications d'état.
gcloud
Créez une règle de pare-feu pour les vérifications d'état :
export CDF_PROJECT=PROJECT_ID export VPC_NETWORK=VPC_NETWORK gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-http \ --direction=INGRESS --priority=1000 \ --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:80 \ --source-ranges=CDF_IP_RANGE \ --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-https \ --direction=INGRESS --priority=1000 --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE \ --target-tags=https-server gcloud compute --project=$CDF_PROJECT firewall-rules create allow-health-checks \ --network=$VPC_NETWORK \ --action=allow --direction=ingress \ --target-tags=allow-health-checks \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
Remplacez les éléments suivants :
- PROJECT_ID : identifiant unique personnalisable de votre projet.
- VPC_NETWORK : nom de votre réseau VPC.
- CDF_IP_RANGE: plage d'adresses IP allouée à Cloud Data Fusion.
Créer un modèle d'instance de VM de passerelle
Console
Lorsque vous créez un modèle d'instance dans la console :
- Créez-le dans le même VPC que l'instance Cloud Data Fusion.
- Recommandation : Utilisez une VM avec une adresse IP privée.
- Activez les ports HTTP/HTTPS.
- Activer le transfert IP
Dans le champ Script de démarrage, saisissez le script suivant :
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-save
Pour en savoir plus, consultez la page Exécuter des scripts de démarrage.
Pour obtenir la plage d'adresses IP allouée à l'instance Cloud Data Fusion, accédez à la page Détails de l'instance de Cloud Data Fusion.
gcloud
Créez un modèle d'instance :
export TEMPLATE_NAME=TEMPLATE_NAME export REGION=REGION export SUBNET=SUBNET export SERVICE_ACCOUNT=SERVICE_ACCOUNT gcloud beta compute --project=$CDF_PROJECT instance-templates create $TEMPLATE_NAME \ --machine-type=e2-medium \ --subnet=projects/$CDF_PROJECT/regions/$REGION/subnetworks/$SUBNET \ --network-tier=PREMIUM --metadata=startup-script=sudo\ bash\ -c\ \"echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward\"$'\n'sudo\ iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'sudo\ bash\ -c\ \"echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf\"$'\n'sudo\ iptables-save \ --can-ip-forward --no-address --maintenance-policy=MIGRATE \ --service-account=$SERVICE_ACCOUNT \ --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ --region=$REGION --tags=http-server,https-server,allow-health-checks \ --image=debian-10-buster-v20210316 \ --image-project=debian-cloud --boot-disk-size=10GB \ --boot-disk-type=pd-balanced \ --boot-disk-device-name=$TEMPLATE_NAME \ --no-shielded-secure-boot --no-shielded-vtpm \ --no-shielded-integrity-monitoring \ --reservation-affinity=any
Créer une vérification d'état
Aucun service ne s'exécute sur cette instance de VM de passerelle. Vous pouvez donc utiliser le port 22
pour votre vérification d'état.
Console
Consultez la page Créer des vérifications d'état.
gcloud
Créez une vérification d'état :
export HEATH_CHECK=HEALTH_CHECK_NAME gcloud beta compute health-checks create tcp $HEATH_CHECK --project=$CDF_PROJECT \ --port=22 --proxy-header=NONE --no-enable-logging \ --check-interval=5 --timeout=5 \ --unhealthy-threshold=2 --healthy-threshold=2
Créer un groupe d'instances
À l'aide de la vérification de l'état créée à l'étape précédente, créez un groupe d'instances :
Console
Consultez la page Créer des groupes d'instances gérés.
gcloud
Créez un groupe d'instances :
export INSTANCE_GROUP=INSTANCE_GROUP gcloud beta compute --project=$CDF_PROJECT instance-groups managed create $INSTANCE_GROUP \ --base-instance-name=$INSTANCE_GROUP \ --template=$TEMPLATE_NAME --size=1 --zone=$ZONE \ --health-check=test --initial-delay=300 gcloud beta compute --project "$CDF_PROJECT" instance-groups managed set-autoscaling "$INSTANCE_GROUP" \ --zone "$ZONE" --cool-down-period "60" \ --max-num-replicas "10" --min-num-replicas "1" \ --target-cpu-utilization "0.6" --mode "on"
Créer un équilibreur de charge
Créez un équilibreur de charge TCP (ILB) à partir du groupe d'instances créé à l'étape précédente.
Ajouter la route personnalisée à l'équilibreur de charge
Ajoutez la route personnalisée à l'équilibreur de charge interne (ILB) dans le même VPC que l'instance Cloud Data Fusion.
Console
Accédez à la page Réseau VPC.
Dans l'onglet Routes, cliquez sur Créer une route.
gcloud
Ajoutez la route personnalisée à l'équilibreur de charge interne :
export ROUTE=ROUTE_NAME export ILB_FRONTEND=<ip_of_ilb_frontend> gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-ilb=$ILB_FRONTEND \ --next-hop-ilb-region=$REGION
Dépannage
Erreurs de délai avant expiration de connexion dans Preview ou Wrangler
Lorsque vous configurez des contrôles de sortie, une erreur Connection Timeout
peut s'afficher.
Pour résoudre le problème, vérifiez que les paramètres suivants sont en place :
- L'appairage de réseaux VPC entre le projet locataire et le projet client est présent.
- Les routes d'exportation sont activées pour l'appairage de réseaux VPC.
- La route personnalisée vers la VM de passerelle ou l'équilibreur de charge interne est présente.
- Les règles de pare-feu autorisant le trafic
HTTP
etHTTPS
sont présentes.
Échec des vérifications de l'état des groupes d'instances
Vérifiez que des règles de pare-feu autorisant le trafic TCP, UDP et ICMP provenant de la plage source 130.211.0.0/22,35.191.0.0/16
sont présentes.
Échec du pipeline lors de l'exécution dans Dataproc
Pour accéder à l'Internet public au moment de l'exécution, activez Cloud NAT dans la même région et le même réseau que le cluster Dataproc.
Étape suivante
- Apprenez à contrôler la sortie dans une instance Cloud Data Fusion privée pour un ensemble spécifique de domaines.
- En savoir plus sur la mise en réseau dans Cloud Data Fusion.