Über Endpunkte auf globale Google APIs zugreifen

In diesem Dokument wird erläutert, wie Sie mit Private Service Connect-Endpunkten eine Verbindung zu globalen 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.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Endpunkten für den Zugriff auf globale Google APIs benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwalten von Endpunkten erforderlich sind, die auf globale Google APIs zugreifen. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Endpunkte zu verwalten, die auf globale Google APIs zugreifen:

  • So erstellen, rufen Sie auf und löschen Sie Endpunkte:
    • compute.networks.use für Ihr Projekt
    • compute.subnetworks.use für Ihr Projekt
    • compute.addresses.createInternal für Ihr Projekt
    • compute.addresses.deleteInternal für Ihr Projekt
    • compute.addresses.get für Ihr Projekt
    • compute.addresses.list für Ihr Projekt
    • compute.addresses.use für Ihr Projekt
    • compute.forwardingRules.create für Ihr Projekt
    • compute.forwardingRules.delete für Ihr Projekt
    • compute.forwardingRules.get für Ihr Projekt
    • compute.forwardingRules.list für Ihr Projekt
    • compute.forwardingRules.pscCreate für Ihr Projekt
    • compute.forwardingRules.pscDelete für Ihr Projekt
    • compute.regionOperations.get für Ihr Projekt
    • servicedirectory.namespaces.create für Ihr Projekt
    • servicedirectory.namespaces.delete für Ihr Projekt
    • servicedirectory.services.create für Ihr Projekt
    • servicedirectory.services.delete für Ihr Projekt
  • So weisen Sie eine Endpunkt-IP-Adresse aus einem internen Bereich zu:
    • networkconnectivity.internalRanges.get für Ihr Projekt
    • networkconnectivity.internalRanges.list für Ihr Projekt
  • So konfigurieren Sie DNS-Einträge für einen Endpunkt automatisch oder manuell:
    • dns.managedZones.create für Ihr Projekt
    • dns.managedZones.delete für Ihr Projekt
    • dns.networks.bindPrivateDNSZone für Ihr Projekt
    • servicedirectory.namespaces.associatePrivateZone für Ihr Projekt
  • So rufen Sie die Private Service Connect-Seite in der Google Cloud Console auf:
    • compute.forwardingRules.list für Ihr Projekt
    • compute.globalForwardingRules.list für Ihr Projekt
    • compute.networkEndpointGroups.list für Ihr Projekt
    • compute.regionNetworkEndpointGroups.list für Ihr Projekt
    • compute.urlMaps.list für Ihr Projekt
    • compute.backendService.list für Ihr Projekt
    • compute.regionBackendService.list für Ihr Projekt
    • compute.backendBucket.list für Ihr Projekt
    • compute.targetHttpProxy.list für Ihr Projekt
    • compute.targetHttpsProxy.list für Ihr Projekt
    • compute.regionTargetTcpProxy.list für Ihr Projekt
    • compute.targetTcpProxy.list für Ihr Projekt
    • compute.targetSslProxy.list für Ihr Projekt
    • compute.sslCertificate.list für Ihr Projekt
    • compute.sslPolicy.list für Ihr Projekt
    • compute.regionHealthCheck.list für Ihr Projekt
    • compute.healthCheck.list für Ihr Projekt
    • compute.httpHealthCheck.list für Ihr Projekt
    • compute.httpsHealthCheck.list für Ihr Projekt

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Hinweis

  • Weitere Informationen, u. a. zur DNS-Konfiguration und zu den Einschränkungen, finden Sie unter Verbindung zu Google APIs mithilfe von Endpunkten herstellen.

  • Die folgenden APIs müssen in Ihrem Projekt aktiviert sein:

    Eine API ist aktiviert, wenn auf der Bibliotheksseite der API in der Google Cloud Console der Button Verwalten angezeigt wird. Wenn der Button Aktivieren angezeigt wird, ist die API nicht aktiviert. Klicken Sie auf den Button Aktivieren, um sie zu aktivieren.

  • Sie müssen eine IP-Adresse für den Endpunkt auswählen. Informationen zu den IP-Adressen, die Sie verwenden können, finden Sie unter Anforderungen an IP-Adressen.

  • Firewallregeln für ausgehenden Traffic müssen 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.

  • 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 privater Google-Zugriff für ihr Subnetz deaktiviert ist. Die Verbindung zum Endpunkt bleibt innerhalb des Google-Netzwerks.

  • 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

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf den Namen des Netzwerks mit dem Subnetz, für das Sie den privaten Google-Zugriff aktivieren müssen.

  3. Klicken Sie auf den Namen des Subnetzes. Daraufhin wird die Seite Subnetzdetails angezeigt.

  4. Klicken Sie auf Bearbeiten.

  5. Wählen Sie im Abschnitt Privater Google-Zugriff die Option Ein aus.

  6. Klicken Sie auf Speichern.

gcloud

  1. Legen Sie den Namen und die Region des Subnetzes fest. Verwenden Sie den Befehl gcloud compute networks subnets list, um die Subnetze für ein bestimmtes Netzwerk aufzulisten:

    gcloud compute networks subnets list --filter=NETWORK_NAME
    
  2. Führen Sie den Befehl gcloud compute networks subnets update aus, um den privater Google-Zugriff zu aktivieren:

    gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --enable-private-ip-google-access
    
  3. Prüfen Sie, ob der privater Google-Zugriff aktiviert ist. Führen Sie dazu den Befehl gcloud compute networks subnets describe aus:

    gcloud compute networks subnets describe SUBNET_NAME \
    --region=REGION \
    --format="get(privateIpGoogleAccess)"
    

Ersetzen Sie Folgendes:

  • SUBNET_NAME: Name des Subnetzes
  • REGION: Region für das Subnetz
  • NETWORK_NAME: Name des VPC-Netzwerks, das das Subnetz enthält

API

Verwenden Sie die Methode subnetworks.setPrivateIpGoogleAccess, um den privater Google-Zugriff für ein Subnetz zu aktivieren:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME/setPrivateIpGoogleAccess
{
  "privateIpGoogleAccess": true
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, das das Subnetz enthält
  • REGION: Region für das Subnetz
  • SUBNET_NAME: Name des Subnetzes

Terraform

Sie können die Terraform-Ressource verwenden, um den privaten Google-Zugriff für ein Subnetz zu aktivieren.

resource "google_compute_network" "network" {
  project                 = var.project # Replace this with your project ID in quotes
  name                    = "tf-test"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "vpc_subnetwork" {
  project                  = google_compute_network.network.project
  name                     = "test-subnetwork"
  ip_cidr_range            = "10.2.0.0/16"
  region                   = "us-central1"
  network                  = google_compute_network.network.id
  private_ip_google_access = true
}

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 nach dem Erstellen nicht mehr aktualisieren. Wenn Sie einen Endpunkt für Google APIs und Google-Dienste aktualisieren müssen, löschen Sie den Endpunkt und erstellen Sie dann einen neuen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

  3. Klicken Sie auf Endpunkt verbinden.

  4. Wählen Sie unter Ziel das Ziel-API-Bundle aus, das Sie verwenden möchten:

    • Alle Google APIs
    • VPC-SC
  5. Geben Sie unter Endpunktname einen Namen für den Endpunkt ein.

  6. Wählen Sie ein Netzwerk für den Endpunkt aus.

  7. 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:

    1. Klicken Sie auf IP-Adresse erstellen.
    2. Geben Sie einen Namen und optional eine Beschreibung für die IP-Adresse ein.
    3. Geben Sie die IP-Adresse an:
      • Geben Sie im Feld IP-Adresse die IP-Adresse ein, die Sie verwenden möchten, um eine IPv4-Adresse zu reservieren.
      • So weisen Sie eine IPv4-Adresse aus einem internen Bereich zu:
        1. Wählen Sie das Kästchen IP-Adresse aus einer IP-Sammlung zuweisen aus.
        2. Wählen Sie in der Liste IP-Sammlung einen internen Bereich aus.
        3. Führen Sie unter IP-Adresszuweisung einen der folgenden Schritte aus:
          • Wenn Sie eine IP-Adresse automatisch zuweisen möchten, wählen Sie Automatisch zuweisen aus.
          • Wenn Sie eine IP-Adresse manuell zuweisen möchten, wählen Sie Selbst auswählen aus und geben Sie eine IP-Adresse aus dem internen Bereich ein.
    4. Klicken Sie auf Speichern.
  8. 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.

  9. Wenn für dieses VPC-Netzwerk noch kein Service Directory-Namespace konfiguriert ist, konfigurieren Sie den gewünschten Namespace:

    • Wenn Sie einen automatisch zugewiesenen Namespace verwenden möchten, klicken Sie auf das Menü Namespace und wählen Sie den automatisch zugewiesenen Namespace aus.

    • Wenn Sie einen vorhandenen Namespace auswählen möchten, 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.

  10. Klicken Sie auf Endpunkt hinzufügen.

gcloud

  1. Reservieren Sie mit dem Befehl gcloud compute addresses create eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten:

    • Führen Sie den folgenden Befehl aus, um eine IPv4-Adresse zu reservieren:

      gcloud compute addresses create ADDRESS_NAME \
          --global \
          --purpose=PRIVATE_SERVICE_CONNECT \
          --addresses=ENDPOINT_IP \
          --network=NETWORK_NAME
      

      Ersetzen Sie Folgendes:

      • ADDRESS_NAME: der Name, der der reservierten IP-Adresse zugewiesen werden soll.

      • NETWORK_NAME: der Name des VPC-Netzwerks für den Endpunkt.

      • ENDPOINT_IP: die IP-Adresse, die für den Endpunkt reserviert werden soll.

        Die IP-Adresse muss diese Anforderungen erfüllen.

    • Verwenden Sie das Flag --internal-range, um eine IPv4-Adresse aus einem internen Bereich zu reservieren.

      Mit dem folgenden Befehl wird automatisch eine IP-Adresse aus dem internen Bereich zugewiesen. Wenn Sie eine bestimmte IP-Adresse auswählen möchten, verwenden Sie das Flag --addresses, um eine IP-Adresse innerhalb des internen Bereichs anzugeben.

      gcloud compute addresses create ADDRESS_NAME \
          --global \
          --network=NETWORK_NAME \
          --purpose=PRIVATE_SERVICE_CONNECT \
          --internal-range=https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID: die ID des Projekts, das den internen Bereich enthält.

      • RANGE_NAME: der Name des internen Bereichs, aus dem die IP-Adresse zugewiesen werden soll. Der interne Bereich muss sich im selben VPC-Netzwerk befinden und den Zweck INTERNAL_ADDRESS, den Nutzungstyp FOR_VPC und den Peering-Typ FOR_SELF haben.

  2. Erstellen Sie mit dem Befehl gcloud compute forwarding-rules create eine Weiterleitungsregel, um den Endpunkt mit Google APIs und Google-Diensten zu verbinden. Das Flag --service-directory-registration ist optional. Wenn Sie ihn weglassen, wird ein vorhandener Namespace wiederverwendet. Wenn keine Namespaces vorhanden sind, wird ein vom System generierter Namespace zugewiesen.

    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
    

    Ersetzen Sie Folgendes:

    • 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

  1. Reservieren Sie eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten. Verwenden Sie dazu die Methode globalAddresses.insert:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
    
    • Verwenden Sie den folgenden Anfragetext, um eine IPv4-Adresse zu reservieren:

      {
        "name": "ADDRESS_NAME",
        "address": "ENDPOINT_IP",
        "addressType": "INTERNAL",
        "purpose": "PRIVATE_SERVICE_CONNECT",
        "network": "NETWORK_URL"
      }
      

      Ersetzen Sie Folgendes:

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

    • Wenn Sie eine IPv4-Adresse aus einem internen Bereich reservieren möchten, fügen Sie das Feld ipCollection in den Anfragetext ein.

      Im folgenden Beispiel wird automatisch eine IP-Adresse aus dem internen Bereich zugewiesen. Wenn Sie eine bestimmte IP-Adresse auswählen möchten, verwenden Sie das Feld address, um eine IP-Adresse innerhalb des internen Bereichs anzugeben.

      {
        "name": "ADDRESS_NAME",
        "addressType": "INTERNAL",
        "purpose": "PRIVATE_SERVICE_CONNECT",
        "ipCollection": "https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "network": "NETWORK_URL"
      }
      

      Ersetzen Sie Folgendes:

      • RANGE_NAME: der Name des internen Bereichs, aus dem die IP-Adresse zugewiesen werden soll. Der interne Bereich muss sich im selben VPC-Netzwerk befinden und den Zweck INTERNAL_ADDRESS, den Nutzungstyp FOR_VPC und den Peering-Typ FOR_SELF haben.
  2. Erstellen Sie mit der Methode globalForwardingRules.insert eine Weiterleitungsregel, um den Endpunkt mit Google APIs und Google-Diensten zu verbinden. Das serviceDirectoryRegistrations-Objekt ist optional. Wenn Sie ihn weglassen, wird ein vorhandener Namespace wiederverwendet. Wenn keine Namespaces vorhanden sind, wird ein vom System generierter Namespace zugewiesen.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/global/forwardingRules
    
    {
      "name": "ENDPOINT_NAME",
      "IPAddress": "projects/PROJECT/global/addresses/ADDRESS_NAME",
      "network": "projects/PROJECT/global/networks/NETWORK",
      "target": "API_BUNDLE",
      "serviceDirectoryRegistrations": [
        {
          "serviceDirectoryRegion": "REGION",
          "namespace": "NAMESPACE"
        }
      ]
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT: Ihre Projekt-ID.

    • ENDPOINT_NAME: der Name, der dem Endpunkt zugewiesen werden soll. Der Name muss ein String mit 1–20 Zeichen sein, der nur Kleinbuchstaben und Ziffern enthält. Der Name muss mit einem Buchstaben beginnen.

    • NETWORK: das VPC-Netzwerk 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: die Service Directory-Region, die Sie verwenden möchten. Beispiel: us-central1 Wenn Sie REGION weglassen und für dieses VPC-Netzwerk bereits eine Region konfiguriert ist, wird diese Region verwendet. Wenn eine Region nicht konfiguriert ist, wird sie auf us-central1 gesetzt.

    • NAMESPACE: der Name des Service Directory-Namespace, den Sie verwenden möchten. Wenn Sie NAMESPACE 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:

resource "google_compute_global_address" "default" {
  project      = google_compute_network.network.project
  name         = "global-psconnect-ip"
  address_type = "INTERNAL"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.network.id
  address      = "10.3.0.5"
}
resource "google_compute_global_forwarding_rule" "default" {
  project               = google_compute_network.network.project
  name                  = "globalrule"
  target                = "all-apis"
  network               = google_compute_network.network.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
}

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

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

    Die Endpunkte werden angezeigt.

gcloud

Verwenden Sie den Befehl gcloud compute forwarding-rules list, um Endpunkte aufzulisten.

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

API

Verwenden Sie die Methode globalForwardingRules.list, um Endpunkte aufzulisten.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules?filter=(target%3Dall-apis)%20OR%20(target%3Dvpc-sc)

Ersetzen Sie PROJECT_ID durch die ID des Projekts, das die Endpunkte enthält.

Informationen zu einem Endpunkt abrufen

Sie können alle Konfigurationsdetails eines Endpunkts aufrufen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

    Die Endpunkte werden angezeigt.

  3. Klicken Sie auf den Endpunkt, für den Sie Details aufrufen möchten.

gcloud

Verwenden Sie den Befehl gcloud compute forwarding-rules describe, um Informationen zu einem Endpunkt abzurufen.

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --global

Ersetzen Sie ENDPOINT_NAME durch den Namen des Endpunkts.

API

Verwenden Sie die Methode globalForwardingRules.get, um Informationen zu einem Endpunkt abzurufen.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/ENDPOINT_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, das den Endpunkt enthält
  • ENDPOINT_NAME: der Name des Endpunkts.

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

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbundene Endpunkte.

  3. Wählen Sie den Endpunkt aus, den Sie löschen möchten, und klicken Sie dann auf Löschen.

gcloud

Verwenden Sie zum Löschen eines Endpunkts den Befehl gcloud compute forwarding-rules delete.

gcloud compute forwarding-rules delete \
    ENDPOINT_NAME --global

Ersetzen Sie ENDPOINT_NAME durch den Namen des Endpunkts, den Sie löschen möchten.

API

Verwenden Sie zum Löschen eines Endpunkts die Methode globalForwardingRules.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/ENDPOINT_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, das den Endpunkt enthält
  • ENDPOINT_NAME: der Name des Endpunkts, den 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 wenn p.googleapis.com-DNS-Einträge für die APIs und Dienste erstellt werden, die Sie verwenden möchten. Weitere Informationen finden Sie unter p.googleapis.com-DNS-Namen verwenden.

    Wenn Ihr Endpunktname beispielsweise xyz lautet, werden DNS-Einträge für storage-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 *.googleapis.com oder *.pkg.dev.

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 IP-Adresse des Endpunkts und haben 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 ClientOptions konfigurieren.

  • .NET: Sie können Endpoint in der Builder-Klasse des Clients konfigurieren.

  • Java: Sie können setEndpoint in der Klasse der Clienteinstellungen 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 für diesen Dienst gibt es keinen automatisch erstellten p.googleapis.com-DNS-Namen.

So erstellen Sie DNS-Einträge, die auf Ihren Private Service Connect-Endpunkt verweisen:

  1. Erstellen Sie eine DNS-Zone für die Domain, die Sie verwenden möchten (z. B. googleapis.com oder pkg.dev). Ziehen Sie zu diesem Zweck in Betracht, eine private Cloud DNS-Zone zu erstellen.

  2. In dieser DNS-Zone:

    1. Erstellen Sie einen A-Eintrag für den Domainnamen (Zone) selbst. Beispiel: googleapis.com oder pkg.dev. Verweisen Sie diesen A-Eintrag auf die IP-Adresse des Endpunkts. Wenn Sie Cloud DNS verwenden, lesen Sie den Abschnitt Eintrag hinzufügen.

    2. 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 *.pkg.dev. Verweisen Sie diesen CNAME-Eintrag auf den A-Eintrag in derselben Zone. Verweisen Sie beispielsweise *.googleapis.com auf googleapis.com oder *.pkg.dev auf pkg.dev.

Zugriff auf den Endpunkt ü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 Private Service Connect-Endpunkt muss sich im VPC-Netzwerk befinden, das mit dem anderen Netzwerk verbunden ist.

  • Das andere 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 das andere Netzwerk 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 hergestellte TCP-Verbindung über mehrere Pfade weitergeleitet werden, kann es zu zeitweiligen TCP-Zurücksetzungen (RSTs) kommen. 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 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:

Fehlerbehebung

Die folgenden Abschnitte enthalten Informationen zur Behebung 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:

  • Die Cloud DNS API ist für Ihr 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:

  1. Prüfen Sie, ob die Cloud DNS API in Ihrem Projekt aktiviert ist.

  2. Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen der Service Directory-DNS-Zone haben:

    • dns.managedZones.create
    • servicedirectory.namespaces.associatePrivateZone
  3. Löschen Sie die DNS-Zone.

  4. 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:

  1. Prüfen Sie, ob Sie die Berechtigung dns.managedZones.delete haben. Weitere Informationen finden Sie unter Zugriffssteuerung in der Dokumentation zu Cloud DNS.

  2. Löschen Sie die DNS-Zone.