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 derselben VPC erstellt. Der Dienstanhang wird immer in einem NAT-Subnetz erstellt.
- SOCKS5-Proxyserver müssen an die
0.0.0.0:<port>-IP-Adresse gebunden sein, da dies für eingehenden Traffic vom Load-Balancer und für die Systemdiagnoseprüfungen erforderlich ist. Weitere Informationen finden Sie unter Systemdiagnose. - Traffic vom Load Balancer und von der Systemdiagnose-Prüfung sollte an denselben Port gesendet werden.
- Konfigurieren Sie die Firewallregeln, um den Trafficfluss zu ermöglichen.
Regeln für eingehenden Traffic
- Traffic aus dem Subnetz des PSC-Service-Anhangs sollte Ihren Backend-Dienst erreichen.
- Innerhalb des Subnetzes des ILB sollte der ILB Traffic an die SOCKS5-Proxyserver senden können.
- Die Systemdiagnoseprüfung muss 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). Diese IPs können also Traffic an die SOCKS-Proxyserver senden.
Regeln für ausgehenden Traffic
Ausgehender Traffic ist in einem Google Cloud-Projekt standardmäßig aktiviert, sofern keine spezifischen Ablehnungsregeln konfiguriert sind.
- Alle Ihre Google Cloud-Komponenten, z. B. der PSC-Dienstanhang und der Load Balancer, sollten sich in derselben Region befinden.
- Achten Sie darauf, dass Ihre SOCKS5-Proxyserver Traffic in den folgenden Szenarien akzeptieren:
- Passthrough-Load-Balancer (L4 TCP/UDP ILB) : Anfragen von den NAT-IPs des PSC-Dienstanhangs sollten Ihre SOCKS5-Proxyserver erreichen können. Daher müssen Sie den gesamten IP-Bereich des 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. Ihre SOCKS5-Proxyserver sollten daher 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 Cloud SQL für MySQL stellen einen PSC-Dienstanhang für private Verbindungen bereit. In diesen Fällen können Sie diesen Schritt zum Erstellen eines PSC-Dienstanhangs überspringen. Der vom verwalteten Dienst bereitgestellte PSC-Dienstanhang kann zum Erstellen des Integration Connectors-Endpunktanhangs verwendet werden.
In den folgenden Szenarien müssen Sie einen neuen PSC-Dienstanhang erstellen:
- Der verwaltete Google Cloud-Dienst stellt keinen Dienstanhang, sondern eine IP-Adresse über den privaten Dienstzugriff bereit.
- Der von Google Cloud verwaltete Dienst macht einen Dienstanhang verfügbar, unterstützt aber keine Zulassungsliste für das Integration Connectors-Projekt, um den Dienstanhang zu nutzen.
Die Schritte zum Erstellen des Dienstanhangs 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
Möglicherweise ist es nicht zulässig, dass das Integration Connectors-Projekt auf die Dienstanhänge zugreift, die vom verwalteten Dienst bereitgestellt werden. In diesem Fall müssen Sie einen Load Balancer erstellen, der auf den Dienstanhang zugreift, und den Load Balancer für Integration Connectors verfügbar machen, indem Sie einen weiteren Dienstanhang in Ihrem Projekt erstellen.
Das folgende Bild 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.
- Backend zu einem regionalen internen Proxy-Network Load Balancer hinzufügen.
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 vom Integration Connectors-Projekt zulassen
Informationen zum Zulassen der Private Service Connect-Verbindung aus dem Integration Connectors-Projekt finden Sie unter Integration Connectors auf die Zulassungsliste setzen.
Dienstanhang für einen verwalteten Dienst erstellen, der eine IP-Adresse verfügbar macht
Wenn der verwaltete Dienst keine Dienstanhänge bereitstellt, muss der Traffic von Integration Connectors über Ihr Projekt weitergeleitet 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 die erste Proxy-Instanz.
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 die erste Proxy-Instanz.
- Erstellen Sie eine Firewallregel, um SSH-Verbindungen zu Ihren 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 zur 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 Serverschnittstelle.
sudo ip a
- Sicherung der Dante-Konfiguration erstellen
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 Backend.
- 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 einen Systemdiagnose-Prober und lassen Sie den Traffic vom Prober zu.
- 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. Das ist der Standardport, auf dem die SOCKS5-Proxyserver ausgeführt werden.
- Erstellen Sie eine Firewallregel, die Traffic von der Probe zulässt.
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 lassen Sie Traffic vom Load Balancer zu.
- Erstellen Sie einen Backend-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 Backend-Dienst.
Endpunktanhang erstellen
Nachdem Sie einen Dienstanhang für einen verwalteten Dienst erstellt haben, müssen Sie einen Endpunktanhang erstellen und ihn 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 das Ziel Hostnamen anstelle von privaten IP-Adressen verwenden, um die TLS-Validierung durchzuführen. In Fällen, in denen für das Hostziel ein privates DNS anstelle einer IP-Adresse verwendet wird, müssen Sie zusätzlich zum Erstellen einer Endpunktanhängung als IP-Adresse auch verwaltete Zonen konfigurieren. Eine Anleitung zum Erstellen eines Endpunktanhangs als Hostname finden Sie unter Endpunktanhang als Hostname erstellen.
Später, wenn Sie die Verbindung für die Verwendung des Endpunktanhangs konfigurieren, können Sie diesen Endpunktanhang auswählen.
Verbindung für die Verwendung des Endpunktanhangs konfigurieren
Nachdem Sie einen Endpunktanhang erstellt haben, können Sie ihn in Ihrer Verbindung verwenden. Wenn Sie eine neue Verbindung erstellen oder eine vorhandene Verbindung aktualisieren, wählen Sie im Bereich „Ziele“ Endpunktanhang als Zieltyp aus und wählen Sie den von Ihnen erstellten Endpunktanhang aus der Liste Endpunktanhang aus.
Wenn Sie eine verwaltete Zone erstellt haben, wählen Sie Host Address (Hostadresse) als Destination Type (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 Richtlinien in diesem Abschnitt, um häufige Probleme zu vermeiden.
- Prüfen Sie, ob das Mandantenprojekt des Connectors im Dienstanhang auf der Zulassungsliste steht.
- Achten Sie auf die folgende Konfiguration der Firewallregeln:
- Traffic aus dem Subnetz des PSC-Service-Attachments muss Ihren Backend-Dienst erreichen dürfen.
- Die Systemdiagnoseprüfung muss auf Ihr Backend-System zugreifen können. Die Google Cloud-Systemdiagnosen haben einen festen IP-Bereich (35.191.0.0/16, 130.211.0.0/22). Diese IP-Adressen müssen also Traffic an Ihren Backend-Server senden dürfen.
- Mit dem Google Cloud-Konnektivitätstest können Sie Lücken in Ihrer Netzwerkkonfiguration ermitteln. 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 Verkettung über einen SOCKS5-Proxy. So können Sie verschlüsselten Traffic vom Cloud SQL Auth-Proxy an die Ziel-Cloud SQL-Instanz weiterleiten.
Eine detaillierte Anleitung zur Installation und Konfiguration eines SOCKS5-Proxyservers würde den Rahmen dieses Dokuments sprengen. Sie können einen beliebigen SOCKS5-Proxy installieren. In den folgenden Schritten wird beschrieben, wie Sie den Dante-SOCKS5-Proxyserver installieren und konfigurieren.
- Erstellen Sie Compute Engine-VM-Instanzen zum Ausführen von SOCKS5-Proxyservern.