Auf regionale Google APIs über Endpunkte zugreifen

In diesem Dokument wird erläutert, wie Sie Private Service Connect-Endpunkte verwenden, um eine Verbindung zu regionalen Endpunkten der unterstützten Google APIs herzustellen.

Informationen zu anderen Private Service Connect-Konfigurationen finden Sie unter Private Service Connect.

Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das VPC-Netzwerk zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines regionalen Private Service Connect-Endpunkts benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Hinweise

  1. Install the Google Cloud CLI, then initialize it by running the following command:

    $ gcloud init

  2. Enable the Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory APIs.

    Enable the APIs

  3. Aktivieren Sie die Google APIs, auf die Sie über Private Service Connect-Endpunkte zugreifen möchten. Verwenden Sie dazu die Seite APIs und Dienste in Die Google Cloud Console. Private Service Connect aktiviert keine API automatisch.

  4. Achten Sie darauf, dass Firewallregeln für ausgehenden Traffic Traffic zum Endpunkt zulassen. Die Standardkonfiguration der Firewall für ein VPC-Netzwerk erlaubt diesen Traffic, da er eine implizierte Regel zum Zulassen von ausgehendem Traffic enthält. Achten Sie darauf, dass Sie keine Regel für ausgehenden Traffic mit einer höheren Priorität erstellt haben, die den Traffic blockiert.

  5. Lesen Sie die Einschränkungen.

Regionalen Private Service Connect-Endpunkt erstellen

Sie können einen regionalen Private Service Connect-Endpunkt erstellen, um Anfragen an einen regionalen Endpunkt für eine Google-Ziel-API zu senden.

Eine Liste der unterstützten regionalen Endpunkte finden Sie unter Unterstützte Regionen und Dienste.

Hostnamen regionaler Endpunkte haben zwei Formen:

  • Öffentliche Hostnamen: SERVICE.REGION.rep.DOMAIN
  • Private Hostnamen: SERVICE.REGION.p.rep.DOMAIN

    Der private Hostname fügt eine p-Subdomain zwischen REGION und rep hinzu.

Wenn Sie die Google-Ziel-API konfigurieren, geben Sie die private Form des Hostnamens an, z. B. spanner.me-central2.p.rep.googleapis.com. Nachdem Sie den Endpunkt erstellt haben, erstellen Sie einen privaten DNS-Eintrag für den Endpunkt und verwenden Sie dabei denselben Hostnamen für den privaten regionalen Endpunkt.

Obwohl Sie den Private Service Connect-Endpunkt mit einem beliebigen Namen konfigurieren können, empfehlen wir zur Vereinfachung der Wartung den Dienstnamen der Google-Ziel-API, damit der DNS-Name mit dem Endpunktnamen übereinstimmt. Wenn der Endpunkt beispielsweise das Ziel spanner.me-central2.p.rep.googleapis.com hat, verwenden Sie spanner als Endpunktnamen.

gcloud

Nutzen Sie den Befehl regional-endpoints create:

gcloud beta network-connectivity regional-endpoints create ENDPOINT_NAME \
    --region=REGION \
    --network=NETWORK_URI \
    --subnetwork=SUBNET_URI \
    --target-google-api=REP_NAME

Wenn Sie den Endpunkt für Ressourcen in anderen Regionen verfügbar machen möchten, fügen Sie das Flag --enable-global-access hinzu.

Ersetzen Sie Folgendes:

  • ENDPOINT_NAME: ein Name für den Endpunkt.

  • REGION: die Region, in der Sie den Endpunkt erstellen möchten.

  • NETWORK_URI: der URI des VPC-Netzwerks für den Endpunkt: projects/PROJECT_ID/global/networks/NETWORK_NAME.

  • SUBNET_URI: der URI des Subnetzes, mit dem Sie den Endpunkt verbinden möchten: projects/PROJECT_ID/regions/SUBNET_NAME.

  • REP_NAME: Der Name des regionalen Dienstendpunkts, zu dem Sie eine Verbindung herstellen möchten. Beispiel: spanner.me-central2.p.rep.googleapis.com

Endpunkte auflisten

Sie können alle konfigurierten Endpunkte auflisten.

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.

    Alle Endpunkte werden angezeigt, einschließlich der Endpunkte mit regionalen Endpunktzielen.

gcloud

Nutzen Sie den Befehl regional-endpoints list:

gcloud beta network-connectivity regional-endpoints list \
    --region=REGION

Ersetzen Sie REGION durch die Region der Endpunkte, die Sie auflisten möchten.

Funktionsweise des Endpunkts prüfen

Erstellen Sie eine VM-Instanz im VPC-Netzwerk und in der Region, in der der Endpunkt konfiguriert ist. Führen Sie den folgenden Befehl auf der VM aus, um zu prüfen, ob der Private Service Connect-Endpunkt funktioniert. Endpunkte reagieren nicht auf Ping-Anfragen (ICMP).

curl --connect-to SERVICE.REGION.p.rep.DOMAIN:443:ENDPOINT_IP:443 \
'SERVICE.REGION.p.rep.DOMAIN/PATH'

Ersetzen Sie Folgendes:

  • SERVICE: der Dienst, auf den der Endpunkt verweist. Beispiel: spanneroder logging
  • REGION: die Region des Endpunkts.
  • DOMAIN: die Domain des Dienstes. Beispiel: googleapis.com
  • ENDPOINT_IP: die IP-Adresse des Endpunkts.
  • PATH: der Pfad zu einer Ressource, die von diesem Dienst bereitgestellt wird. Viele Dienste bieten beispielsweise ein Discovery-Dokument mit dem Pfad $discovery/rest?version=v1 an.

Mit der folgenden Beispielanfrage wird getestet, ob ein Endpunkt mit der IP-Adresse 192.168.1.100 das Discovery-Dokument der Cloud Spanner API vom regionalen Endpunkt in me-central2 anfordern kann.

curl --connect-to spanner.me-central2.p.rep.googleapis.com:443:192.168.1.100:443 \
'https://spanner.me-central2.p.rep.googleapis.com/$discovery/rest?version=v1'

Privaten DNS-Eintrag für den Endpunkt erstellen

Sie müssen DNS-Einträge für die Endpunkte im folgenden Format erstellen: SERVICE.REGION.p.rep.DOMAIN. Sie können die DNS-Einträge mit Cloud DNS erstellen.

  1. Erstellen Sie eine private DNS-Zone im folgenden Format: REGION.p.rep.DOMAIN.

    Wenn Sie beispielsweise einen regionalen Endpunkt in der Domain googleapis.com in der Region me-central2 verwenden möchten, erstellen Sie eine private DNS-Zone mit dem Namen me-central2.p.rep.googelapis.com.

  2. Erstellen Sie einen DNS-Eintrag, der auf die IP-Adresse verweist, die dem Endpunkt zugewiesen ist. Der Hostname muss mit dem Dienstnamen SERVICE übereinstimmen. Beispielsweise sind spanner oder logging Dienstnamen.

Wenn Ihr Endpunkt beispielsweise mit dem Ziel spanner.me-central2.p.rep.googleapis.com konfiguriert ist, erstellen Sie eine private DNS-Zone mit dem Namen me-central2.p.rep.googelapis.com und einen A-Eintrag mit dem Namen spanner, der auf die Endpunkt-IP-Adresse verweist: Der vollständig qualifizierte Domainname des Endpunkts ist spanner.me-central2.p.rep.googelapis.com.

Clients für die Verwendung des Namens des privaten Endpunkts konfigurieren

Sie müssen Clients so konfigurieren, dass sie die privaten DNS-Namen anstelle der öffentlichen DNS-Namen verwenden. Weitere Informationen zur Konfiguration der Verwendung für benutzerdefinierte Endpunkte finden Sie in der Dokumentation zu Ihrem Client oder Ihrer Clientbibliothek. Beispiel:

  • Python: Sie können api_endpoint unter Clientoptionen konfigurieren.

  • Go: Sie können WithEndpoint unter ClientOptions konfigurieren.

  • .NET: Sie können Endpoint in der Builder-Klasse des Clients konfigurieren.

  • gcloud: Sie können api_endpoint_overrides in der gcloud CLI konfigurieren.

Detaillierte Informationen zu einem Endpunkt abrufen

Sie können die Konfigurationsdetails eines Endpunkts aufrufen.

gcloud

Nutzen Sie den Befehl regional-endpoints list describe:

gcloud beta network-connectivity regional-endpoints describe \
    ENDPOINT_NAME --region=REGION

Ersetzen Sie Folgendes:

  • ENDPOINT_NAME: der Name des Endpunkts.
  • REGION: die Region des Endpunkts.

Endpunkt löschen

Sie können Endpunkte löschen.

gcloud

Nutzen Sie den Befehl regional-endpoints list delete:

gcloud beta network-connectivity regional-endpoints delete \
    ENDPOINT_NAME --region=REGION

Ersetzen Sie Folgendes:

  • ENDPOINT_NAME: der Name des Endpunkts.
  • REGION: die Region des Endpunkts.

Zugriff auf Endpunkte über Hybridnetzwerke

Clients in Netzwerken, die über VLAN-Anhänge für Cloud Interconnect oder Cloud VPN-Tunnel mit Google Cloud verbunden sind, können Private Service Connect-Endpunkte erreichen.

  • Der VLAN-Anhang oder der Cloud VPN-Tunnel müssen im selben VPC-Netzwerk wie der Endpunkt enden. Clients in Peering-VPC-Netzwerken können Endpunkte nicht erreichen.

  • Client-Traffic von VLAN-Anhängen oder Cloud VPN-Tunneln kann Endpunkte in einer anderen Region erreichen, wenn der globale Zugriff konfiguriert ist.

  • Sowohl Dataplane v1 als auch Dataplane v2 werden für die VLAN-Anhänge unterstützt. Weitere Informationen zu Dataplane-Versionen finden Sie unter Dataplane v2.

Sie müssen Systeme im anderen Netzwerk so konfigurieren, dass sie Abfragen an Ihre privaten DNS-Zonen senden können.

Wenn Sie die privaten DNS-Zonen mit Cloud DNS implementiert haben, führen Sie die folgenden Schritte aus:

  • Erstellen Sie eine Serverrichtlinie für eingehenden Traffic in dem VPC-Netzwerk, zu dem Ihr anderes Netzwerk eine Verbindung herstellt.

  • Identifizieren Sie die Weiterleitungs-Einstiegspunkte für eingehenden Traffic in der Region, in der sich Ihr VLAN-Anhang oder Ihr Cloud VPN-Tunnel befindet, in dem VPC-Netzwerk, mit dem sich Ihr anderes Netzwerk verbindet.

  • Konfigurieren Sie Systeme und DNS-Nameserver im anderen Netzwerk für die Weiterleitung von DNS-Namen für den Endpunkt an einen Weiterleitungs-Einstiegspunkt für eingehenden Traffic in derselben Region wie der VLAN-Anhang oder der Cloud VPN-Tunnel, der eine Verbindung zum VPC-Netzwerk herstellt.