In dieser Anleitung wird beschrieben, wie Sie als Dienstnutzer auf Ihren veröffentlichten Dienst zugreifen können, indem Sie einen Private Service Connect-Endpunkt erstellen. Wenn Sie Anfragen an den Endpunkt senden, leitet Private Service Connect diese Anfragen an den veröffentlichten Dienst weiter.
Diese Anleitung richtet sich an Cloudarchitekten, Netzwerkarchitekten, Netzwerkadministratoren und IT-Administratoren.
Ziele
- Netzwerk für die Ressourcen des Dienstnutzers konfigurieren
- Endpunkt erstellen
- Auf den Endpunkt zugreifen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Arbeiten Sie die beiden vorherigen Anleitungen dieser Reihe durch:
- Dienst mit Lastenausgleich erstellen
- Dienst für andere VPC-Netzwerke zugänglich machen Für diese Anleitung benötigen Sie die ID des Dienstanhangs.
- Erstellen oder wählen Sie ein Projekt aus, das für die Ressourcen des Dienstnutzers verwendet werden soll.
Dieses Projekt wird als
CONSUMER_PROJECTbezeichnet. -
Rufen Sie in der Google Cloud Console die Seite für die Projektauswahl auf.
-
Wählen Sie ein Google Cloud Projekt aus oder erstellen Sie eines.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
Aktivieren Sie die Compute Engine API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen-
Achten Sie darauf, dass Sie die folgenden Rollen für das Projekt haben: Compute Engine > Compute-Netzwerkadministrator, Compute Engine > Compute-Instanzadministrator
Rollen prüfen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
-
Suchen Sie in der Spalte Hauptkonto nach allen Zeilen, in denen Sie oder eine Gruppe, zu der Sie gehören, angegeben sind. Fragen Sie Ihren Administrator, zu welchen Gruppen Sie gehören.
- Prüfen Sie in allen Zeilen, in denen Sie angegeben oder enthalten sind, die Spalte Rolle, um zu sehen, ob die Liste der Rollen die erforderlichen Rollen enthält.
Rollen zuweisen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf Zugriffsrechte erteilen.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Das ist in der Regel die E‑Mail-Adresse eines Google-Kontos.
- Klicken Sie auf Rolle auswählen und suchen Sie dann nach der Rolle.
- Klicken Sie auf Weitere Rolle hinzufügen, wenn Sie weitere Rollen zuweisen möchten.
- Klicken Sie auf Speichern.
-
Netzwerk konfigurieren
In den folgenden Abschnitten wird beschrieben, wie Sie ein Netzwerk und ein Subnetz zum Hosten des Endpunkts erstellen und wie Sie eine Firewallregel erstellen, um SSH-Zugriff auf die Client-VM zu ermöglichen, die zum Testen des Endpunkts verwendet wird.
Netzwerk und Subnetz erstellen
So erstellen Sie das Netzwerk und das Subnetz des Dienstnutzers:
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
consumer-networkein.Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.
Geben Sie im Bereich Neues Subnetz die folgenden Informationen ein.
- Geben Sie für Name
consumer-subnetein. - Wählen Sie unter Region dieselbe Region wie für den veröffentlichten Dienst aus, den Sie erstellt haben.
- Wählen Sie für IP-Stack-Typ die Option IPv4 (Single-Stack) aus.
- Geben Sie unter IPv4-Bereich
192.168.10.0/24ein. - Klicken Sie auf Fertig.
- Geben Sie für Name
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus:
gcloud compute networks create consumer-network --subnet-mode=custom
Erstellen Sie im Netzwerk
consumer-networkein Subnetz.gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --range=192.168.10.0/24 \ --region=REGIONErsetzen Sie
REGIONdurch dieselbe Region wie den veröffentlichten Dienst, den Sie erstellt haben.
Firewallregeln konfigurieren
Erstellen Sie eine Firewallregel mit dem Namen fw-allow-ssh, damit SSH-Traffic von 0.0.0.0/0 VMs mit dem Netzwerk-Tag allow-ssh erreichen kann.
Console
Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.
Klicken Sie auf Firewallregel erstellen und verwenden Sie die folgenden Einstellungen, um eingehende SSH-Verbindungen zuzulassen:
- Geben Sie für Name
fw-allow-sshein. - Wählen Sie für Netzwerk die Option
consumer-networkaus. - Geben Sie
1000als Priorität ein. - Wählen Sie für Traffic-Richtung die Option Eingehend aus.
- Wählen Sie für Aktion bei Übereinstimmung die Option Zulassen aus.
- Wählen Sie unter Ziele die Option Angegebene Ziel-Tags aus.
- Geben Sie für Ziel-Tags
allow-sshein. - Wählen Sie für Quellfilter die Option IPv4-Bereiche aus.
- Geben Sie unter Quell-IPv4-Bereiche den Wert
0.0.0.0/0ein. - Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus und klicken Sie das Kästchen TCP an. Geben Sie für Ports den Wert
22ein.
- Geben Sie für Name
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Firewallregel
fw-allow-ssh, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tagallow-sshzu ermöglichen.gcloud compute firewall-rules create fw-allow-ssh \ --network=consumer-network \ --action=allow \ --direction=ingress \ --source-ranges=0.0.0.0/0 \ --target-tags=allow-ssh \ --rules=tcp:22
Endpunkt erstellen
Erstellen Sie einen Endpunkt, der auf den von Ihnen erstellten veröffentlichten Dienst verweist.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbundene Endpunkte.
Klicken Sie auf Endpunkt verbinden.
Wählen Sie für Ziel die Option Veröffentlichter Dienst aus.
Geben Sie für Zieldienst
projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-serviceein.Ersetzen Sie
PRODUCER_PROJECTdurch die Projekt-ID des veröffentlichten Dienstes. Ersetzen SieREGIONdurch die Region des veröffentlichten Dienstes.Geben Sie unter Endpunktname
ep-1ein.Wählen Sie für Netzwerk die Option
consumer-networkaus.Wählen Sie für Subnetzwerk die Option
consumer-subnetaus.Klicken Sie auf das Drop-down-Menü IP-Adresse und wählen Sie IP-Adresse erstellen aus.
- Geben Sie für Name
ep-ip-1ein. - Wählen Sie für Statische IP-Adresse die Option Selbst auswählen aus.
- Geben Sie als Benutzerdefinierte IP-Adresse
192.168.10.5ein. - Klicken Sie auf Reservieren.
- Geben Sie für Name
Klicken Sie auf Endpunkt hinzufügen.
gcloud
Reservieren Sie eine interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten.
gcloud compute addresses create ep-ip-1 \ --region=REGION \ --subnet=consumer-subnet \ --addresses=192.168.10.5Ersetzen Sie
REGIONdurch dieselbe Region wie den veröffentlichten Dienst, den Sie erstellt haben.Erstellen Sie eine Weiterleitungsregel, um den Endpunkt mit dem Dienstanhang des Diensterstellers zu verbinden.
gcloud compute forwarding-rules create ep-1 \ --region=REGION \ --network=consumer-network \ --address=ep-ip-1 \ --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-serviceErsetzen Sie Folgendes:
PRODUCER_PROJECT: die Projekt-ID des Diensterstellerprojekts.REGION: die Region des Dienstanhangs.
Auf den Endpunkt zugreifen
Um zu testen, ob der Endpunkt und der veröffentlichte Dienst funktionieren, erstellen Sie eine Test-VM und senden Sie eine Anfrage von dieser VM an den Endpunkt.
Client-VM zum Testen erstellen
Erstellen Sie eine Client-VM in derselben Region wie der Endpunkt.
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf Instanz erstellen.
Geben Sie für Name
consumer-testein.Wählen Sie unter Region dieselbe Region wie für die Backend-VMs aus.
Wählen Sie als Zone eine Zone in dieser Region aus.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags den Wert
allow-sshein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Wählen Sie für Netzwerk die Option
consumer-networkaus. - Wählen Sie für Subnetz die Option
consumer-subnetaus.
- Wählen Sie für Netzwerk die Option
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Erstellen.
gcloud
gcloud compute instances create consumer-test \
--zone=ZONE \
--image-family=debian-12 \
--image-project=debian-cloud \
--tags=allow-ssh \
--subnet=consumer-subnet
Ersetzen Sie ZONE durch eine Zone in derselben Region wie die Backend-VMs.
Verbindung testen
Bei diesem Test wird der Endpunkt von einer Client-VM aus kontaktiert. Dabei wird folgendes Verhalten erwartet: Der Traffic wird auf die Backend-VMs des Load-Balancers verteilt.
- Stellen Sie eine Verbindung zur Client-VM-Instanz her.
Ersetzen Siegcloud compute ssh consumer-test --zone=ZONE
ZONEdurch die Zone der Client-VM. - Stellen Sie mit
curleine Webanfrage an den Endpunkt, um dessen IP-Adresse zu kontaktieren. Wiederholen Sie die Anfrage. So können Sie sehen, dass Antworten von verschiedenen Back-End-VMs stammen. Der Name der VM, die die Antwort generiert, wird aufgrund des Inhalts von/var/www/html/index.htmlauf jeder Backend-VM im Text der HTML-Antwort angezeigt. Die erwarteten Antworten sehen beispielsweise so aus:Page served from: vm-1undPage served from: vm-2.curl -s http://192.168.10.5
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekte löschen
Löschen Sie sowohl das Producer-Projekt (PRODUCER_PROJECT) als auch das Consumer-Projekt (CONSUMER_PROJECT).
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID
Nächste Schritte
- Weitere Informationen zu veröffentlichten Diensten mit Private Service Connect
- Weitere Informationen zum Zugriff auf veröffentlichte Dienste über Endpunkte
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center