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:
- Rolle "Compute-Netzwerkadministrator" (
roles/compute.networkAdmin
) - Rolle "DNS-Administrator" (
roles/dns.admin
)
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
Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:
$ gcloud init
Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory APIs aktivieren.
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.
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.
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
zwischenREGION
undrep
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:spanner
oderlogging
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.
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 Regionme-central2
verwenden möchten, erstellen Sie eine private DNS-Zone mit dem Namenme-central2.p.rep.googelapis.com
.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
oderlogging
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.