Auf den Dienst über ein anderes VPC-Netzwerk zugreifen

In dieser Anleitung wird erklärt, 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 Cloud-Architekten, Netzwerkarchitekten, Netzwerkadministratoren und IT-Administratoren.

Ziele

  • Netzwerk für die Ressourcen des Dienstnutzers konfigurieren
  • Endpunkt erstellen
  • Zugriff auf den Endpunkt testen

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. Verwenden Sie den Preisrechner.

Neuen Google Cloud Nutzern vonsteht möglicherweise eine kostenlose Testversion zur Verfügung.

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

  1. Führen Sie die beiden vorherigen Anleitungen in dieser Reihe aus:
  2. Erstellen oder wählen Sie ein Projekt aus, das für die Ressourcen des Dienstnutzers verwendet werden soll. Dieses Projekt wird als CONSUMER_PROJECT bezeichnet.
    1. Rufen Sie in der Google Cloud Console die Seite für die Projektauswahl auf.

      Zur Projektauswahl

    2. Wählen Sie ein Google Cloud Projekt aus oder erstellen Sie eines.

      Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts

      • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges 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 resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
  3. Aktivieren Sie die Compute Engine API.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Rollen zuweisen.

    API aktivieren

  4. Achten Sie darauf, dass Sie die folgenden Rollen für das Projekt haben: „Compute Engine > Compute-Netzwerkadministrator“ und „Compute Engine > Compute-Instanzadministrator“

    Rollen prüfen

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Suchen Sie in der Spalte Hauptkonto alle Zeilen, in denen Sie oder eine Gruppe, zu der Sie gehören, angegeben sind. Informationen zu den Gruppen, zu denen Sie gehören, erhalten Sie von Ihrem Administrator.

    4. Prüfen Sie in allen Zeilen, in denen Sie angegeben sind oder die Sie enthalten, in der Spalte Rolle , ob die Liste der Rollen die erforderlichen Rollen enthält.

    Rollen zuweisen

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Klicken Sie auf „Zugriffsrechte erteilen.
    4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Das ist in der Regel die E‑Mail-Adresse eines Google-Kontos.

    5. Klicken Sie auf Rolle auswählen und suchen Sie nach der Rolle.
    6. Klicken Sie auf Add another role, wenn Sie weitere Rollen zuweisen möchten.
    7. Klicken Sie auf Speichern.

Netzwerk konfigurieren

In den folgenden Abschnitten wird erläutert, 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

Gehen Sie so vor, um das Netzwerk und das Subnetz des Dienstnutzers zu erstellen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie für Name consumer-network ein.

  4. Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.

  5. Geben Sie im Bereich Neues Subnetz folgende Informationen ein.

    1. Geben Sie für Name consumer-subnet ein.
    2. Wählen Sie unter Region dieselbe Region wie für den erstellten veröffentlichten Dienst aus, den Sie erstellt haben.
    3. Wählen Sie für IP-Stack-Typ die Option IPv4 (Single-Stack) aus.
    4. Geben Sie unter IPv4-Bereich 192.168.10.0/24 ein.
    5. Klicken Sie auf Fertig.
  6. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus:

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. Erstellen Sie im Netzwerk consumer-network ein Subnetz.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --range=192.168.10.0/24 \
        --region=REGION
    

    Ersetzen Sie REGION durch dieselbe Region wie für den erstellten veröffentlichten Dienst.

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

  1. Rufen Sie in der Google Cloud Console die Seite Firewallrichtlinien auf.

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen und verwenden Sie die folgenden Einstellungen, um eingehende SSH-Verbindungen zuzulassen:

    • Geben Sie für Name fw-allow-ssh ein.
    • Wählen Sie für Netzwerk die Option consumer-network aus.
    • Geben Sie als Priorität 1000 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-ssh ein.
    • Wählen Sie unter Quellfilter die Option IPv4-Bereiche aus.
    • Geben Sie unter Quell-IPv4-Bereiche 0.0.0.0/0 ein.
    • Wählen Sie für Protokolle und Ports die Option Angegebene Protokolle und Ports aus, aktivieren Sie das Kästchen TCP. Geben Sie für Ports 22 ein.
  3. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie die Firewallregel fw-allow-ssh, die SSH-Verbindungen zu VMs mit dem Netzwerk-Tag allow-ssh zulässt.

    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 erstellten veröffentlichten Dienst verweist.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

  3. Klicken Sie auf Endpunkt verbinden.

  4. Wählen Sie für Ziel die Option Veröffentlichter Dienst aus.

  5. Geben Sie für Zieldienst projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service ein.

    Ersetzen Sie PRODUCER_PROJECT durch die Projekt-ID des veröffentlichten Dienstes. Ersetzen Sie REGION durch die Region des veröffentlichten Dienstes.

  6. Geben Sie unter Endpunktname ep-1 ein.

  7. Wählen Sie für Netzwerk die Option consumer-network aus.

  8. Wählen Sie für Subnetzwerk die Option consumer-subnet aus.

  9. Klicken Sie auf das Drop-down-Menü IP-Adresse und wählen Sie IP-Adresse erstellen aus.

    1. Geben Sie für Name ep-ip-1 ein.
    2. Wählen Sie für Statische IP-Adresse die Option Selbst auswählen aus.
    3. Geben Sie als Benutzerdefinierte IP-Adresse 192.168.10.5 ein.
    4. Klicken Sie auf Reservieren.
  10. Klicken Sie auf Endpunkt hinzufügen.

gcloud

  1. 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.5
    

    Ersetzen Sie REGION durch dieselbe Region wie für den erstellten veröffentlichten Dienst.

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

    Ersetzen Sie Folgendes:

    • PRODUCER_PROJECT: die Projekt-ID des Diensterstellerprojekts.

    • REGION: die Region des Dienstanhangs.

Zugriff auf den Endpunkt testen

Um zu testen, ob der Endpunkt und der veröffentlichte Dienst funktionieren, erstellen Sie eine Test-VM und senden Sie von dieser eine Anfrage an den Endpunkt.

Client-VM zum Testen erstellen

Erstellen Sie eine Client-VM in derselben Region wie der Endpunkt.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie für Name consumer-test ein.

  4. Wählen Sie unter Region dieselbe Region wie für die Backend-VMs aus.

  5. Wählen Sie als Zone eine Zone in dieser Region aus.

  6. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:

    1. Geben Sie bei Netzwerk-Tags den Wert allow-ssh ein.
    2. Wählen Sie für Netzwerkschnittstellen Folgendes aus:
      • Wählen Sie für Netzwerk die Option consumer-network aus.
      • Wählen Sie für Subnetz die Option consumer-subnet aus.
  7. 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, die sich in derselben Region wie die Backend-VMs befindet.

Verbindung testen

Dieser Test kontaktiert den Endpunkt von einer Client-VM aus. Dabei wird folgendes Verhalten erwartet: Der Traffic wird auf die Backend-VMs des Load-Balancers verteilt.

  1. Stellen Sie eine Verbindung zur Client-VM-Instanz her.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Ersetzen Sie ZONE durch die Zone der Client-VM.
  2. Stellen Sie mit curl eine 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.html auf jeder Backend-VM im Text der HTML-Antwort angezeigt. Erwartete Antworten sehen beispielsweise so aus: Page served from: vm-1 und Page 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 Erstellerprojekt (PRODUCER_PROJECT) als auch das Nutzerprojekt (CONSUMER_PROJECT).

    Projekt löschen: Google Cloud

    gcloud projects delete PROJECT_ID

Nächste Schritte