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

  1. Erstellen Sie eine NEG, um eine Verbindung zu einem veröffentlichten Dienst herzustellen.
  2. 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

  1. Erstellen Sie ein Subnetz für PSC-NAT.
  2. Firewallregel erstellen, um Anfragen von PSC NAT an den Load Balancer zuzulassen
  3. 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:

  1. Erstellen Sie einen PSC-Dienstanhang.
    1. Erstellen Sie Compute Engine-VM-Instanzen zum Ausführen von SOCKS5-Proxyservern.
      1. 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.

    2. 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
                  
    3. 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.

      1. Stellen Sie eine SSH-Verbindung zu Ihrer VM-Instanz her.
        gcloud compute ssh \
                    --tunnel-through-iap \
                    PROXY_INSTANCE_1
                
      2. Installieren Sie den Dante-SOCKS5-Proxyserver.
        sudo apt update
                sudo apt install dante-server
      3. Prüfen Sie die Serveroberfläche.
        sudo ip a
      4. Erstellen Sie eine Sicherung der Dante-Konfiguration.
        sudo mv /etc/danted.conf /etc/danted.conf.bak
      5. Erstellen Sie eine neue Dante-Konfigurationsdatei.
        sudo nano /etc/danted.conf
      6. 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
                }
      7. Starten Sie den Dante-Server neu und prüfen Sie den Status.
        sudo systemctl restart danted
                sudo systemctl status danted
      8. Beenden Sie die VM-Instanz.
        exit
    4. Erstellen Sie einen Load Balancer mit der VM-Instanz als Back-End.
      1. Nicht verwaltete Instanzgruppe erstellen
        gcloud compute instance-groups unmanaged create INSTANCE_GROUP_NAME
      2. 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
      3. Erstellen Sie eine Systemdiagnoseprüfung und erlauben Sie den Traffic von der Prüfung.
        1. 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.

        2. 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
      4. Erstellen Sie einen internen L4-Load Balancer und erlauben Sie Traffic vom Load Balancer.
        1. 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 
        2. 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
        3. 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
        4. 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

      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-Adresse

      Eine Anleitung zum Erstellen eines Endpunktanhangs als IP-Adresse finden Sie unter Endpunktanhang als IP-Adresse erstellen.

      Endpunktanhang als Hostname

      In 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.