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 Ihr 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 auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Vorbereitung
Install the Google Cloud CLI, then initialize it by running the following command:
$ gcloud init
Enable the Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory APIs.
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.
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.
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 Ziel-Google API zu senden.
Eine Liste der unterstützten regionalen Endpunkte finden Sie unter Regionale Dienstendpunkte.
Es gibt zwei Formen von Hostnamen für regionale Endpunkte:
- Öffentliche Hostnamen:
SERVICE.REGION.rep.DOMAIN
Private Hostnamen:
SERVICE.REGION.p.rep.DOMAIN
Der private Hostname fügt eine
p
-Subdomain zwischenREGION
undrep
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 gcloud network-connectivity regional-endpoints create
:
gcloud 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 dabei 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/REGION/subnetworks/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
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbundene Endpunkte.
Alle Endpunkte werden angezeigt, einschließlich der Endpunkte mit regionalen Endpunktzielen.
gcloud
Nutzen Sie den Befehl gcloud network-connectivity regional-endpoints list
:
gcloud 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 dabei Folgendes:
SERVICE
: der Dienst, auf den der Endpunkt verweist. Beispiel:spanner
oderlogging
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.
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.googleapis.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. Beispielsweise sindspanner
oderlogging
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.googleapis.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.googleapis.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 gcloud network-connectivity regional-endpoints describe
:
gcloud network-connectivity regional-endpoints describe \ ENDPOINT_NAME --region=REGION
Ersetzen Sie dabei 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 gcloud network-connectivity regional-endpoints delete
:
gcloud network-connectivity regional-endpoints delete \ ENDPOINT_NAME --region=REGION
Ersetzen Sie dabei 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 (oder freigegebenen VPC-Netzwerk) wie der Endpunkt enden. Clients in Peering-VPC-Netzwerken können keine Endpunkte 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.