Zugriff auf Google APIs über Endpunkte
In diesem Dokument wird erläutert, wie Sie mit Private Service Connect-Endpunkten eine Verbindung zu Google APIs herstellen. Anstatt API-Anfragen an die öffentlich verfügbaren IP-Adressen für Dienstendpunkte wie storage.googleapis.com
zu senden, können Sie die Anfragen an die interne IP-Adresse eines Endpunkts senden.
Sie können Private Service Connect auch verwenden, um auf Dienste in einem anderen VPC-Netzwerk zuzugreifen und Dienste zu veröffentlichen.
Rollen
Die folgenden IAM-Rollen enthalten die Berechtigungen, die zum Ausführen der Aufgaben in dieser Anleitung erforderlich sind.
Aufgabe | Rollen |
---|---|
Endpunkt erstellen |
Alle der folgenden Rollen: Compute-Netzwerkadministrator ( roles/compute.networkAdmin ), Service Directory-Bearbeiter ( roles/servicedirectory.editor ) und
DNS-Administrator ( roles/dns.admin )
|
Privaten Google-Zugriff konfigurieren (optional) | Compute-Netzwerkadministrator (roles/compute.networkAdmin ) |
Hinweis
Weitere Informationen, u. a. zur DNS-Konfiguration und zu den Einschränkungen, finden Sie unter Verbindung zu Google APIs mithilfe von Endpunkten herstellen.
Private Service Connect aktiviert keine API automatisch. Sie müssen die benötigten Google APIs separat aktivieren. Dies erfolgt über die Seite APIs & Dienste in der Google Cloud Console.
Sie müssen in Ihrem Projekt die Compute Engine API aktivieren.
Sie müssen die Service Directory API für Ihr Projekt aktivieren.
Sie müssen in Ihrem Projekt die Cloud DNS API aktivieren.
Sie müssen eine IP-Adresse für den Endpunkt auswählen. Informationen dazu, welche IP-Adressen Sie verwenden können, finden Sie unter IP-Adressanforderungen.
Firewallregeln für ausgehenden Traffic müssen 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.
VM-Instanzen ohne externe IP-Adresse müssen ein Subnetz mit aktiviertem privaten Google-Zugriff verwenden, um über einen Endpunkt auf Google APIs und Google-Dienste zugreifen zu können.
Eine VM mit einer externen IP-Adresse kann über Endpunkte auf Google APIs und Google-Dienste zugreifen, auch wenn der private Google-Zugriff für ihr Subnetz deaktiviert ist. Die Verbindung zum Endpunkt verbleibt im Google-Netzwerk.
Wenn Ihr VPC-Netzwerk keine Endpunkte enthält, prüfen Sie, ob für
p.googleapis.com
eine private Cloud DNS-Zone vorhanden ist. Wenn die Zone vorhanden ist, löschen Sie sie, bevor Sie den Endpunkt erstellen. Wenn Sie sie nicht löschen, schlägt das Erstellen der für Private Service Connect verwendeten Service Directory-DNS-Zone fehl. Weitere Informationen finden Sie unter Fehlerbehebung.Endpunkte sind über Peering-VPC-Netzwerke nicht erreichbar.
Privaten Google-Zugriff für ein Subnetz aktivieren
VMs ohne eine zugewiesene externe IP-Adresse müssen mit einem Subnetz verbunden sein, für das der private Google-Zugriff aktiviert ist, um über einen Endpunkt auf Google APIs und Google-Dienste zuzugreifen.
Wenn die VM mehrere Schnittstellen hat, verbinden Sie die Schnittstelle, die mit einer Standardroute konfiguriert ist (normalerweise nic0
).
Die Quell-IP-Adresse der von der VM gesendeten Pakete muss entsprechen der primären internen IPv4-Adresse der VM-Schnittstelle oder einer internen IPv4-Adresse aus einem Alias-IP-Bereich.
So aktivieren Sie den privaten Google-Zugriff für ein Subnetz:
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf den Namen des Netzwerks mit dem Subnetz, für das Sie den privaten Google-Zugriff aktivieren müssen.
Klicken Sie auf den Namen des Subnetzes. Daraufhin wird die Seite Subnetzdetails angezeigt.
Klicken Sie auf Bearbeiten.
Wählen Sie im Abschnitt Privater Google-Zugriff die Option Ein aus.
Klicken Sie auf Speichern.
gcloud
Legen Sie den Namen und die Region des Subnetzes fest. Verwenden Sie den folgenden Befehl, um die Subnetze für ein bestimmtes Netzwerk aufzulisten:
gcloud compute networks subnets list --filter=NETWORK_NAME
Führen Sie den folgenden Befehl aus, um den privaten Google-Zugriff zu aktivieren:
gcloud compute networks subnets update SUBNET_NAME \ --region=REGION \ --enable-private-ip-google-access
Prüfen Sie, ob der private Google-Zugriff aktiviert ist. Führen Sie dazu folgenden Befehl aus:
gcloud compute networks subnets describe SUBNET_NAME \ --region=REGION \ --format="get(privateIpGoogleAccess)"
Dabei gilt:
SUBNET_NAME
: Name des SubnetzesREGION
: Region für das SubnetzNETWORK_NAME
: Name des VPC-Netzwerks, das das Subnetz enthält
Terraform
Sie können die Terraform-Ressource verwenden, um den privaten Google-Zugriff für ein Subnetz zu aktivieren.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Endpunkt erstellen
Nachdem Sie eine IP-Adresse ausgewählt haben, die die Anforderungen erfüllt, können Sie einen Endpunkt erstellen.
Ein Endpunkt stellt mithilfe einer globalen Weiterleitungsregel eine Verbindung zu Google APIs und Google-Diensten her. Jede Weiterleitungsregel wird auf das VPC-Netzwerkkontingent für Private Service Connect angerechnet.
Sie können einen Endpunkt für Google APIs und Google-Dienste nicht mehr aktualisieren, nachdem er erstellt wurde. Wenn Sie einen Endpunkt für Google APIs und Google-Dienste aktualisieren müssen, löschen Sie den Endpunkt und erstellen Sie einen neuen.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbundene Endpunkte.
Klicken Sie auf Endpunkt verbinden.
Wählen Sie unter Ziel das Ziel-API-Bundle aus, das Sie verwenden möchten:
- Alle Google APIs
- VPC-SC
Geben Sie unter Endpunktname einen Namen für den Endpunkt ein.
Wählen Sie ein Netzwerk für den Endpunkt aus.
Wählen Sie eine IP-Adresse für den Endpunkt aus.
Die IP-Adresse muss diese Anforderungen erfüllen.
Wenn Sie eine neue IP-Adresse benötigen, können Sie eine erstellen:
- Klicken Sie auf IP-Adresse erstellen.
- Geben Sie einen Namen und eine Beschreibung für die IP-Adresse ein.
- Geben Sie die IP-Adresse ein, die Sie verwenden möchten, und klicken Sie auf Speichern.
Wenn für dieses VPC-Netzwerk noch keine Service Directory-Region konfiguriert ist, wählen Sie die Region aus, die Sie verwenden möchten.
Alle Endpunkte, die für den Zugriff auf Google APIs und Google-Dienste in einem bestimmten VPC-Netzwerk verwendet werden, verwenden die gleiche Service Directory-Region.
Wenn für dieses VPC-Netzwerk noch kein Service Directory-Namespace konfiguriert ist, konfigurieren Sie den gewünschten Namespace:
Um einen automatisch zugewiesenen Namespace zu verwenden, klicken Sie auf das Drop-down-Menü Namespace und wählen Sie den automatisch zugewiesenen Namespace aus.
Um einen vorhandenen Namespace auszuwählen, der in einem anderen Netzwerk verwendet wird, klicken Sie auf das Drop-down-Menü Namespace und wählen Sie einen Namespace aus der Liste aus. Die Liste zeigt alle Namespaces im Projekt an. Sie müssen einen Namespace auswählen, der nur für Endpunkte verwendet wird, die für den Zugriff auf Google APIs verwendet werden.
Klicken Sie zum Erstellen eines neuen Namespace auf das Drop-down-Menü Namespace und dann auf Namespace erstellen. Geben Sie den Namespace ein und klicken Sie auf Erstellen.
Alle Endpunkte, die Sie für den Zugriff auf Google APIs und Google-Dienste in einem bestimmten VPC-Netzwerk verwenden, verwenden denselben Service Directory-Namespace.
Klicken Sie auf Endpunkt hinzufügen.
gcloud
Reservieren Sie eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten.
gcloud compute addresses create ADDRESS_NAME \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=ENDPOINT_IP \ --network=NETWORK_NAME
Dabei gilt:
ADDRESS_NAME
: der Name, der der reservierten IP-Adresse zugewiesen werden soll.ENDPOINT_IP
: die IP-Adresse, die für den Endpunkt reserviert werden soll.Die IP-Adresse muss diese Anforderungen erfüllen.
NETWORK_NAME
: der Name des VPC-Netzwerks für den Endpunkt.
Erstellen Sie eine Weiterleitungsregel, um den Endpunkt mit Google APIs und Google-Diensten zu verbinden.
gcloud compute forwarding-rules create ENDPOINT_NAME \ --global \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-google-apis-bundle=API_BUNDLE \ [ --service-directory-registration=REGION_NAMESPACE_URI ]
Dabei gilt:
ENDPOINT_NAME
: der Name, der dem Endpunkt zugewiesen werden soll. Der Name muss ein String mit 1 bis 20 Zeichen sein, der ausschließlich aus Kleinbuchstaben und Zahlen besteht. Der Name muss mit einem Buchstaben beginnen.NETWORK_NAME
: der Name des VPC-Netzwerks für den Endpunkt.ADDRESS_NAME
: der Name der reservierten Adresse im zugehörigen Netzwerk.API_BUNDLE
: das API-Bundle, das über den Endpunkt verfügbar gemacht werden soll. Liste der unterstützten APIs.Verwenden Sie
all-apis
, um Zugriff auf alle unterstützten APIs zu gewähren.Schränken Sie den Zugriff auf Google APIs, die VPC Service Controls unterstützen, mit
vpc-sc
ein.
REGION_NAMESPACE_URI
: URI der Service Directory-Region oder des Namespace, den Sie verwenden möchten. Dieser URI muss auf das Projekt verweisen, in dem Sie den Endpunkt erstellen.Sie können eine Region nur mit
projects/PROJECT_NAME/locations/REGION
definieren.Sie können eine Region und einen Namespace mit
projects/PROJECT_NAME/locations/REGION/namespaces/NAMESPACE
definieren.
Wenn Sie
--service-directory-registration
vollständig weglassen oder eine Region ohne Namespace festlegen, geschieht Folgendes:Wenn für dieses VPC-Netzwerk bereits eine Region oder ein Namespace konfiguriert ist, werden diese Standardeinstellungen verwendet.
Wenn eine Region nicht konfiguriert ist, wird sie auf
us-central1
gesetzt. Wenn ein Namespace nicht konfiguriert ist, wird ein vom System generierter Namespace zugewiesen.
API
Reservieren Sie eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses { "name": ADDRESS_NAME, "address": ENDPOINT_IP, "addressType": "INTERNAL", "purpose": PRIVATE_SERVICE_CONNECT, "network": NETWORK_URL }
Dabei gilt:
PROJECT_ID
: Ihre Projekt-ID.ADDRESS_NAME
: der Name, der der reservierten IP-Adresse zugewiesen werden soll.ENDPOINT_IP
: die IP-Adresse, die für den Endpunkt reserviert werden soll.Die IP-Adresse muss diese Anforderungen erfüllen.
NETWORK_URL
: das VPC-Netzwerk für den Endpunkt. Mit der Methode network.list odergcloud compute networks list --uri
können Sie die URLs Ihrer Netzwerke ermitteln.
Erstellen Sie eine Weiterleitungsregel, um den Endpunkt mit Google APIs und Google-Diensten zu verbinden.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules { "IPAddress": ADDRESS_URL, "network": NETWORK_URL, "name": ENDPOINT_NAME, "target": API_BUNDLE, "serviceDirectoryRegistrations : [ { "service_directory_region": REGION, "namespace": "NAMESPACE" } ], }
Dabei gilt:
PROJECT_ID
: Ihre Projekt-ID.ENDPOINT_NAME
: der Name, der dem Endpunkt zugewiesen werden soll. Der Name muss ein String mit 1 bis 20 Zeichen sein, der ausschließlich aus Kleinbuchstaben und Zahlen besteht. Der Name muss mit einem Buchstaben beginnen.NETWORK_URL
: das VPC-Netzwerk für den Endpunkt. Mit der Methode network.list odergcloud compute networks list --uri
können Sie die URLs Ihrer Netzwerke ermitteln.ADDRESS_URL
: die URL der reservierten Adresse im zugehörigen Netzwerk. Mit der Methode globalAddresses.list odergcloud compute addresses list --uri
können Sie die URLs Ihrer reservierten Adressen ermitteln.API_BUNDLE
: das API-Bundle, das über den Endpunkt verfügbar gemacht werden soll. Liste der unterstützten APIs.Verwenden Sie
all-apis
, um Zugriff auf alle unterstützten APIs zu gewähren.Schränken Sie den Zugriff auf Google APIs, die VPC Service Controls unterstützen, mit
vpc-sc
ein.
REGION
: Die Service Directory-Region, die Sie verwenden möchten. Beispiel:us-central1
Wenn SieREGION
weglassen und eine Region bereits für dieses VPC-Netzwerk konfiguriert ist, wird diese Region verwendet. Wenn eine Region nicht konfiguriert ist, wird sie aufus-central1
gesetzt.NAMESPACE
: der Name des Service Directory-Namespace, den Sie verwenden möchten. Wenn SieNAMESPACE
weglassen und für dieses VPC-Netzwerk bereits ein Namespace konfiguriert ist, wird dieser Namespace verwendet. Wenn ein Namespace nicht konfiguriert ist, wird ein vom System generierter Namespace zugewiesen.
Terraform
Sie können die folgenden Terraform-Ressourcen verwenden, um einen Endpunkt zu erstellen:
Funktionsweise des Endpunkts prüfen
Erstellen Sie eine VM-Instanz im VPC-Netzwerk, in dem Private Service Connect 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 -v ENDPOINT_IP/generate_204
Ersetzen Sie ENDPOINT_IP
durch die IP-Adresse des Endpunkts.
Wenn der Endpunkt funktioniert, wird der HTTP-Antwortcode 204
angezeigt.
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.
Die Endpunkte werden angezeigt.
gcloud
gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --global
Die Ausgabe sieht in etwa so aus:
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET RULE IP TCP all-apis
Informationen zu einem Endpunkt abrufen
Sie können alle Konfigurationsdetails eines Endpunkts aufrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbundene Endpunkte.
Die Endpunkte werden angezeigt.
Klicken Sie auf den Endpunkt, dessen Details Sie sich ansehen möchten.
gcloud
gcloud compute forwarding-rules describe \ ENDPOINT_NAME --global
Endpunkt mit Label versehen
Sie können Labels für Endpunkte verwalten. Weitere Informationen finden Sie unter Ressourcen mit Labels versehen.
Endpunkt löschen
Sie können Endpunkte löschen.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbundene Endpunkte.
Wählen Sie den Endpunkt aus, den Sie löschen möchten, und klicken Sie dann auf Löschen.
gcloud
gcloud compute forwarding-rules delete \ ENDPOINT_NAME --global
Ersetzen Sie ENDPOINT_NAME
durch den Namen des Endpunkts, das Sie löschen möchten.
Endpunkt verwenden
Zur Verwendung eines Endpunkts senden Sie Anfragen an einen DNS-Hostnamen, der zur IP-Adresse des Endpunkts aufgelöst wird.
Sie können die automatisch erstellten
p.googleapis.com
-DNS-Namen verwenden, wenn Sie Ihre Clients so konfigurieren können, dass sie einen benutzerdefinierten Endpunkt verwenden, und wennp.googleapis.com
-DNS-Einträge für die APIs und Dienste erstellt werden, die Sie verwenden möchten. Weitere Informationen finden Sie unterp.googleapis.com
-DNS-Namen verwenden.Wenn Ihr Endpunktname beispielsweise
xyz
lautet, werden DNS-Einträge fürstorage-xyz.p.googleapis.com
,compute-xyz.p.googleapis.com
und andere häufig verwendete APIs im API-Bundle erstellt.Sie können DNS-Einträge unter Verwendung der Standard-DNS-Namen erstellen, wenn Sie einen Client verwenden, der nicht für die Verwendung eines benutzerdefinierten Endpunkts konfiguriert wurde, oder wenn kein
p.googleapis.com
-DNS-Eintrag für den Dienst existiert, den Sie verwenden möchten. Weitere Informationen finden Sie unter DNS-Einträge mit Standard-DNS-Namen erstellen.Erstellen Sie beispielsweise DNS-Einträge für
storage.googleapis.com
undcompute.googleapis.com
.
p.googleapis.com
-DNS-Namen verwenden
Wenn Sie einen Endpunkt erstellen, erstellt Service Directory DNS-Einträge für häufig verwendete APIs und Dienste, die über den Endpunkt verfügbar sind. DNS-Einträge werden nur für APIs und Dienste erstellt, deren Standard-DNS-Namen auf googleapis.com
enden, und nur für eine Teilmenge dieser APIs und Dienste.
Die DNS-Einträge werden in einer privaten p.googleapis.com
-Zone erstellt. Die Einträge verweisen auf die Endpunkt-IP-Adresse und verwenden das folgende Format: SERVICE-ENDPOINT.p.googleapis.com
Wenn Ihr Endpunktname beispielsweise xyz
lautet, werden DNS-Einträge für storage-xyz.p.googleapis.com
, compute-xyz.p.googleapis.com
und andere unterstützte APIs erstellt.
Clients, die für die Verwendung eines benutzerdefinierten Endpunkts konfiguriert werden können, können mithilfe der p.googleapis.com
-DNS-Namen Anfragen an einen Endpunkt senden.
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.
DNS-Einträge mit Standard-DNS-Namen erstellen
Sie müssen DNS-Einträge erstellen, um die Standard-DNS-Namen für APIs und Dienste an Ihren Endpunkt weiterzuleiten.
Ihr Client oder Ihre Anwendung kann nicht für die Verwendung eines
p.googleapis.com
-DNS-Namens konfiguriert werden.Sie müssen auf einen unterstützten Dienst zugreifen, aber es gibt keinen automatisch erstellten
p.googleapis.com
-DNS-Namen für diesen Dienst.
So erstellen Sie DNS-Einträge, die auf Ihren Private Service Connect-Endpunkt verweisen:
Erstellen Sie eine DNS-Zone für die zu verwendende Domain, z. B.
googleapis.com
odergcr.io
. Ziehen Sie zu diesem Zweck in Betracht, eine private Cloud DNS-Zone zu erstellen.In dieser DNS-Zone:
Erstellen Sie einen
A
-Eintrag für den Domainnamen (Zone) selbst. Beispiel:googleapis.com
odergcr.io
. Verweisen Sie diesenA
-Eintrag auf die IP-Adresse des Endpunkts. Wenn Sie Cloud DNS verwenden, lesen Sie den Abschnitt Eintrag hinzufügen.Erstellen Sie einen
CNAME
-Eintrag für alle möglichen Hostnamen der zusätzlichen Domain. Verwenden Sie dazu ein Sternchen und einen Punkt, gefolgt vom Domainnamen (Zone), z. B.*.googleapis.com
oder*.gcr.io
. Verweisen Sie in diesemCNAME
-Eintrag auf denA
-Eintrag in derselben Zone. Verweisen Sie beispielsweise*.googleapis.com
aufgoogleapis.com
oder*.gcr.io
aufgcr.io
.
Zugriff von lokalen Hosts auf den Endpunkt
Wenn Ihr lokales Netzwerk mit einem VPC-Netzwerk verbunden ist, können Sie mit Private Service Connect von lokalen Hosts aus über die interne IP-Adresse des Endpunkts auf Google APIs und Google-Dienste zugreifen.
Ihr lokales Netzwerk muss über Cloud VPN-Tunnel oder VLAN-Anhänge für Cloud Interconnect mit einem VPC-Netzwerk verbunden sein.
Der Endpunkt muss sich im VPC-Netzwerk befinden, das mit Ihrem lokalen Netzwerk verbunden ist.
Das lokale Netzwerk muss geeignete Routen für den Endpunkt haben. Konfigurieren Sie ein benutzerdefiniertes Route Advertisement für Cloud Router, um Routen für den Endpunkt in der BGP-Sitzung anzukündigen, die Routen für den Cloud VPN-Tunnel oder den VLAN-Anhang verwaltet.
- Wenn Ihr Netzwerk in der lokalen Umgebung ECMP-Routing (Equal-Cost Multi-Path) zur Verteilung des Traffics an Private Service Connect-Endpunkte verwendet, müssen Sie sicherstellen, dass alle Pakete für eine einzelne TCP-Verbindung durch denselben Cloud VPN-Tunnel oder VLAN-Anhang weitergeleitet werden. Wenn Pakete für eine vorhandene TCP-Verbindung über mehrere Pfade weitergeleitet werden, können zeitweise TCP-Zurücksetzungen (RSTs) auftreten. Konfigurieren Sie Ihre lokalen Peer-Router so, dass sie konsistente Ziele für den nächsten Hop beibehalten, um ein Zurücksetzen zu verhindern.
Sie müssen lokale Systeme konfigurieren, damit 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 lokales Netzwerk eine Verbindung herstellt.
Identifizieren Sie die Weiterleitungs-Einstiegspunkte für eingehenden Traffic in den Regionen, in denen sich Ihre Cloud VPN-Tunnel und VLAN-Anhänge befinden, in dem VPC-Netzwerk, mit dem sich Ihr lokales Netzwerk verbindet.
Konfigurieren Sie lokale Systeme und lokale DNS-Namensserver so, dass sie die DNS-Namen für die Private Service Connect-Endpunkte an einen Weiterleitungs-Einstiegspunkt für eingehenden Traffic in derselben Region wie der Cloud VPN-Tunnel oder der VLAN-Anhang weiterleiten, der eine Verbindung zum VPC-Netzwerk herstellt.
Fehlerbehebung
Die folgenden Abschnitte enthalten Informationen zum Beheben von Problemen mit Private Service Connect-Endpunkten, die für den Zugriff auf Google APIs verwendet werden.
Erstellen einer privaten DNS-Zone schlägt fehl
Wenn Sie einen Endpunkt erstellen, wird eine Service Directory-DNS-Zone erstellt. Das Erstellen einer Zone kann aus folgenden Gründen fehlschlagen:
Sie haben die Cloud DNS API in Ihrem Projekt nicht aktiviert.
Sie haben nicht die erforderlichen Berechtigungen, um eine Service Directory-DNS-Zone zu erstellen.
Eine DNS-Zone mit demselben Zonennamen ist in diesem VPC-Netzwerk vorhanden.
In diesem VPC-Netzwerk ist bereits eine DNS-Zone für
p.googleapis.com
vorhanden.
In Konflikt stehende Zonen existieren möglicherweise, weil ein vorheriger Löschvorgang fehlgeschlagen ist.
So erstellen Sie die Service Directory-DNS-Zone:
Prüfen Sie, ob die Cloud DNS API in Ihrem Projekt aktiviert ist.
Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen der Service Directory-DNS-Zone haben:
dns.managedZones.create
servicedirectory.namespaces.associatePrivateZone
Erstellen Sie eine Service Directory-DNS-Zone auf der Grundlage des Service Directory-Namespace, der mit Ihrem Endpunkt verknüpft ist.
Verwenden Sie beim Erstellen der Zone die folgenden Werte:
Zonenname: Verwenden Sie denselben Zonennamen, den das System während des fehlgeschlagenen Versuchs verwendet hat. Die Fehlermeldung zeigt an, welcher Zonenname verwendet wurde.
DNS-Name:
p.googleapis.com.
(einschließlich des abschließenden Punkts).Service Directory-Namespace: Suchen Sie den Service Directory-Namespace für den von Ihnen erstellten Private Service Connect-Endpunkt und verwenden Sie diesen Namespace beim Erstellen der Service Directory-DNS-Zone.
Der Service Directory-Namespace hat das folgende Format:
goog-psc-NETWORK_NAME-NETWORK_ID
.
Fehler beim Löschen der privaten DNS-Zone
Wenn Sie den letzten Endpunkt in einem VPC-Netzwerk löschen, wird die zugehörige Service Directory-Konfiguration einschließlich der DNS-Zone gelöscht.
Das Löschen kann wegen folgende Gründe fehlschlagen:
Sie haben nicht die erforderlichen Berechtigungen, um die DNS-Zone zu löschen.
Die Zone enthält benutzerdefinierte DNS-Einträge, die nicht von Service Directory erstellt wurden.
So beheben Sie das Problem:
Prüfen Sie, ob Sie die Berechtigung
dns.managedZones.delete
haben. Weitere Informationen finden Sie unter Zugriffssteuerung in der Dokumentation zu Cloud DNS.