Netzwerkverbindung in verwalteten Google Cloud-Diensten
Auf dieser Seite wird beschrieben, wie Sie eine private Verbindung von Integration Connectors zu Ihrem Backend-Dienst wie Cloud SQL for MySQL, Cloud SQL for PostgreSQL und Cloud SQL for SQL Server einrichten. Auf dieser Seite wird davon ausgegangen, dass Sie mit den folgenden Konzepten vertraut sind:
Hinweise
Beachten Sie beim Erstellen eines PSC-Dienstanhangs die folgenden wichtigen Punkte:
- Der PSC-Dienstanhang und der Load Balancer werden in verschiedenen Subnetzen innerhalb desselben VPC erstellt. Der Dienstanhang wird immer in einem NAT-Subnetz erstellt.
- SOCKS5-Proxyserver müssen an die IP-Adresse
0.0.0.0:<port>
gebunden sein, da dies für den eingehenden Traffic vom Load Balancer und die Systemdiagnoseprüfungen erforderlich ist. Weitere Informationen finden Sie unter Systemdiagnose. - Traffic vom Load Balancer und von der Systemdiagnose sollte an denselben Port gesendet werden.
- Konfigurieren Sie die Firewallregeln so, dass der Trafficfluss erleichtert wird.
Regeln für eingehenden Traffic
- Traffic aus dem Subnetz des PSC-Dienst-Anhangs sollte Ihren Backend-Dienst erreichen.
- Innerhalb des Subnetzwerks des ILB sollte der ILB Traffic an die SOCKS5-Proxyserver senden können.
- Die Systemdiagnoseprüfung sollte auf die SOCKS5-Proxyserver zugreifen können. Die Google Cloud-Systemdiagnoseprüfungen haben einen festen IP-Bereich (
35.191.0.0/16, 130.211.0.0/22
). Daher kann für diese IPs zugelassen werden, dass sie Traffic an die SOCKS-Proxyserver senden.
Regeln für ausgehenden Traffic
Der ausgehende Traffic ist in einem Google Cloud-Projekt standardmäßig aktiviert, sofern keine speziellen Ausschlussregeln konfiguriert sind.
- Alle Google Cloud-Komponenten wie der PSC-Dienstanhang und der Load Balancer sollten sich in derselben Region befinden.
- Achten Sie darauf, dass Ihre SOCKS5-Proxyserver den Traffic in den folgenden Fällen akzeptieren:
- Passthrough-Load Balancer (L4-TCP/UDP-ILB): Anfragen von den NAT-IP-Adressen des PSC-Dienst-Anhangs sollten Ihre SOCKS5-Proxy-Server erreichen können. Daher müssen Sie den IP-Bereich des gesamten NAT-Subnetzes für den Dienstanhang zulassen. Weitere Informationen finden Sie unter Private Service Connect-Subnetze.
- Proxybasierte/HTTP(S)-Load Balancer (L4-Proxy-ILB, L7-ILB): Alle neuen Anfragen stammen vom Load Balancer. Daher sollten Ihre SOCKS5-Proxyserver Anfragen aus dem Proxy-Subnetz Ihres VPC-Netzwerk akzeptieren. Weitere Informationen finden Sie unter Nur-Proxy-Subnetze für Envoy-basierte Load Balancer.
Private Verbindung konfigurieren
Einige der verwalteten Google Cloud-Dienste wie CloudSQL MySQL stellen einen PSC-Dienstanhang für die private Konnektivität bereit. In diesen Fällen können Sie diesen Schritt zum Erstellen eines PSC-Dienstanhangs überspringen. Der vom verwalteten Dienst bereitgestellte PSC-Dienstanhang kann dann verwendet werden, um den Endpunktanhang für Integration Connectors zu erstellen.
In den folgenden Fällen müssen Sie einen neuen PSC-Dienstanhang erstellen:
- Der verwaltete Google Cloud-Dienst stellt keinen Dienstanhang bereit, sondern eine IP-Adresse mit Zugriff auf private Dienste.
- Der verwaltete Google Cloud-Dienst stellt einen Dienstanhang bereit, unterstützt aber nicht die Zulassung des Integration Connectors-Projekts auf die Zulassungsliste, damit es den Dienstanhang nutzen kann.
Die Schritte zum Erstellen der Dienstanhänge für diese beiden Szenarien werden in den folgenden Abschnitten ausführlich beschrieben. Nachdem Sie den Dienstanhang erstellt haben, müssen Sie einen Endpunktanhang erstellen und eine Verbindung konfigurieren, um den Endpunktanhang zu verwenden.
Dienstanhang für einen verwalteten Dienst erstellen, der den Zugriff einschränkt
Der verwaltete Dienst lässt möglicherweise nicht zu, dass das Integration Connectors-Projekt auf die Zulassungsliste gesetzt wird, um den von ihm bereitgestellten Dienstanhang zu verwenden. In diesem Fall müssen Sie einen Load Balancer erstellen, der den Dienstanhang nutzt und den Load Balancer für Integration Connectors verfügbar macht. Dazu erstellen Sie einen weiteren Dienstanhang in Ihrem Projekt.
Die folgende Abbildung zeigt einen verwalteten Dienst, der einen Dienstanhang bereitstellt:
Ein Beispiel für einen verwalteten Dienst, der einen Dienstanhang bereitstellt, finden Sie unter Private Konnektivität für einen MongoDB Atlas-Cluster.
Load Balancer mit PSC-NEG als Backend erstellen
- Erstellen Sie eine NEG, um eine Verbindung zu einem veröffentlichten Dienst herzustellen.
- Fügen Sie einem regionalen internen Proxy-Network Load Balancer ein Backend hinzu.
Weitere Informationen finden Sie unter Private Service Connect-NEG erstellen.
Dienstanhang erstellen
- Erstellen Sie ein Subnetz für PSC-NAT.
- Firewallregel erstellen, um Anfragen von PSC NAT an den Load Balancer zuzulassen
- Erstellen Sie einen Dienstanhang.
Weitere Informationen finden Sie unter PSC-Dienstanhang erstellen.
Private Service Connect-Verbindung aus dem Integration Connectors-Projekt zulassen
Informationen zum Aufnehmen der Private Service Connect-Verbindung in die Zulassungsliste des Integration Connectors-Projekts finden Sie unter Integration Connectors in die Zulassungsliste aufnehmen.
Dienstanhang für einen verwalteten Dienst erstellen, der eine IP-Adresse freigibt
Wenn der verwaltete Dienst keinen Dienstanhang bereitstellt, muss der Traffic von Integration Connectors über Ihr Projekt geproxyt werden.
Das folgende Bild zeigt einen verwalteten Dienst, der keinen Dienstanhang bereitstellt:
So konfigurieren Sie eine private Verbindung:
- Erstellen Sie einen PSC-Dienstanhang.
- Erstellen Sie Compute Engine-VM-Instanzen zum Ausführen von SOCKS5-Proxyservern.
- Erstellen Sie Proxy-Instanz 1.
gcloud compute instances create PROXY_INSTANCE_1 \ --project=PROJECT_ID \ --network-interface=network-tier=PREMIUM,subnet=SUBNET_NAME_2,no-address
Je nach Bedarf können Sie beliebig viele VM-Instanzen erstellen.
- Erstellen Sie Proxy-Instanz 1.
- Erstellen Sie eine Firewallregel, um SSH-Zugriff auf Ihre VM-Instanzen zuzulassen.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_SSH \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:22
- Stellen Sie eine SSH-Verbindung zu Ihrer VM-Instanz her.
gcloud compute ssh \ --tunnel-through-iap \ PROXY_INSTANCE_1
- Installieren Sie den Dante-SOCKS5-Proxyserver.
sudo apt update sudo apt install dante-server
- Prüfen Sie die Serveroberfläche.
sudo ip a
- Erstellen Sie eine Sicherung der Dante-Konfiguration.
sudo mv /etc/danted.conf /etc/danted.conf.bak
- Erstellen Sie eine neue Dante-Konfigurationsdatei.
sudo nano /etc/danted.conf
- Kopieren Sie die folgende Konfiguration in die Konfigurationsdatei:
logoutput: /var/log/socks.log # Bind the server to the 0.0.0.0 IP address to allow traffic # traffic from the load balancer and the health check probes. internal: 0.0.0.0 port = 1080 external: ens4 clientmethod: none socksmethod: none user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } client block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } socks block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error }
- Starten Sie den Dante-Server neu und prüfen Sie den Status.
sudo systemctl restart danted sudo systemctl status danted
- Beenden Sie die VM-Instanz.
exit
- Erstellen Sie einen Load Balancer mit der VM-Instanz als Back-End.
- Nicht verwaltete Instanzgruppe erstellen
gcloud compute instance-groups unmanaged create INSTANCE_GROUP_NAME
- Fügen Sie der Gruppe die in Schritt 3 erstellten VM-Instanzen hinzu.
gcloud compute instance-groups unmanaged add-instances INSTANCE_GROUP_NAME \ --instances=PROXY_INSTANCE_1
- Erstellen Sie eine Systemdiagnoseprüfung und erlauben Sie den Traffic von der Prüfung.
- Erstellen Sie die Systemdiagnoseprüfung.
gcloud compute health-checks create tcp HEALTH_CHECK_NAME \ --port BACKEND_SERVER_PORT --region=REGION
Legen Sie in diesem Befehl BACKEND_SERVER_PORT auf 1080 fest. Dies ist der Standardport, auf dem die SOCKS5-Proxyserver ausgeführt werden.
- Erstellen Sie eine Firewallregel, um Traffic von der Prüfung zuzulassen.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_HEALTHCHECK \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:BACKEND_SERVER_PORT \ --source-ranges=35.191.0.0/16,130.211.0.0/22
- Erstellen Sie die Systemdiagnoseprüfung.
- Erstellen Sie einen internen L4-Load Balancer und erlauben Sie Traffic vom Load Balancer.
- Erstellen Sie einen Back-End-Dienst.
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=internal --protocol=tcp --health-checks=HEALTH_CHECK_NAME \ --health-checks-region=REGION
- Fügen Sie dem Backend-Dienst eine Instanzgruppe hinzu.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=ZONE
- Erstellen Sie eine Weiterleitungsregel.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=internal --network=VPC_NETWORK --subnet=SUBNET_NAME_2 \ --ip-protocol=TCP --ports=BACKEND_SERVER_PORT --backend-service=BACKEND_SERVICE \ --backend-service-region=REGION
-
Erstellen Sie eine Firewallregel, um internen Traffic vom Load Balancer zur Instanzgruppe zuzulassen.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_INTERNAL \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK \ --action=ALLOW --rules=all --source-ranges=SUBNET_RANGE_2
- Erstellen Sie einen Back-End-Dienst.
Endpunktanhang erstellen
Nachdem Sie einen Dienstanhang für einen verwalteten Dienst erstellt haben, müssen Sie einen Endpunktanhang erstellen und dann in Ihrer Verbindung verwenden.
Endpunktanhang als IP-AdresseEine Anleitung zum Erstellen eines Endpunktanhangs als IP-Adresse finden Sie unter Endpunktanhang als IP-Adresse erstellen.
Endpunktanhang als HostnameIn bestimmten Fällen, z. B. bei TLS-fähigen Back-Ends, müssen Sie für die TLS-Bestätigung Hostnamen anstelle von privaten IP-Adressen verwenden. Wenn anstelle einer IP-Adresse für das Hostziel ein privates DNS verwendet wird, müssen Sie nicht nur einen Endpunkt-Anhang als IP-Adresse erstellen, sondern auch verwaltete Zonen konfigurieren. Eine Anleitung zum Erstellen eines Endpunkt-Anhangs als Hostnamen finden Sie unter Endpunkt-Anhang als Hostnamen erstellen.
Wenn Sie Ihre Verbindung später so konfigurieren, dass der Endpunktanhang verwendet wird, können Sie diesen auswählen.
Verbindung für die Verwendung des Endpunktanhangs konfigurieren
Nachdem Sie einen Endpunktanhang erstellt haben, verwenden Sie ihn in Ihrer Verbindung. Wenn Sie eine neue Verbindung erstellen oder eine vorhandene Verbindung aktualisieren, wählen Sie im Bereich „Ziele“ als Zieltyp Endpunktanhang und dann den von Ihnen erstellten Endpunktanhang aus der Liste Endpunktanhang aus.
Wenn Sie eine verwaltete Zone erstellt haben, wählen Sie Hostadresse als Zieltyp aus und verwenden Sie den A-Eintrag, den Sie beim Erstellen der verwalteten Zone erstellt haben.
Tipps zur Fehlerbehebung
Wenn Sie Probleme mit der privaten Verbindung haben, folgen Sie den in diesem Abschnitt aufgeführten Richtlinien, um häufige Probleme zu vermeiden.
- Das Mieterprojekt des Connectors muss in der Zulassungsliste des Dienstanhangs stehen.
- Achten Sie auf die folgende Konfiguration der Firewallregeln:
- Traffic vom Subnetz der PSC-Dienstanwendung muss Ihren Backend-Dienst erreichen dürfen.
- Der Systemdiagnosetest muss auf Ihr Backendsystem zugreifen können. Die Google Cloud-Systemdiagnosen haben einen festen IP-Bereich (35.191.0.0/16, 130.211.0.0/22). Daher müssen diese IP-Adressen den Traffic an Ihren Backend-Server senden dürfen.
- Mit dem Google Cloud-Konnektivitätstest können Sie Lücken in Ihrer Netzwerkkonfiguration erkennen. Weitere Informationen finden Sie unter Konnektivitätstests erstellen und ausführen.
- Nicht verwaltete Instanzgruppe erstellen
Die VM-Instanz wird verwendet, um den Traffic von Integration Connectors an den verwalteten Dienst weiterzuleiten. Installieren Sie einen SOCKS5-Proxy auf der VM-Instanz. Der Cloud SQL Auth-Proxy unterstützt die Verknüpfung über einen SOCKS5-Proxy, mit dem Sie verschlüsselten Traffic vom Cloud SQL Auth-Proxy an die Cloud SQL-Ziel-Instanz weiterleiten können. Daher benötigen Sie SOCKS5-Proxyserver, um eine Verbindung zu einer privaten Cloud SQL-Instanz herzustellen.
Eine detaillierte Anleitung zum Installieren und Konfigurieren eines SOCKS5-Proxyservers ist nicht Gegenstand dieses Dokuments. Sie können einen beliebigen SOCKS5-Proxy installieren. In den folgenden Schritten wird gezeigt, wie Sie den Dante-SOCKS5-Proxyserver installieren und konfigurieren.
- Erstellen Sie Compute Engine-VM-Instanzen zum Ausführen von SOCKS5-Proxyservern.