Privaten Netzwerkzugriff konfigurieren

Wenn Sie den privaten Netzwerkzugriff so einrichten möchten, dass der Traffic innerhalb eines Google Cloud-Netzwerks ausgeführt wird, müssen Sie das Projekt, zu dem das VPC-Netzwerk gehört, das Service Directory-Projekt und das Google Cloud-Dienstprojekt, das Sie verwendet. Diese drei Projekte können identisch oder getrennt sein.

  • Netzwerkprojekt ist das Projekt des VPC-Netzwerks.
  • Service Directory project ist das Projekt des Service Directory-Dienstes. Dieses Projekt kann ein Dienstprojekt im freigegebenen VPC-Netzwerk des Netzwerkprojekts sein.
  • Google Cloud-Dienstprojekt ist das Projekt mit der Konfiguration, die den privaten Netzwerkzugriff aufruft. Beispiel: eine Google Cloud-Dienstkonfiguration.

Hinweis

Bei diesem Verfahren wird davon ausgegangen, dass Sie die folgenden Schritte ausgeführt haben.

  • Aktivieren Sie die APIs, auf die Sie über die Seite APIs und Dienste in der Google Cloud Console, einschließlich der Service Directory API, zugreifen möchten.
  • VM-Instanzen in einem VPC-Netzwerk müssen eine private IP-Adresse haben.
  • Für lokale Hosts muss ein Cloud VPN-Tunnel oder eine Cloud Interconnect-Verbindung zu Ihrem VPC-Netzwerk vorhanden sein.

Netzwerkprojekt konfigurieren

Führen Sie die folgenden Schritte aus, um das Netzwerkprojekt zu konfigurieren.

  1. Erstellen oder verwenden Sie ein vorhandenes VPC-Netzwerk. Es werden VPC-Netzwerke im automatischen und im benutzerdefinierten Modus unterstützt. Legacy-Netzwerke werden nicht unterstützt.
  2. Wenn das Ziel eine Compute Engine-VM oder ein internes Load-Balancer-Back-End ist, müssen Sie eingehenden Traffic über die VPC-Firewall für den privaten Netzwerkzugriff zulassen. Die Ziele müssen TCP-Traffic von 35.199.192.0/19 an dem entsprechenden Port zulassen (Port 443 oder 80).

  3. Gewähren Sie dem Google Cloud-Dienstprojekt die Zugriffsberechtigung für das Service Directory-Netzwerk (Identity and Access Management) (IAM). Das Google Cloud-Projekt muss sich im VPC Service Controls-Perimeter des Google Cloud-Diensts und des Service Directory-Projekts für servicedirectory.googleapis.com befinden.

    Weitere Informationen zu VPC Service Controls finden Sie hier.

Service Directory-Projekt konfigurieren

Führen Sie die folgenden Schritte aus, um das Service Directory-Projekt zu konfigurieren.

  1. Erstellen Sie eine virtuelle Maschine (VM) oder einen internen Load-Balancer im VPC-Netzwerk.
  2. Erstellen Sie einen Service Directory-Dienst, der auf die VM oder den internen Load-Balancer verweist, die Sie im VPC-Netzwerk erstellt haben.
  3. Gewähren Sie dem IAM-Dienstkonto von Google Cloud Service Directory Zugriff auf das Google Cloud-Dienstkonto. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Dienstverzeichnis-Berechtigungen und -Rollen.

Endpunkt mit privatem Netzwerkzugriff erstellen

So erstellen Sie einen Endpunkt mit konfiguriertem privaten Netzwerkzugriff:

Console

  1. Rufen Sie in der Google Cloud Console die Seite "Service Directory-Namespaces" auf.
    Zur Seite "Service Directory-Namespaces"
  2. Klicken Sie auf einen Namespace.
  3. Klicken Sie auf einen Dienst.
  4. Klicken Sie auf und dann auf Endpunkt hinzufügen.
  5. Geben Sie einen Endpunktnamen an.
  6. Geben Sie eine IPv4-IP-Adresse ein, z. B. 192.0.2.0/24.
  7. Geben Sie eine Portnummer ein, zum Beispiel 443 oder 80.
  8. Wenn Sie den privaten Netzwerkzugriff aktivieren möchten, klicken Sie auf Aus der Liste auswählen, um eine Option aus der Liste der verfügbaren Netzwerke unter Verknüpftes VPC-Netzwerk auszuwählen.
  9. Sie können auch eine bestimmte Projekt-ID und den Netzwerknamen angeben. Wählen Sie dazu Anhand eines Projekts und Netzwerknamens angeben aus.
  10. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl gcloud beta service-directory endpoints create mit der angegebenen Projekt-ID und dem angegebenen Netzwerkpfad aus.

gcloud beta service-directory endpoints create ENDPOINT_NAME
    --project=PROJECT_ID \
    --location=REGION \
    --namespace=NAMESPACE_NAME \
    --service=SERVICE_ID \
    --address=IP_ADDRESS \
    --port=PORT_NUMBER \
    --network=NETWORK_PATH

Dabei gilt:

  • ENDPOINT_NAME: ein Name für den Endpunkt, den Sie in Ihrem Dienst erstellen, z. B. my-endpoint
  • PROJECT_ID ist die ID des Projekts.
  • REGION: Google Cloud-Region, die den Namespace enthält
  • NAMESPACE_NAME: der Name, den Sie den Namespace gegeben haben, z. B. my-namespace
  • SERVICE_ID: ID des Dienstes
  • IP_ADDRESS: die IP-Adresse des Endpunkts, z. B. 192.0.2.0/24
  • PORT_NUMBER: Die Ports, auf denen die Endpunkte ausgeführt werden (in der Regel 443 oder 80)
  • NETWORK_PATH: URL zum Netzwerk, z. B. projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME

Google Cloud-Dienstprojekt konfigurieren

  1. Aktivieren der Google Cloud Service API
  2. Konfigurieren Sie Ihren Google Cloud-Dienst mit dem Service Directory-Dienst, den Sie im Netzwerkprojekt erstellt haben.
  3. Wenn Sie VPC Service Controls verwenden, muss der VPC Service Controls-Perimeter den Dienstzugriff auf das Netzwerkprojekt und das Service Directory-Projekt zulassen.

Anwendungsfälle

Der folgende Abschnitt enthält Anwendungsfälle für die Konfiguration des privaten Netzwerkzugriffs.

HTTP-Endpunkt aufrufen, wenn sich ein VPC-Netzwerk, eine VM und ein Service Directory im selben Projekt befinden

Sie können ein Google Cloud-Produkt so einrichten, dass es einen HTTP-Endpunkt auf Ihrer VM aufruft. Dieser Traffic darf nicht über das öffentliche Internet übertragen werden.

In dieser Konfiguration haben Sie ein Projekt mit einem VPC-Netzwerk, einer VM, einem Service Directory-Dienst und dem Google Cloud-Dienst im selben Projekt.

Zulassen, dass die Google-Dienstkonfiguration eines Projekts eine ausgehende Netzwerk-VM im Google Cloud-Dienstprojekt zulässt
Google-Dienstkonfiguration eines Projekts für ausgehenden Traffic zu einer Netzwerk-VM erlauben, die sich im VPC-Netzwerk eines Google Cloud-Dienstprojekts (Zum Vergrößern klicken)

So richten Sie Ihr Google Cloud-Produkt mithilfe des privaten Netzwerkzugriffs ein:

Netzwerk und Zielnetzwerk einrichten

  1. Erstellen Sie ein Projekt wie my-project.
  2. Erstellen Sie ein VPC-Netzwerk, z. B. VPC-1 (projects/project-number/locations/global/networks/my-network).
  3. Gewähren Sie Proxyzugriff auf VPC-1 oder auf das Subnetz oder die VM.
  4. Eingehender Traffic von 35.199.192.0/19 zulassen.
  5. Erstellen Sie VM-1 in der Region us-central1 in VPC-1.
  6. Richten Sie es so ein, dass der Dienst über Port P ausgeführt wird.
  7. Wenn Sie lieber HTTPS verwenden möchten, müssen Sie ein TLS-Zertifikat (Public Key Infrastructure Transport Security, TLS) installiert haben.
  8. Erstellen Sie einen Service Directory-Dienst SD-1 in REGION-1.
  9. Erstellen Sie in SD-1 einen Endpunkt mit der internen IP-Adresse VM-1=10.10.10.10, P=443 und network=projects/project-number/global/networks/my-network. Eine ausführliche Anleitung finden Sie unter Endpunkt mit privatem Netzwerkzugriff erstellen.
  10. Gewähren Sie dem Google Cloud-Dienstkonto die folgenden IAM-Rollen:

    • servicedirectory.viewer
    • servicedirectory.pscAuthorizedService
  11. Optional können Sie VM-2 einrichten und Endpoint-2 hinzufügen.

Google Cloud-Produkt einrichten

  1. Google Cloud-Produktkonfiguration CONFIG-1 konfigurieren, z. B. "Cloud Scheduler, rufe mich jede Minute an".
  2. Richten Sie eine HTTP-Anfrage ein.
  3. Geben Sie an, dass die Anfrage über private Netzwerke erfolgen soll, z. B. über SD-1.
  4. (Optional) Konfigurieren Sie die Einstellungen des Zertifizierungsstellens.

Das Google Cloud-Produkt kann jetzt die HTTP-Anfrage mit SD-1 aufrufen.

HTTP-Endpunkt aufrufen, wenn sich ein VPC-Netzwerk, eine VM und ein Service Directory in verschiedenen Projekten befinden

In dieser Beispielkonfiguration möchten Sie einen Google Cloud-Dienst wie Ereignisse, Aufgaben oder Pub/Sub einrichten, um einen HTTP-Endpunkt auf Ihrer VM aufzurufen. In diesem Beispiel unterscheiden sich das Service Directory-Projekt, das Netzwerkprojekt und die Google Cloud-Dienstprojekte. Dieser Traffic darf nicht über das öffentliche Internet übertragen werden. Optional kann dieser API-Aufruf den Perimeter der VPC Service Controls berücksichtigen.

In diesem Fall aktiviert die Konfiguration des Google Cloud-Dienstprojekts eine ausgehende Google Cloud-Dienst-VM, die sich im VPC-Netzwerk des Netzwerkprojekts befindet.

Das Google Cloud-Dienstprojekt kann sich vom Erstellerprojekt unterscheiden. Beide VPC Service Controls-Perimeter werden von beiden Projekten verwendet.

Traffic mit privatem Netzwerkzugriff senden und VPC Service Controls-Perimeter erzwingen
Traffic mit privatem Netzwerkzugriff mit erzwungenen VPC Service Controls-Perimetern senden (zum Vergrößern klicken)

Netzwerkprojekt erstellen

Prüfen Sie, ob Sie die folgenden IAM-Berechtigungen haben:

  • servicedirectory.services.resolve für den Messaging-Dienst
  • servicedirectory.networks.access für das Netzwerk

Wichtige Hinweise:

  • Das Service Directory-Projekt und das Netzwerkprojekt müssen nicht verbunden sein, müssen aber Teil derselben VPC Service Controls sein.
  • Die Firewall und IAM sind standardmäßig für das Netzwerk und den Dienst deaktiviert.

So erstellen Sie das Netzwerkprojekt:

  1. Erstellen Sie ein VPC-Netzwerk, z. B. VPC-1 (projects/project-number/locations/global/networks/my-network).
  2. Aktivieren Sie die VPC-Netzwerkfirewall.

  3. Wenn Sie VPC Service Controls verwenden, ermöglicht der VPC Service Controls-Perimeter die Verwendung von Service Directory mit dem Google Cloud-Dienstprojekt und dem Service Directory-Projekt.

Service Directory-Projekt konfigurieren

  1. Erstellen Sie im VPC-Netzwerk eine VM oder einen internen Load-Balancer.
  2. Erstellen Sie einen Service Directory-Dienst, der auf die VM oder den internen Load-Balancer im VPC-Netzwerk verweist.
  3. Gewähren Sie dem IAM-Dienstverzeichnis service read-Zugriff auf den Google Cloud-Dienstprojektdienst.
  4. Wenn Sie VPC Service Controls verwenden, ermöglicht der VPC Service Controls-Perimeter die Verwendung von Service Directory mit dem Google Cloud-Dienstprojekt und dem Service Directory-Projekt.

Google Cloud-Dienstprojekt konfigurieren

  1. Aktivieren Sie die API für den von Ihnen verwendeten Messaging-Dienst.
  2. Konfigurieren Sie den Messaging-Dienst PUSH mit dem Service Directory-Dienst aus dem Service Directory-Projekt.
  3. Wenn Sie VPC Service Controls verwenden, ermöglicht der VPC Service Controls-Perimeter das Herstellen einer Verbindung zum Netzwerkprojekt und zum Dienstprojektverzeichnis.

Nächste Schritte