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 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.
Hinweise
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
$ gcloud init
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Enable the Compute Engine, Network Connectivity Center, and Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Aktivieren Sie außerdem die API für den Zieldienst, auf den Sie über den Private Service Connect-Endpunkt zugreifen möchten. Wenn Sie beispielsweise auf
spanner.me-central2.rep.googleapis.com
zugreifen möchten, aktivieren Sie die Cloud Spanner API. Durch Private Service Connect werden keine APIs automatisch aktiviert.Achten Sie darauf, dass Firewallregeln für ausgehenden Traffic den 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.
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.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf Endpunkt verbinden.
Wählen Sie unter Ziel die Option Google API aus.
Wählen Sie in der Liste Umfang die Option Regional aus.
Wählen Sie in der Liste Region die gewünschte Region aus.
Wählen Sie in der Liste Zieldienst den Dienst aus, auf den Sie zugreifen möchten.
Geben Sie unter Endpunktname einen Namen für den Endpunkt ein.
Wählen Sie unter Netzwerk ein Netzwerk aus.
Wählen Sie unter Subnetzwerk ein Subnetzwerk aus.
Führen Sie unter IP-Adresse einen der folgenden Schritte aus, um eine IP-Adresse zu konfigurieren:
- Wählen Sie Automatisch zuweisen aus, um eine neue IP-Adresse automatisch zuzuweisen und zu reservieren.
- Wählen Sie eine reservierte IP-Adresse aus der Liste aus.
- Klicken Sie auf IP-Adresse erstellen, um eine neue IP-Adresse zu reservieren.
Optional: Wenn Sie den Endpunkt in allen Regionen des VPC-Netzwerk verfügbar machen möchten, wählen Sie Globalen Zugriff aktivieren aus.
Klicken Sie auf Endpunkt hinzufügen.
gcloud
Nutzen Sie den Befehl gcloud network-connectivity regional-endpoints create
:
gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \ --region=REGION \ --address=ADDRESS \ --network=projects/PROJECT_ID/global/networks/NETWORK_NAME \ --subnetwork=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --target-google-api=REP_DNS_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.ADDRESS
: die IPv4- oder IPv6-Adresse, die Sie für den Endpunkt verwenden möchten. Wenn Sie das Feld weglassen, wird eine IPv4-Adresse aus dem Subnetzwerk zugewiesen. Verwenden Sie eines der folgenden Formate:- IPv4-Adresse, z. B.
10.0.0.2
. - URI der IPv4- oder IPv6-Adressressource, z. B.
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
.
- IPv4-Adresse, z. B.
PROJECT_ID
: das Projekt, in dem Sie den Endpunkt erstellen.NETWORK_NAME
: der Name des VPC-Netzwerks für den Endpunkt.SUBNET_NAME
: Das Subnetz, mit dem Sie den Endpunkt verbinden.REP_DNS_NAME
: Der Hostname des regionalen Dienstendpunkts, zu dem Sie eine Verbindung herstellen. Beispiel:spanner.me-central2.rep.googleapis.com
API
Verwenden Sie die Methode projects.locations.regionalEndpoints.create
:
HTTP-Methode und URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints?regionalEndpointId=ENDPOINT_NAME
{
"accessType": "REGIONAL",
"address": "ADDRESS",
"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
"targetGoogleApi": "REP_DNS_NAME"
}
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID des Endpunkts.REGION
: Die Region, in der Sie den Endpunkt erstellen möchten.ENDPOINT_NAME
: ein Name für den Endpunkt.ADDRESS
: die IPv4- oder IPv6-Adresse, die Sie für den Endpunkt verwenden möchten. Wenn Sie das Feld weglassen, wird eine IPv4-Adresse aus dem Subnetzwerk zugewiesen. Verwenden Sie eines der folgenden Formate:- IPv4-Adresse, z. B.
10.0.0.2
. - URI der IPv4- oder IPv6-Adressressource, z. B.
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
.
- IPv4-Adresse, z. B.
NETWORK_NAME
: der Name des VPC-Netzwerks für den Endpunkt.SUBNET_NAME
: Der Name des Subnetzes, mit dem Sie den Endpunkt verbinden möchten.REP_DNS_NAME
: Der Hostname des regionalen Dienstendpunkts, zu dem Sie eine Verbindung herstellen möchten. Beispiel:spanner.me-central2.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, auch 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.
API
Verwenden Sie die Methode projects.locations.regionalEndpoints.list
:
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID des Endpunkts.REGION
: 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 überprüfen, ob der Private Service Connect-Endpunkt funktioniert. Endpunkte reagieren nicht auf Ping-Anfragen (ICMP).
So überprüfen Sie einen IPv4-Endpunkt:
curl --connect-to REP_DNS_NAME:443:ADDRESS:443 \ 'https://REP_DNS_NAME/PATH'
So prüfen Sie einen IPv6-Endpunkt:
curl -6 --connect-to REP_DNS_NAME:443:[ADDRESS]:443 \ 'https://REP_DNS_NAME/PATH'
Ersetzen Sie Folgendes:
REP_DNS_NAME
: Der öffentliche DNS-Name des regionalen Zielendpunkts, z. B.spanner.me-central2.rep.googleapis.com
.ADDRESS
: 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.
Im folgenden Beispiel 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.rep.googleapis.com:443:192.168.1.100:443 \ 'https://spanner.me-central2.rep.googleapis.com/$discovery/rest?version=v1'
Privaten DNS-Eintrag für den Endpunkt erstellen
Sie müssen private DNS-Einträge erstellen, damit Clients Anfragen an Ihren Private Service Connect-Endpunkt weiterleiten können.
Wir empfehlen, eine private Zone mit demselben Hostnamen wie der regionale Zielendpunkt zu erstellen:
SERVICE.REGION.rep.DOMAIN
Erstellen Sie dann einen Apex-Eintrag in dieser Zone.
Wenn Ihr Private Service Connect-Endpunkt beispielsweise das Ziel spanner.me-central2.rep.googleapis.com
hat, erstellen Sie eine private Zone für spanner.me-central2.rep.googleapis.com
, die einen Apex-Eintrag für spanner.me-central2.rep.googleapis.com
enthält. Wenn Sie Einträge im Domain-Apex erstellen, können Sie auf den öffentlichen Hostnamen anderer regionaler Endpunkte zugreifen, z. B. logging.me-central2.rep.googleapis.com
.
In den folgenden Abschnitten wird beschrieben, wie Sie mit Cloud DNS eine private Zone und einen Apex-DNS-Eintrag erstellen.
Private Zone erstellen
Console
Rufen Sie in der Google Cloud Console die Seite DNS-Zone erstellen auf.
Wählen Sie als Zonentyp die Option Privat aus.
Geben Sie für Zonenname einen Namen ein. Wenn Ihr Private Service Connect-Endpunkt beispielsweise auf
spanner.me-central2.rep.googleapis.com
verweist, geben Siespanner-me-central2-rep-googleapis-com
ein.Geben Sie für DNS-Name den Hostnamen des regionalen Zielendpunkts gefolgt von einem abschließenden Punkt an. Beispiel:
spanner.me-central2.rep.googleapis.com.
Optional: Fügen Sie eine Beschreibung hinzu.
Wählen Sie unter Optionen die Option Standard (privat) aus.
Wählen Sie die VPC-Netzwerke aus, in denen die private Zone sichtbar sein soll. Nur die von Ihnen ausgewählten VPC-Netzwerke sind berechtigt, Einträge in der Zone abzufragen.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl dns managed-zones
create
aus:
gcloud dns managed-zones create ZONE_NAME \ --dns-name=REP_DNS_NAME. \ --networks=VPC_NETWORK_LIST \ --visibility=private \ --description="Private zone for REP_DNS_NAME"
Ersetzen Sie Folgendes:
ZONE_NAME
: Ein Name für Ihre Zone, z. B.spanner-me-central2-rep-googleapis.com
.DESCRIPTION
: eine Beschreibung für Ihre ZoneREP_DNS_NAME
: das DNS-Suffix für Ihre Zone. Verwenden Sie den Hostnamen des regionalen Zielendpunkts, z. B.spanner.me-central2.rep.googleapis.com
.VPC_NETWORK_LIST
: eine durch Kommas getrennte Liste von VPC-Netzwerken, die zum Abfragen der Zone autorisiert sind.
API
Senden Sie eine POST
-Anfrage mit der Methode managedZones.create
:
HTTP-Methode und URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
JSON-Text anfordern:
{
"name": "ZONE_NAME",
"dnsName": "REP_DNS_NAME.",
"description": "DESCRIPTION",
"visibility": "private",
"privateVisibilityConfig": {
"kind": "dns#managedZonePrivateVisibilityConfig",
"networks": [
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_1_URL"
},
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_2_URL"
}
]
}
}
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID der DNS-Zone.ZONE_NAME
: Der Name der privaten Zone, die Sie für diesen regionalen Endpunkt erstellt haben.REP_DNS_NAME
: der FQDN des Eintrags, den Sie erstellen. Verwenden Sie den Hostnamen des regionalen Zielendpunkts, z. B.spanner.me-central2.rep.googleapis.com
.DESCRIPTION
: eine Beschreibung für die DNS-Zone.NETWORK_1_URL
undNETWORK_2_URL
: Die vollständigen URLs der VPC-Netzwerke, die zum Abfragen der Zone autorisiert sind, z. B.https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME
.
Der Zone einen DNS-Eintrag hinzufügen
Console
Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.
Klicken Sie auf den Namen der verwalteten Zone, der Sie den Eintrag hinzufügen möchten.
Klicken Sie auf der Seite Zonendetails auf Standard hinzufügen.
Lassen Sie auf der Seite Eintrag erstellen das Feld DNS-Name leer. Wenn Sie das Feld leer lassen, wird ein Ressourcendatensatz am Domain-Apex erstellt.
Wählen Sie für Ressourceneintragstyp die Option
A
aus.Geben Sie im Feld IPv4-Adresse die IP-Adresse des Private Service Connect-Endpunkts ein oder wählen Sie sie aus.
Klicken Sie auf Erstellen.
gcloud
Verwenden Sie den Befehl gcloud dns record-sets create
, um einen Ressourcendatensatz hinzuzufügen:
gcloud dns record-sets create REP_DNS_NAME \ --rrdatas=ADDRESS \ --type=RECORD_TYPE \ --ttl=TTL \ --zone=ZONE_NAME
Ersetzen Sie Folgendes:
REP_DNS_NAME
: der FQDN des Eintrags, den Sie erstellen. Verwenden Sie den Hostnamen des regionalen Zielendpunkts, z. B.spanner.me-central2.rep.googleapis.com
.ADDRESS
: die IP-Adresse des Private Service Connect-Endpunkts.RECORD_TYPE
: Der Typ des DNS-Eintrags, z. B.A
für IPv4-Einträge oderAAAA
für IPv6-Einträge.TTL
ist die TTL in Sekunden, die der Resolver diesen Ressourcendatensatz im Cache speichert, z. B.300
.ZONE_NAME
: Der Name der privaten Zone, die Sie für diesen regionalen Endpunkt erstellt haben.
API
Verwenden Sie die Methode resourceRecordSets.create
, um einen Ressourcendatensatz hinzuzufügen:
HTTP-Methode und URL:
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME/rrsets
JSON-Text anfordern:
{
"name": "REP_DNS_NAME.",
"type": "RECORD_TYPE",
"ttl": TTL,
"rrdatas": [ "ADDRESS" ]
}
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID der DNS-Zone.ZONE_NAME
: Der Name der privaten Zone, die Sie für diesen regionalen Endpunkt erstellt haben.REP_DNS_NAME
: der FQDN des Eintrags, den Sie erstellen. Verwenden Sie den Hostnamen des regionalen Zielendpunkts, z. B.spanner.me-central2.rep.googleapis.com
.RECORD_TYPE
: Der Typ des DNS-Eintrags, z. B.A
für IPv4-Einträge oderAAAA
für IPv6-Einträge.TTL
ist die TTL in Sekunden, die der Resolver diesen Ressourcendatensatz im Cache speichert, z. B.300
.ADDRESS
: die IP-Adresse des Private Service Connect-Endpunkts.
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. Auf den folgenden Seiten finden Sie Konfigurationsschritte für einige gängige Clients:
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.
API
Führen Sie den Befehl projects.locations.regionalEndpoints.get
aus.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID des Endpunkts.REGION
: die Region der Endpunkte, die Sie auflisten möchten.ENDPOINT_NAME
: der Name des Endpunkts.
Globale Zugriffskonfiguration aktualisieren
Sie können einen Private Service Connect-Endpunkt mit einem regionalen Endpunktziel nicht aktualisieren. Wenn Sie die Einstellung für den globalen Zugriff für den Endpunkt ändern müssen, löschen Sie den Endpunkt und erstellen Sie einen neuen Endpunkt mit der erforderlichen Einstellung für den globalen Zugriff.
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.
API
Führen Sie den Befehl projects.location.regionalEndpoints.delete
aus.
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID des Endpunkts.REGION
: die Region des Endpunkts.ENDPOINT_NAME
: der Name 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 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.