Auf dieser Seite wird beschrieben, wie Sie bei der Entwicklung einer Pipeline von einer privaten Cloud Data Fusion-Instanz eine Verbindung zu Software-as-a-Service-Anwendungen (SaaS) wie Salesforce und Cloud-Diensten von Drittanbietern wie Amazon S3 herstellen.
In diesem Leitfaden werden die Begriffe ausgehender Traffic und Steuerung des ausgehenden Traffics verwendet:
Ausgehender Traffic bezieht sich auf den Netzwerktraffic, der Google Cloud über das öffentliche Internet verlässt. In der Regel geschieht dies, wenn Sie eine Pipeline erstellen, die aus einem SaaS-Dienst wie Salesforce oder einem öffentlichen Clouddienst wie Amazon S3 liest oder in diesen schreibt.
Die Steuerung des ausgehenden Traffics definiert Sicherheitsvorkehrungen für ausgehenden Traffic über eine Proxy-VM, die ausgehenden Traffic zu einer Reihe vorkonfigurierter Domains zulässt und alle anderen fehlschlagen lässt. Dies ermöglicht einen höheren Sicherheitsbereich für ausgehenden Traffic und kann unerwünschten ausgehenden Traffic von einer privaten Instanz verhindern.
Das folgende Systemarchitekturdiagramm zeigt, wie eine private Cloud Data Fusion-Instanz bei der Entwicklung einer Pipeline eine Verbindung zum öffentlichen Internet herstellt:
Wenn Sie die Pipeline in diesem Szenario entwerfen, leitet Cloud Data Fusion den ausgehenden Traffic durch Ihr Kundenprojekt in der Cloud Data Fusion-Vorschau oder in Wrangler weiter. Für diesen Prozess werden die folgenden Ressourcen verwendet:
Eine benutzerdefinierte VPC-Netzwerkroute: Ein benutzerdefiniertes VPC-Netzwerk leitet den Traffic über eine importierte benutzerdefinierte Route an Gateway-VMs weiter, die mithilfe von VPC-Peering in die VPC eines Mandantenprojekts exportieren.
Eine Gateway-VM: Eine Gateway-VM leitet ausgehenden Traffic aus Google Cloud vom Cloud Data Fusion-Mandantenprojekt an eine SaaS- oder Drittanbieter-Cloud über das öffentliche Internet weiter. Sie verwalten diese VM in Ihrem Kundenprojekt. Sie können sie in einer Hochverfügbarkeitsumgebung (High Availability, HA) mit einem internen Load-Balancer (ILB) konfigurieren. Es wird empfohlen, die VM für mehrere private Cloud Data Fusion-Instanzen innerhalb derselben VPC.
Informationen zum Einrichten der Steuerung des ausgehenden Traffics in Ihren Design- und Ausführungsumgebungen finden Sie unter Ausgehenden Traffic in einer privaten Instanz steuern.
Hinweis
Sie können eine Verbindung zu einer öffentlichen Quelle von einer privaten Instanz in Cloud Data Fusion ab Version 6.4 herstellen. Wenn Sie eine dieser Versionen verwenden möchten, können Sie eine neue private Cloud Data Fusion-Instanz erstellen oder eine vorhandene Instanz auf 6.4.0 aktualisieren.
Wenn Sie eine VPC-Netzwerk-Peering-Verbindung erstellen Wählen Sie für Ihre Instanz Routen exportieren aus.
Internetverbindung einrichten
In den folgenden Schritten wird beschrieben, wie Sie von einer privaten Cloud Data Fusion-Instanz in Wrangler auf einen Amazon S3-Bucket zugreifen. Dieselben Schritte gelten für den Zugriff auf eine Datenquelle über das öffentliche Internet, wenn Sie eine Pipeline in der Vorschau oder Wrangler entwerfen.
In dieser Anleitung wird nur eine einzelne VM verwendet. Für geschäftskritische Anwendungen empfehlen wir jedoch, VMs mit Load-Balancing zu erstellen. Weitere Informationen finden Sie unter Hochverfügbarkeits-VM einrichten.
NAT-Gateway erstellen
Erstellen Sie ein Cloud NAT-Gateway in derselben Region und demselben VPC-Netzwerk wie Ihre private Cloud Data Fusion-Instanz.
Gateway-VM-Instanz und Firewallregeln erstellen
Console
Rufen Sie die Seite VM-Instanzen auf.
Klicken Sie auf Instanz erstellen. Es wird empfohlen, eine VM ohne externe IP-Adresse.
Verwenden Sie dieselbe VPC, für die das Netzwerk-Peering mit der privaten Cloud Data Fusion-Instanz eingerichtet ist. Weitere Informationen zu Lesen Sie in diesem Szenario VPC-Netzwerk-Peering unter Vorbereitung.
Aktivieren Sie die IP-Weiterleitung für die Instanz im selben Netzwerk wie die Cloud Data Fusion-Instanz.
Geben Sie im Feld Startskript das folgende Skript ein:
#! /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
Weitere Informationen finden Sie unter Startskripts ausführen.
Rufen Sie die Cloud Data Fusion-Seite Instanzdetails auf, um den zugewiesenen IP-Bereich für die Cloud Data Fusion-Instanz abzurufen.
gcloud
Führen Sie zum Erstellen der Gateway-VM und der Firewallregeln das folgende Skript im 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
Ersetzen Sie Folgendes:
- CDF_PROJECT: die anpassbare eindeutige Kennung für Ihr Projekt
- GATEWAY_VM: Name der VM, die Sie konfigurieren möchten
- ZONE: die Zone Ihrer VM
- SUBNET: das Subnetz
- VPC_NETWORK: der Name Ihrer VM
- COMPUTE_ENGINE_SA: der Name Ihres Compute Engine-Dienstes Konto
- CDF_IP_RANGE: Der IP-Bereich, der der Cloud Data Fusion-Instanz zugewiesen ist.
Freigegebene VPC verwenden
Wenn Sie eine freigegebene VPC verwenden, um eine Verbindung zu Ihrer privaten Cloud Data Fusion-Instanz herzustellen zu Quellen im öffentlichen Internet ist, erstellen Sie eine Gateway-VM im Hostprojekt, VPC-Netzwerk-Peering wird mit dem Mandantenprojekt eingerichtet.
Benutzerdefinierte Route erstellen
Erstellen Sie eine benutzerdefinierte Route, um eine Verbindung zur von Ihnen erstellten Gateway-VM-Instanz herzustellen.
Console
Informationen zum Erstellen einer Route in der Google Cloud Console finden Sie unter Statische Route hinzufügen.
Wenn Sie die Route konfigurieren, müssen Sie Folgendes tun:
- Legen Sie die Priorität auf einen Wert größer oder gleich
1001
fest. Legen Sie die Ziel für den IP-Bereich, der Cloud Data Fusion zugewiesen ist Instanz. - Verwenden Sie dasselbe Projekt und dieselbe VPC wie die private Cloud Data Fusion-Instanz.
- Achten Sie darauf, dass Ihre VPC-Netzwerk-Peering-Konfiguration den Export zulässt Routen, damit die VPC-Daten des Cloud Data Fusion-Mandantenprojekts importiert werden benutzerdefinierte Route über VPC-Netzwerk-Peering.
gcloud
So erstellen Sie eine Route in der 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
Ersetzen Sie Folgendes:
- ROUTE: der Name der benutzerdefinierten Route.
Einrichtung überprüfen
Nachdem Sie die vorherigen Schritte ausgeführt haben, prüfen Sie, ob Sie auf den S3-Bucket zugreifen können (oder andere SaaS- oder öffentliche Cloud-Dienste) in Preview und Wrangler verfügbar machen.
Hochverfügbares Gateway einrichten
Empfohlen: Für geschäftskritische Anwendungen empfehlen wir, Load-Balancing-VMs zu erstellen.
Firewallregeln für Systemdiagnosen erstellen
Erstellen Sie Firewallregeln, die Folgendes zulassen:
- Port 80 (HTTP) und Port 443 (HTTPS) aus allen Quellbereichen
TCP-, UDP- und ICMP-Traffic von Prober-IP-Adressen der Systemdiagnose Beispiel:
130.211.0.0/22,35.191.0.0/16
Console
Erstellen Sie Firewallregeln, die Ports aus allen Quellbereichen und Firewallregeln zulassen, um TCP-, UDP- und ICMP-Traffic von IP-Adressen des Systemdiagnose-Probers wie 130.211.0.0/22,35.191.0.0/16
zuzulassen.
Siehe Systemdiagnosen erstellen.
gcloud
Erstellen Sie eine Firewallregel für Systemdiagnosen:
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
Ersetzen Sie Folgendes:
- PROJECT_ID: die anpassbare eindeutige Kennung für für Ihr Projekt.
- VPC_NETWORK ist der Name des VPC-Netzwerks.
- CDF_IP_RANGE: Der IP-Adressbereich, der Cloud Data Fusion zugewiesen ist.
Gateway-VM-Instanzvorlage erstellen
Console
Wenn Sie in der Console eine Instanzvorlage erstellen, müssen Sie Folgendes beachten:
- Erstellen Sie sie in derselben VPC wie die Cloud Data Fusion-Instanz.
- Empfohlen: Verwenden Sie eine VM mit einer privaten IP-Adresse.
- Aktivieren Sie HTTP/HTTPS-Ports.
- Aktivieren Sie die IP-Weiterleitung.
Geben Sie im Feld Startskript das folgende Skript ein:
#! /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
Weitere Informationen finden Sie unter Startskripts ausführen.
Rufen Sie die Cloud Data Fusion-Seite Instanzdetails auf, um den zugewiesenen IP-Bereich für die Cloud Data Fusion-Instanz abzurufen.
gcloud
Instanzvorlage erstellen:
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
Systemdiagnose erstellen
Auf dieser Gateway-VM-Instanz wird kein Dienst ausgeführt. Sie können also Port 22
für Ihre Systemdiagnose verwenden.
Console
Siehe Systemdiagnosen erstellen.
gcloud
Erstellen Sie eine Systemdiagnose.
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
Instanzgruppe erstellen
Erstellen Sie mit der im vorherigen Schritt erstellten Systemdiagnose eine Instanzgruppe:
Console
gcloud
Instanzgruppe erstellen:
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"
Load-Balancer erstellen
Erstellen Sie einen TCP-Load-Balancer (ILB) aus der im vorherigen Schritt erstellten Instanzgruppe.
Benutzerdefinierte Route zum Load-Balancer hinzufügen
Fügen Sie die benutzerdefinierte Route dem internen Load-Balancer (ILB) in derselben VPC wie die Cloud Data Fusion-Instanz hinzu.
Console
Zur VPC-Netzwerkseite.
Klicken Sie auf dem Tab Routen auf Route erstellen.
gcloud
Fügen Sie dem internen Load-Balancer die benutzerdefinierte Route hinzu:
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
Fehlerbehebung
Zeitüberschreitungsfehler bei Verbindungen in der Vorschau oder Wrangler abrufen
Wenn Sie Steuerelemente für ausgehenden Traffic einrichten, wird möglicherweise der Fehler Connection Timeout
angezeigt.
Prüfen Sie, ob die folgenden Einstellungen vorhanden sind, um das Problem zu beheben:
- Das VPC-Netzwerk-Peering zwischen Mandantenprojekt und Kundenprojekt ist vorhanden.
- Für das VPC-Netzwerk-Peering sind Exportrouten aktiviert
- Die benutzerdefinierte Route zur Gateway-VM oder zum internen Load-Balancer fehlt nicht
- Die Firewallregeln, die Traffic vom Typ
HTTP
undHTTPS
zulassen, fehlen nicht
Systemdiagnosen von Instanzgruppen sind nicht erfolgreich
Prüfen Sie, ob die Firewallregeln TCP-, UDP- und ICMP-Traffic aus dem Quellbereich 130.211.0.0/22,35.191.0.0/16
zulassen.
Pipeline schlägt während der Ausführung in Dataproc fehl
Aktivieren Sie Cloud NAT, um während der Ausführung auf das öffentliche Internet zuzugreifen. sich in derselben Region und demselben Netzwerk wie der Dataproc-Cluster befinden.
Nächste Schritte
- Erfahren Sie, wie Sie ausgehenden Traffic in einer privaten Cloud Data Fusion-Instanz nur auf eine bestimmte Gruppe von Domains steuern.
- Weitere Informationen über Netzwerke in Cloud Data Fusion