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 unterstützter 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 im 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. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    $ gcloud init

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

    Aktivieren Sie die 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 Google Cloud Console. Private Service Connect aktiviert keine API automatisch.

  4. Sorgen Sie dafür, 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 bekannten Probleme.

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 API-Ziel zu senden.

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

Hostnamen von regionalen Endpunkten haben zwei Formen:

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

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

Wenn Sie die Ziel-Google 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 mit demselben privaten regionalen Endpunkthostnamen.

Obwohl Sie den Private Service Connect-Endpunkt mit einem beliebigen Namen konfigurieren können, empfehlen wir für eine einfachere Wartung den Dienstnamen der Ziel-Google API zu verwenden, sodass 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

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

Ersetzen Sie Folgendes:

  • ENDPOINT_NAME ist 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 ist der URI des Subnetzes, mit dem Sie den Endpunkt verbinden möchten: projects/PROJECT_ID/regions/SUBNET_NAME.

  • REP_NAME ist 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.

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 auf der VM den folgenden Befehl aus, um zu prüfen, ob der Private Service Connect-Endpunkt funktioniert. Endpoints reagiert 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 Ihr Endpunkt verweist. Beispiel: spanneroder logging
  • REGION: die Region des Endpunkts.
  • DOMAIN ist 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.

In 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 Cloud DNS zum Erstellen der DNS-Einträge verwenden.

  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. Beispiel: spanner oder logging sind 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 Clientoptionen 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 muss im selben VPC-Netzwerk enden wie der Endpunkt. Clients in Peering-VPC-Netzwerken können keine Endpunkte erreichen.

  • Clienttraffic von VLAN-Anhängen oder Cloud VPN-Tunneln kann Endpunkte in einer anderen Region erreichen, wenn globaler 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 mithilfe von 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.

Bekannte Probleme

  • Wenn Sie einen regionalen Private Service Connect-Endpunkt erstellen, kann er in der Google Cloud Console mit einem automatisch generierten Namen im folgenden Format aufgerufen werden: rep-autogen-fr-ENDPOINT_NAME. Bearbeiten Sie den Endpunkt jedoch nicht über die Google Cloud Console oder durch Ändern der Weiterleitungsregel.

    Wenn Sie den Namen ändern oder den globalen Zugriff aktivieren müssen, löschen Sie den Endpunkt und erstellen Sie einen neuen Endpunkt.