Netzwerkverbindung in Google Cloud VPC
Auf dieser Seite wird beschrieben, wie Sie private Verbindungen von Integration Connectors zu Ihrem Backend-Dienst wie MySQL, Postgres und SQL Server einrichten, der in Google Cloud VPC gehostet wird.
Auf dieser Seite wird davon ausgegangen, dass Sie mit den folgenden Konzepten vertraut sind:
Die private Verbindung zur Google Cloud-VPC kann in eine der folgenden Kategorien fallen:
- Sowohl der Back-End-Dienst als auch der PSC-Dienstanhang befinden sich im selben Google Cloud-Projekt oder in derselben VPC.
- Sowohl der Backend-Dienst als auch die PSC-Dienstanbindung befinden sich in verschiedenen Google Cloud-Projekten oder VPCs.
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.
- Traffic vom Load Balancer und von der Systemdiagnose 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.
Regeln für ausgehenden Traffic
Ausgangsverkehr 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.
Private Verbindung zu einem Backend-Dienst in einer Google Cloud-VPC
In diesem Abschnitt wird beschrieben, wie Sie eine private Verbindung herstellen, wenn sich sowohl der Backend-Dienst als auch die PSC-Dienstanhänge im selben Google Cloud-Projekt befinden.
Das folgende Bild zeigt die Einrichtung der privaten Netzwerkverbindung von Integration Connectors zu einem Dienst, der in einer Google Cloud-VPC gehostet wird:
So richten Sie eine private Verbindung zu einem Backend-Dienst in einer Google Cloud-VPC ein:
- PSC-Dienstanhang erstellen
- Endpunktanhang erstellen, um den PSC-Dienstanhang zu nutzen
- Verbindung für die Verwendung des Endpunktanhangs konfigurieren
PSC-Dienstanhang erstellen
Damit eine private Verbindung von Integration Connectors hergestellt werden kann, muss Ihr Dienst für Integration Connectors über einen PSC-Dienstanhang verfügbar gemacht werden. Für eine Dienstanhängevorrichtung wird immer ein Load Balancer verwendet. Wenn Ihr Dienst also nicht hinter einem Load-Balancer steht, muss ein Load-Balancer konfiguriert werden.
- Erstellen Sie eine Systemdiagnose und lassen Sie den Traffic von der Systemdiagnose 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 3306 fest. Dies ist der Standardport, auf dem der MySQL-Server ausgeführt wird.
- Erstellen Sie eine Firewallregel, die Traffic von der Probe zulässt.
gcloud compute firewall-rules create VPC_NETWORK-allow-health-check --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 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 VPC_NETWORK-allow-internal --direction=INGRESS --priority=1000 --network=VPC_NETWORK --action=ALLOW --rules=all --source-ranges=SUBNET_RANGE_2
- Erstellen Sie einen Back-End-Dienst.
- Dienstanhang erstellen
- Erstellen Sie ein Subnetz für PSC NAT. Mit dem folgenden Befehl wird ein Subnetz mit dem Namen
psc-nat-subnet1
und dem ZweckPRIVATE_SERVICE_CONNECT
erstellt.gcloud compute networks subnets create psc-nat-subnet1 \ --network=VPC_NETWORK --range=SUBNET_RANGE_1 \ --purpose=PRIVATE_SERVICE_CONNECT
- Erstellen Sie eine Firewallregel, um Traffic vom PSC-NAT zum Load-Balancer zuzulassen.
gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \ --direction=INGRESS --network=VPC_NETWORK \ --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
- Erstellen Sie einen Dienstanhang mit expliziter Genehmigung.
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1
In diesem Befehl ist LIMIT das Verbindungslimit für das Projekt. Das Verbindungslimit gibt die Anzahl der PSC-Endpunkte an, die eine Verbindung zu diesem Dienst herstellen können. So rufen Sie das SERVICE_DIRECTORY_PROJECT_ID ab:
-
Sie können den PSC-Dienstanhang so erstellen, dass er nur Anfragen aus den angegebenen Google Cloud-Projekten akzeptiert. Dazu benötigen Sie jedoch die Projekt-ID des Dienstverzeichnisses, das Ihrem Google Cloud-Projekt zugeordnet ist. Um die Projekt-ID des Dienstverzeichnisses abzurufen, können Sie die List Connections API verwenden, wie im folgenden Beispiel gezeigt.
Syntax
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
Ersetzen Sie Folgendes:
- CONNECTORS_PROJECT_ID: Die ID Ihres Google Cloud-Projekts, in dem Sie die Verbindung erstellt haben.
Beispiel
In diesem Beispiel wird die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt
connectors-test
abgerufen.curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
Wenn Sie diesen Befehl im Terminal ausführen, wird eine Ausgabe wie die folgende angezeigt:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....
In der Beispielausgabe ist die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt
connectors-test
abcdefghijk-tp
.
-
- Erstellen Sie ein Subnetz für PSC NAT. Mit dem folgenden Befehl wird ein Subnetz mit dem Namen
Nachdem Sie einen PSC-Dienstanhang erstellt haben, erstellen Sie einen Endpunktanhang, um den PSC-Dienstanhang zu nutzen. Weitere Informationen finden Sie unter Endpunkt-Anhang erstellen.
Private Verbindungen für verschiedene Google Cloud-Projekte
In diesem Abschnitt wird beschrieben, wie Sie eine private Verbindung herstellen, wenn sich der Backend-Dienst und der PSC-Dienstanhang in verschiedenen Google Cloud-Projekten oder VPCs befinden.
Das folgende Bild zeigt die Einrichtung der privaten Netzwerkverbindung, bei der sich die PSC-Dienstanhänge und der Backend-Dienst in verschiedenen Google Cloud-Projekten befinden:
So richten Sie eine private Verbindung für verschiedene Google Cloud-Projekte ein:
- Private Verbindung konfigurieren
- Endpunktanhang erstellen, um den PSC-Dienstanhang zu nutzen
- Verbindung für die Verwendung des Endpunktanhangs konfigurieren
Private Verbindung konfigurieren
So konfigurieren Sie eine private Verbindung:
- Erstellen Sie ein Lastenausgleichsmodul. Wenn Sie bereits einen Load Balancer haben, überspringen Sie diesen Schritt.
- Erstellen Sie eine zonale NEG. Weitere Informationen finden Sie unter Zonale NEG erstellen.
- Fügen Sie die zonale NEG als Backend hinzu und erstellen Sie die folgenden Regeln:
- 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 eine Weiterleitungsregel.
- Dienstanhang erstellen
- Erstellen Sie ein Subnetz für PSC NAT. Mit dem folgenden Befehl wird ein Subnetz mit dem Namen
psc-nat-subnet1
und dem ZweckPRIVATE_SERVICE_CONNECT
erstellt.gcloud compute networks subnets create psc-nat-subnet1 \ --network=VPC_NETWORK --range=SUBNET_RANGE_1 \ --purpose=PRIVATE_SERVICE_CONNECT
- Erstellen Sie eine Firewallregel, um Traffic vom PSC-NAT zum Load-Balancer zuzulassen.
gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \ --direction=INGRESS --network=VPC_NETWORK \ --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
- Erstellen Sie einen Dienstanhang mit expliziter Genehmigung.
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1
In diesem Befehl ist LIMIT das Verbindungslimit für das Projekt. Das Verbindungslimit gibt die Anzahl der PSC-Endpunkte an, die eine Verbindung zu diesem Dienst herstellen können. So rufen Sie das SERVICE_DIRECTORY_PROJECT_ID ab:
-
Sie können den PSC-Dienstanhang so erstellen, dass er nur Anfragen aus den angegebenen Google Cloud-Projekten akzeptiert. Dazu benötigen Sie jedoch die Projekt-ID des Dienstverzeichnisses, das Ihrem Google Cloud-Projekt zugeordnet ist. Um die Projekt-ID des Dienstverzeichnisses abzurufen, können Sie die List Connections API verwenden, wie im folgenden Beispiel gezeigt.
Syntax
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
Ersetzen Sie Folgendes:
- CONNECTORS_PROJECT_ID: Die ID Ihres Google Cloud-Projekts, in dem Sie die Verbindung erstellt haben.
Beispiel
In diesem Beispiel wird die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt
connectors-test
abgerufen.curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
Wenn Sie diesen Befehl im Terminal ausführen, wird eine Ausgabe wie die folgende angezeigt:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....
In der Beispielausgabe ist die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt
connectors-test
abcdefghijk-tp
.
-
- Erstellen Sie ein Subnetz für PSC NAT. Mit dem folgenden Befehl wird ein Subnetz mit dem Namen
Integration Connectors-Projekt in einem Dienstanhang auf die Zulassungsliste setzen
Sie können den PSC-Dienstanhang so erstellen, dass er nur Anfragen aus den angegebenen Google Cloud-Projekten akzeptiert. Dazu benötigen Sie jedoch die Projekt-ID des Dienstverzeichnisses, das Ihrem Google Cloud-Projekt zugeordnet ist. Um die Projekt-ID des Dienstverzeichnisses abzurufen, können Sie die List Connections API verwenden, wie im folgenden Beispiel gezeigt.
Syntax
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
Ersetzen Sie Folgendes:
- CONNECTORS_PROJECT_ID: Die ID Ihres Google Cloud-Projekts, in dem Sie die Verbindung erstellt haben.
Beispiel
In diesem Beispiel wird die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt connectors-test
abgerufen.
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
Wenn Sie diesen Befehl im Terminal ausführen, wird eine Ausgabe wie die folgende angezeigt:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....
In der Beispielausgabe ist die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt connectors-test
abcdefghijk-tp
.
Nachdem Sie das Integration Connectors-Projekt in einem PSC-Dienstanhang auf die Zulassungsliste gesetzt haben, erstellen Sie einen Endpunktanhang, um den PSC-Dienstanhang zu nutzen. Weitere Informationen finden Sie unter Endpunkt-Anhang erstellen.
Endpunktanhang erstellen
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 den Verbindungsstatus, um zu bestätigen, dass die Endpunktanhänge richtig eingerichtet sind und die PSC-Verbindung hergestellt wurde. Weitere Informationen finden Sie unter Verbindung der Endpunktbefestigung prüfen.
- Achten Sie auf die folgende Konfiguration der Firewallregeln:
- Traffic aus dem Subnetz des PSC-Service-Anhangs muss Ihren Backend-Dienst erreichen dürfen.
- Der Load-Balancer muss Traffic an Ihren Backend-Dienst senden können.
- Passthrough-Load-Balancer (L4 TCP/UDP ILB)
Anfragen von den NAT-IPs der PSC-Dienstanhänge müssen Ihr Backend erreichen können. Diese NAT-IPs werden automatisch aus dem PSC-NAT-Subnetzbereich zugewiesen. Daher müssen Sie den gesamten IP-Bereich des NAT-Subnetzes zulassen, in dem sich Ihre Dienstanhänge befinden. Verwenden Sie den folgenden Befehl, um das PSC-NAT-Subnetz zu ermitteln:
gcloud compute networks subnets list --project=PROJECT_ID --region=REGION --filter="purpose=PRIVATE_SERVICE_CONNECT"
- Proxybasierte/HTTP(S)-Load-Balancer (L4-Proxy-ILB, L7-ILB)
Anfragen von einem Proxy-Load-Balancer stammen aus dem Nur-Proxy-Subnetz der Region. Daher müssen Ihre Firewallregeln so konfiguriert sein, dass Anfragen aus Nur-Proxy-Subnetzbereichen Ihr Backend erreichen können. Verwenden Sie den folgenden Befehl, um das Nur-Proxy-Subnetz zu finden:
gcloud compute networks subnets list --project=PROJECT_ID --region=REGION --filter="purpose=REGIONAL_MANAGED_PROXY"
- Die Systemdiagnoseprüfung muss auf Ihr Backend-System zugreifen können. Die Google Cloud-Systemdiagnosetests 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.
Informationen zur Fehlerbehebung bei Load Balancer-Problemen finden Sie unter Fehlerbehebung bei internen Application Load Balancern.
- Passthrough-Load-Balancer (L4 TCP/UDP ILB)
Anfragen von den NAT-IPs der PSC-Dienstanhänge müssen Ihr Backend erreichen können. Diese NAT-IPs werden automatisch aus dem PSC-NAT-Subnetzbereich zugewiesen. Daher müssen Sie den gesamten IP-Bereich des NAT-Subnetzes zulassen, in dem sich Ihre Dienstanhänge befinden. Verwenden Sie den folgenden Befehl, um das PSC-NAT-Subnetz zu ermitteln:
- 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.