Dienste mit Private Service Connect veröffentlichen

Als Dienstersteller können Sie Private Service Connect verwenden, um Dienste mithilfe interner IP-Adressen in Ihrem VPC-Netzwerk zu veröffentlichen. Ihre veröffentlichten Dienste sind für Dienstnutzer über interne IP-Adressen in den VPC-Netzwerken des Nutzers zugänglich.

In dieser Anleitung wird beschrieben, wie Sie Private Service Connect verwenden, um einen Dienst zu veröffentlichen. So veröffentlichen Sie einen Dienst:

Private Service Connect bietet zwei Methoden zum Herstellen einer Verbindung zu veröffentlichten Diensten:

Diese Endpunkttypen erfordern etwas unterschiedliche Erstellerkonfigurationen. Weitere Informationen finden Sie unter Features und Kompatibilität.

Rollen

Die folgende IAM-Rolle bietet die Berechtigungen, die zum Ausführen der Aufgaben in dieser Anleitung erforderlich sind.

Hinweis

Unterstützte Load-Balancer-Typen

Sie können den Dienst mit den folgenden Load Balancern hosten:

Informationen zu unterstützten Konfigurationen für jeden Load-Balancer-Typ finden Sie unter Features und Kompatibilität.

Sie können auch einen Dienst veröffentlichen, der in einem internen Passthrough Network Load Balancer in Google Kubernetes Engine gehostet wird. Diese Konfiguration, einschließlich des Load Balancers und der Konfiguration des Dienstanhangs, wird unter Internen Passthrough Network Load Balancer mit Private Service Connect erstellen in der GKE-Dokumentation beschrieben.

Subnetz für Private Service Connect erstellen

Erstellen Sie ein oder mehrere dedizierte Subnetze für die Verwendung von Private Service Connect. Wenn Sie die Google Cloud Console zum Veröffentlichen eines Dienstes verwenden, können Sie die Subnetze während dieses Verfahrens erstellen.

Weitere Informationen zum Hinzufügen weiterer IP-Adressen zu einem vorhandenen Dienst finden Sie unter Subnetze zu einem veröffentlichten Dienst hinzufügen oder daraus entfernen.

Sie können auch ein Private Service Connect-Subnetz in einem freigegebenen VPC-Hostprojekt erstellen.

Erstellen Sie das Subnetz in derselben Region wie den Load-Balancer des Dienstes.

Ein reguläres Subnetz kann nicht in ein Private Service Connect-Subnetz umgewandelt werden.

Console

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

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf den Namen eines VPC-Netzwerks, um die zugehörige Seite VPC-Netzwerkdetails aufzurufen.

  3. Klicken Sie auf Subnetz hinzufügen. Führen Sie im angezeigten Bereich folgende Schritte aus:

    1. Geben Sie einen Namen an.
    2. Wählen Sie eine Region aus.
    3. Wählen Sie im Abschnitt Zweck die Option Private Service Connect aus.
    4. Geben Sie einen IP-Adressbereich ein. Beispiel: 10.10.10.0/24
    5. Klicken Sie auf Add.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --range=SUBNET_RANGE --purpose=PRIVATE_SERVICE_CONNECT

Ersetzen Sie Folgendes:

  • SUBNET_NAME: der Name, der dem Subnetz zugewiesen werden soll.

  • NETWORK_NAME: der Name der VPC für das neue Subnetz.

  • REGION: die Region für das neue Subnetz. Dies muss dieselbe Region sein wie der Dienst, den Sie veröffentlichen.

  • SUBNET_RANGE: der IP-Adressbereich, der für das Subnetz verwendet werden soll. Beispiel: 10.10.10.0/24

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

{
  "ipCidrRange": "SUBNET_RANGE",
  "name": "SUBNET_NAME",
  "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
  "purpose": "PRIVATE_SERVICE_CONNECT",
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für das Subnetz.

  • REGION: die Region für das neue Subnetz. Dies muss dieselbe Region sein wie der Dienst, den Sie veröffentlichen.

  • SUBNET_RANGE: der IP-Adressbereich, der für das Subnetz verwendet werden soll. Beispiel: 10.10.10.0/24

  • SUBNET_NAME: der Name, der dem Subnetz zugewiesen werden soll.

  • NETWORK_NAME: der Name des VPC-Netzwerks für das neue Subnetz.

Firewallregeln konfigurieren

Konfigurieren Sie Firewallregeln, um Traffic zwischen den Endpunkten oder Back-Ends und dem Dienstanhang zuzulassen. Clientanfragen stammen aus verschiedenen Standorten, je nach Private Service Connect-Typ.

Private Service Connect-Typ IP-Adressbereiche für Client-Traffic Details
Endpunkt (basierend auf einer Weiterleitungsregel) Die IP-Adressbereiche der Private Service Connect-Subnetze, die mit diesem Dienst verknüpft sind. Wenn Sie das Standardnetzwerk verwenden, lässt die bereits ausgefüllte Regel default-allow-internal diesen Traffic zu, es sei denn, sie wird durch eine Regel mit höherer Priorität blockiert.
Backend (basierend auf einem globalen externen Application Load Balancer)
  • 130.211.0.0/22
  • 35.191.0.0/16
Globale externe Application Load Balancer werden auf Google Front Ends (GFEs) implementiert, die diese IP-Adressbereiche verwenden.

Wenn Ihre Firewall-Konfiguration keinen Traffic vom entsprechenden Endpunkttyp zulässt, konfigurieren Sie die Firewallregeln so, dass er zugelassen wird.

In der folgenden Beispielkonfiguration können Sie VPC-Firewallregeln erstellen, um Traffic von Client-IP-Adressbereichen zu den Backend-VMs im Load-Balancer des Producer-Dienstes zuzulassen. Diese Konfiguration setzt voraus, dass die Backend-VMs mit einem Netzwerk-Tag konfiguriert wurden.

Beispiel für eine Regel für eingehenden Traffic:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=ingress \
    --action=allow \
    --target-tags=TAG \
    --source-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Ersetzen Sie Folgendes:

  • NAME: der Name der Firewallregel.

  • NETWORK_NAME: das Netzwerk, das den Dienst und das Private Service Connect-Subnetz enthält.

  • TAG ist das Zieltag, das auf die Backend-VMs im Load-Balancer des Producer-Dienstes angewendet wird.

  • CLIENT_IP_RANGES_LIST sind die IP-Adressbereiche, aus denen der Clienttraffic stammt. Weitere Informationen finden Sie in der vorherigen Tabelle.

  • RULES_LIST: eine durch Kommas getrennte Liste von Protokollen und Zielports, auf die die Regel angewendet wird. Beispiel: tcp,udp

Beispiel für eine Regel für ausgehenden Traffic:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=egress \
    --action=allow \
    --target-tags=TAG \
    --destination-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Ersetzen Sie Folgendes:

  • NAME: der Name der Firewallregel.

  • NETWORK_NAME: das Netzwerk, das den Dienst und das Private Service Connect-Subnetz enthält.

  • TAG ist das Zieltag, das auf die Backend-VMs im Load-Balancer des Producer-Dienstes angewendet wird.

  • CLIENT_IP_RANGES_LIST sind die IP-Adressbereiche, aus denen der Clienttraffic stammt. Weitere Informationen finden Sie in der vorherigen Tabelle.

  • RULES_LIST: eine durch Kommas getrennte Liste von Protokollen und Zielports, auf die die Regel angewendet wird. Beispiel: tcp,udp

Weitere Informationen zum Konfigurieren von VPC-Firewallregeln finden Sie unter VPC-Firewallregeln. Informationen zum Konfigurieren hierarchischer Firewallregeln, um diesen Traffic zuzulassen, finden Sie unter Hierarchische Firewallrichtlinien.

Dienst veröffentlichen

Zum Veröffentlichen eines Dienstes erstellen Sie einen Dienstanhang. Sie können den Dienst auf zwei Arten verfügbar machen:

Erstellen Sie den Dienstanhang in derselben Region wie den Load-Balancer des Dienstes.

Jeder Dienstanhang kann auf ein oder mehrere Private Service Connect-Subnetze verweisen. Ein Private Service Connect-Subnetz kann jedoch nicht in mehr als einem Dienstanhang verwendet werden.

Dienst mit automatischer Genehmigung veröffentlichen

Folgen Sie dieser Anleitung, um einen Dienst zu veröffentlichen und allen Nutzern automatisch die Verbindung zu diesem Dienst zu ermöglichen. Wenn Sie Nutzerverbindungen explizit genehmigen möchten, lesen Sie die Informationen unter Dienst mit expliziter Genehmigung veröffentlichen.

Wenn Sie einen Dienst veröffentlichen, erstellen Sie einen Dienstanhang. Dienstnutzer verwenden die Details des Dienstanhangs, um eine Verbindung zu Ihrem Dienst herzustellen.

Wenn Sie die Informationen zur Nutzerverbindung lesen möchten, können Sie das PROXY-Protokoll für unterstützte Dienste aktivieren. Informationen zu unterstützten Diensten finden Sie unter Features und Kompatibilität. Weitere Informationen zum PROXY-Protokoll finden Sie unter Informationen zur Nutzerverbindung 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 Veröffentlichte Dienste.

  3. Klicken Sie auf Dienst veröffentlichen.

  4. Wählen Sie den Load-Balancer-Typ für den Dienst aus, den Sie veröffentlichen möchten:

    • Interner Passthrough-Network Load Balancer
    • Regionaler interner Proxy-Network Load Balancer
    • Regionaler interner Application Load Balancer
  5. Wählen Sie den internen Load-Balancer aus, der den Dienst hostet, den Sie veröffentlichen möchten.

    Dienstprojektadministratoren können einen internen Load-Balancer auswählen, der eine IP-Adresse aus einem freigegebenen VPC-Netzwerk hat. Weitere Informationen finden Sie unter Freigegebene VPC.

    Die Felder für Netzwerk und Region werden mit den Details für den ausgewählten internen Load-Balancer ausgefüllt.

  6. Wenn Sie dazu aufgefordert werden, wählen Sie die Weiterleitungsregel aus, die dem Dienst zugeordnet ist, den Sie veröffentlichen möchten.

  7. Geben Sie unter Dienstname einen Namen für den Dienstanhang ein.

  8. Wählen Sie ein oder mehrere Private Service Connect-Subnetze für den Dienst aus. Die Liste wird mit Subnetzen aus dem VPC-Netzwerk des ausgewählten internen Load-Balancers gefüllt. Dazu gehören auch Subnetze, die über eine freigegebene VPC für ein Dienstprojekt freigegeben sind.

    Wenn Ihr Dienstanhang einen internen Load-Balancer mit einer IP-Adresse aus einem freigegebenen VPC-Netzwerk verwendet, müssen Sie ein freigegebenes Subnetz aus demselben freigegebenen VPC-Netzwerk auswählen.

  9. Wenn Sie Informationen zu Nutzerverbindungen aufrufen möchten, wählen Sie Proxyprotokoll verwenden aus.

  10. Wenn Sie einen Domainnamen konfigurieren möchten, geben Sie einen Domainnamen mit einem nachgestellten Punkt ein.

    Das empfohlene Format für den Domainnamen ist REGION.p.DOMAIN..

    Sie müssen Inhaber des Domainnamens sein. Weitere Informationen finden Sie unter DNS-Konfiguration.

  11. Wählen Sie Verbindungen automatisch akzeptieren aus.

  12. Klicken Sie auf Dienst hinzufügen.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Ersetzen Sie Folgendes:

  • ATTACHMENT_NAME: der Name, der dem Dienstanhang zugewiesen werden soll.

  • REGION: die Region für den neuen Dienstanhang. Es muss dieselbe Region sein wie der Dienst, den Sie veröffentlichen.

  • RULE_NAME: der Name der Weiterleitungsregel, die dem zu veröffentlichenden Dienst zugeordnet ist.

    Dienstprojektadministratoren können die Weiterleitungsregel eines internen Load-Balancers angeben, der eine IP-Adresse aus einem freigegebenen VPC-Netzwerk hat. Weitere Informationen finden Sie unter Freigegebene VPC.

  • PSC_SUBNET_LIST: eine durch Kommas getrennte Liste mit einem oder mehreren Subnetznamen, die mit diesem Dienstanhang verwendet werden sollen.

    Wenn Sie einen Dienstanhang mit einer Weiterleitungsregel erstellen, die eine IP-Adresse aus einem freigegebenen VPC-Netzwerk enthält, verwenden Sie freigegebene Subnetze aus demselben freigegebenen VPC-Netzwerk. Geben Sie für jedes freigegebene Subnetz den vollständigen Ressourcen-URI an, z. B. --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • DOMAIN_NAME: ein DNS-Domainname für den Dienst, einschließlich eines abschließenden Punkts. Empfohlenes Format:REGION.p.DOMAIN.

    Weitere Informationen finden Sie unter DNS-Konfiguration.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI",
  ],
  "domainNames": [
    "DOMAIN_NAME",
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für den Dienstanhang.

  • REGION: die Region für den neuen Dienstanhang. Es muss dieselbe Region sein wie der Dienst, den Sie veröffentlichen.

  • ATTACHMENT_NAME: der Name, der dem Dienstanhang zugewiesen werden soll.

  • RULE_URI: der URI der Weiterleitungsregel, die dem Dienst zugeordnet ist, den Sie veröffentlichen.

    Dienstprojektadministratoren können die Weiterleitungsregel eines internen Load-Balancers angeben, der eine IP-Adresse aus einem freigegebenen VPC-Netzwerk hat. Weitere Informationen finden Sie unter Freigegebene VPC.

  • PSC_SUBNET_1_URI und PSC_SUBNET_2_URI: die für diesen Dienstanhang zu verwendenden Subnetz-URIs. Sie können ein oder mehrere Subnetze anhand des URI angeben.

    Wenn Sie einen Dienstanhang mit einer Weiterleitungsregel erstellen, die eine IP-Adresse aus einem freigegebenen VPC-Netzwerk enthält, verwenden Sie freigegebene Subnetze aus demselben freigegebenen VPC-Netzwerk.

  • DOMAIN_NAME: ein DNS-Domainname für den Dienst, einschließlich eines abschließenden Punkts. Empfohlenes Format:REGION.p.DOMAIN.

    Weitere Informationen finden Sie unter DNS-Konfiguration.

Dienst mit expliziter Genehmigung veröffentlichen

Folgen Sie dieser Anleitung, um einen Dienst zu veröffentlichen, wenn Sie Nutzer explizit genehmigen möchten, bevor sie eine Verbindung zu diesem Dienst herstellen können. Wenn Sie Nutzerverbindungen automatisch genehmigen möchten, lesen Sie die Informationen unter Dienst mit automatischer Genehmigung veröffentlichen.

Wenn Sie einen Dienst veröffentlichen, erstellen Sie einen Dienstanhang. Dienstnutzer verwenden die Details des Dienstanhangs, um eine Verbindung zu Ihrem Dienst herzustellen.

Jeder Dienstanhang hat eine Annahmeliste und eine Ablehnungsliste, anhand derer bestimmt werden kann, welche Endpunkte eine Verbindung zum Dienst herstellen können. Ein bestimmter Dienstanhang kann entweder Projekte oder Netzwerke in diesen Listen verwenden, aber nicht beides. Die Angabe von Nutzern nach Ordner wird nicht unterstützt.

Wenn Sie Nutzer nicht mehr basierend auf dem Projekt, sondern basierend auf dem Netzwerk akzeptieren möchten oder umgekehrt, gehen Sie so vor:

  • Ersetzen Sie alle genehmigten Projekte oder Netzwerke in einem einzigen Vorgang.
  • Wenn Sie denselben Zugriff wie zuvor gewähren möchten, müssen die neuen Annahme- und Ablehnungslisten den vorherigen entsprechen.

Wenn Sie ein Projekt oder Netzwerk sowohl auf die Annahmeliste als auch auf die Ablehnungsliste setzen, werden Verbindungsanfragen von diesem Projekt oder Netzwerk abgelehnt.

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 Veröffentlichte Dienste.

  3. Klicken Sie auf Dienst veröffentlichen.

  4. Wählen Sie den Load-Balancer-Typ aus: Interner TCP/UDP-Load-Balancer oder Interner HTTP(S)-Load-Balancer.

  5. Wählen Sie den internen Load-Balancer aus, der den Dienst hostet, den Sie veröffentlichen möchten.

    Dienstprojektadministratoren können einen internen Load-Balancer auswählen, der eine IP-Adresse aus einem freigegebenen VPC-Netzwerk hat. Weitere Informationen finden Sie unter Freigegebene VPC.

    Die Felder für Netzwerk und Region werden mit den Details für den ausgewählten internen Load-Balancer ausgefüllt.

  6. Wenn Sie dazu aufgefordert werden, wählen Sie die Weiterleitungsregel des Dienstes aus, den Sie veröffentlichen möchten.

  7. Geben Sie unter Dienstname einen Namen für den Dienstanhang ein.

  8. Wählen Sie ein oder mehrere Private Service Connect-Subnetze für den Dienst aus. Die Liste wird mit Subnetzen aus dem VPC-Netzwerk des ausgewählten internen Load-Balancers gefüllt. Dazu gehören auch Subnetze, die über eine freigegebene VPC für ein Dienstprojekt freigegeben sind.

    Wenn Ihr Dienstanhang einen internen Load-Balancer mit einer IP-Adresse aus einem freigegebenen VPC-Netzwerk verwendet, müssen Sie ein freigegebenes Subnetz aus demselben freigegebenen VPC-Netzwerk auswählen.

  9. Wenn Sie Informationen zu Nutzerverbindungen aufrufen möchten, klicken Sie das Kästchen Protokolle an.

  10. Wenn Sie einen Domainnamen konfigurieren möchten, geben Sie einen Domainnamen mit einem nachgestellten Punkt ein.

    Das empfohlene Format für den Domainnamen ist REGION.p.DOMAIN..

    Sie müssen Inhaber des Domainnamens sein. Weitere Informationen finden Sie unter DNS-Konfiguration.

  11. Wenn Sie Verbindungen für ausgewählte Projekte akzeptieren möchten, wählen Sie Verbindungen für ausgewählte Projekte akzeptieren aus.

    1. Gehen Sie für jedes Projekt, von dem Sie Verbindungen akzeptieren möchten, so vor:
      1. Klicken Sie auf Angenommenes Projekt hinzufügen und geben Sie Folgendes ein:
        • Die Projekt-ID oder Projektnummer des Projekts, von dem Sie Verbindungen akzeptieren möchten.
        • Ein Verbindungslimit, um die maximale Anzahl von Endpunkten aus dem angegebenen Projekt anzugeben, die eine Verbindung herstellen können.
    2. Optional: Klicken Sie für jedes Projekt, von dem Sie Verbindungen explizit ablehnen möchten, auf Abgelehntes Projekt hinzufügen und geben Sie dann die Projekt-ID oder Projektnummer ein.
  12. Wenn Sie Verbindungen für ausgewählte Netzwerke akzeptieren möchten, wählen Sie Verbindungen für ausgewählte Netzwerke akzeptieren aus.

    1. Gehen Sie für jedes Netzwerk, von dem Sie Verbindungen akzeptieren möchten, so vor:
      1. Klicken Sie auf Akzeptiertes Netzwerk hinzufügen und geben Sie Folgendes ein:
        • Die Projekt-ID oder Projektnummer des übergeordneten Projekts des Netzwerks, von dem Sie Verbindungen akzeptieren möchten.
        • Der Name des Netzwerks, von dem Sie Verbindungen akzeptieren möchten.
        • Ein Verbindungslimit, um die maximale Anzahl von Endpunkten aus dem angegebenen Netzwerk anzugeben, die eine Verbindung herstellen können.
    2. Optional: Klicken Sie für jedes Netzwerk, von dem Sie Verbindungen explizit ablehnen möchten, auf Abgelehntes Netzwerk hinzufügen und geben Sie die ID oder die Projektnummer des übergeordneten Projekts des Netzwerks und den Namen des Netzwerks ein.
  13. Wenn Sie den Verbindungsabgleich deaktivieren möchten, entfernen Sie das Häkchen aus dem Kästchen Verbindungsabgleich aktivieren.

  14. Klicken Sie auf Dienst hinzufügen.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [--enable-proxy-protocol ] \
    [--domain-names=DOMAIN_NAME] \
    [--reconcile-connections]

Ersetzen Sie Folgendes:

  • ATTACHMENT_NAME: der Name, der dem Dienstanhang zugewiesen werden soll.

  • REGION: die Region für den neuen Dienstanhang. Es muss dieselbe Region sein wie der Dienst, den Sie veröffentlichen.

  • RULE_NAME: der Name der Weiterleitungsregel, die dem zu veröffentlichenden Dienst zugeordnet ist.

    Dienstprojektadministratoren können die Weiterleitungsregel eines internen Load-Balancers angeben, der eine IP-Adresse aus einem freigegebenen VPC-Netzwerk hat. Weitere Informationen finden Sie unter Freigegebene VPC.

  • ACCEPTED_PROJECT_OR_NETWORK_1 und ACCEPTED_PROJECT_OR_NETWORK_2: die zu akzeptierenden Projekt-IDs, Projektnamen oder Netzwerk-URIs. --consumer-accept-list ist optional und kann ein oder mehrere Projekte oder Netzwerke enthalten, jedoch nicht eine Kombination aus beiden.

  • LIMIT_1 und LIMIT_2: die Verbindungslimits für die Projekte oder Netzwerke. Das Verbindungslimit gibt die Anzahl der Nutzerendpunkte oder -Back-Ends an, die eine Verbindung zu diesem Dienst herstellen können. Für jedes akzeptierte Projekt oder Netzwerk muss ein Verbindungslimit konfiguriert sein.

  • REJECTED_PROJECT_OR_NETWORK_1 und REJECTED_PROJECT_OR_NETWORK_2: die Projekt-IDs, Projektnamen oder Netzwerk-URIs, die abgelehnt werden sollen. --consumer-reject-list ist optional und kann ein oder mehrere Projekte oder Netzwerke enthalten, jedoch nicht eine Kombination aus beiden.

  • PSC_SUBNET_LIST: eine durch Kommas getrennte Liste mit einem oder mehreren Subnetznamen, die mit diesem Dienstanhang verwendet werden sollen.

    Wenn Sie einen Dienstanhang mit einer Weiterleitungsregel erstellen, die eine IP-Adresse aus einem freigegebenen VPC-Netzwerk enthält, verwenden Sie freigegebene Subnetze aus demselben freigegebenen VPC-Netzwerk. Geben Sie für jedes freigegebene Subnetz den vollständigen Ressourcen-URI an, z. B. --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • DOMAIN_NAME: ein DNS-Domainname für den Dienst, einschließlich eines abschließenden Punkts. Empfohlenes Format:REGION.p.DOMAIN.

    Weitere Informationen finden Sie unter DNS-Konfiguration.

API

  • Senden Sie die folgende Anfrage, um einen Dienst zu veröffentlichen und Nutzer basierend auf dem Projekt explizit zu genehmigen:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2"
      ],
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: das Projekt für den Dienstanhang.

    • REGION: die Region für den Dienstanhang.

    • ATTACHMENT_NAME: der Name, der dem Dienstanhang zugewiesen werden soll.

    • RULE_URI: der URI der Weiterleitungsregel, die dem Dienst zugeordnet ist, den Sie veröffentlichen.

      Dienstprojektadministratoren können die Weiterleitungsregel eines internen Load-Balancers angeben, der eine IP-Adresse aus einem freigegebenen VPC-Netzwerk hat. Weitere Informationen finden Sie unter Freigegebene VPC.

    • PSC_SUBNET_1_URI und PSC_SUBNET_2_URI: die für diesen Dienstanhang zu verwendenden Subnetz-URIs. Sie können ein oder mehrere Subnetze anhand des URI angeben.

      Wenn Sie einen Dienstanhang mit einer Weiterleitungsregel erstellen, die eine IP-Adresse aus einem freigegebenen VPC-Netzwerk enthält, verwenden Sie freigegebene Subnetze aus demselben freigegebenen VPC-Netzwerk.

    • REJECTED_PROJECT_1 und REJECTED_PROJECT_2: die Projekt-IDs oder Anzahl der Projekte, die abgelehnt werden sollen. consumerRejectLists ist optional und kann ein oder mehrere Projekte enthalten.

    • ACCEPTED_PROJECT_1 und ACCEPTED_PROJECT_2: die Projekt-IDs oder Nummern der zu akzeptierenden Projekte. consumerAcceptLists ist optional und kann ein oder mehrere Projekte enthalten.

    • LIMIT_1 und LIMIT_2: die Verbindungslimits für die Projekte. Das Verbindungslimit gibt die Anzahl der Nutzerendpunkte oder -Back-Ends an, die eine Verbindung zu diesem Dienst herstellen können. Für jedes akzeptierte Projekt muss ein Verbindungslimit konfiguriert sein.

    • DOMAIN_NAME: ein DNS-Domainname für den Dienst, einschließlich eines abschließenden Punkts. Empfohlenes Format: REGION.p.DOMAIN. Weitere Informationen finden Sie unter DNS-Konfiguration.

  • Senden Sie die folgende Anfrage, um einen Dienst zu veröffentlichen und Nutzer basierend auf dem VPC-Netzwerk explizit zu genehmigen:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
        "projects/REJECTED_PROJECT_ID_2/global/networks/REJECTED_NETWORK_2"
      ],
      "consumerAcceptLists": [
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Ersetzen Sie Folgendes:

    • REJECTED_PROJECT_ID_1 und REJECTED_PROJECT_ID_2: die IDs der übergeordneten Projekte der Netzwerke, die Sie ablehnen möchten. consumerRejectLists ist optional und kann ein oder mehrere Projekte enthalten.
    • REJECTED_NETWORK_1 und REJECTED_NETWORK_2: die Namen der Netzwerke, die Sie ablehnen möchten.
    • ACCEPTED_PROJECT_ID_1 und ACCEPTED_PROJECT_ID_2: die IDs der übergeordneten Projekte der Netzwerke, die Sie akzeptieren möchten. consumerAcceptLists ist optional und kann ein oder mehrere Projekte enthalten.
    • ACCEPTED_NETWORK_1 und ACCEPTED_NETWORK_2: die Namen der Netzwerke, die Sie akzeptieren möchten.
    • LIMIT_1 und LIMIT_2: die Verbindungslimits für die Netzwerke. Das Verbindungslimit gibt die Anzahl der Nutzerendpunkte oder -Back-Ends an, die eine Verbindung zu diesem Dienst herstellen können. Für jedes akzeptierte Projekt muss ein Verbindungslimit konfiguriert sein.
  • Damit Sie einen Dienst mit aktiviertem Verbindungsabgleich veröffentlichen können, senden Sie eine Anfrage, die den vorherigen Anfragen ähnelt, aber fügen Sie das folgende Feld hinzu:

    {
      ...
      "reconcileConnections": true
      ...
    }
    

Informationen zur Nutzerverbindung ansehen

Standardmäßig übersetzt Private Service Connect die Quell-IP-Adresse des Nutzers in eine Adresse in einem der Private Service Connect-Subnetze im VPC-Netzwerk des Diensterstellers. Wenn Sie stattdessen die ursprüngliche Quell-IP-Adresse des Nutzers sehen möchten, können Sie das PROXY-Protokoll aktivieren.

Das PROXY-Protokoll wird nicht von allen Diensten unterstützt. Weitere Informationen finden Sie unter Features und Kompatibilität.

Wenn das PROXY-Protokoll aktiviert ist, können Sie die Quell-IP-Adresse und die PSC-Verbindungs-ID (pscConnectionId)des Nutzers aus dem PROXY-Protokoll-Header abrufen.

Wenn Sie das PROXY-Protokoll für einen Dienstanhang aktivieren, gilt die Änderung nur für neue Verbindungen. Vorhandene Verbindungen enthalten nicht den PROXY-Protokoll-Header.

Wenn Sie das PROXY-Protokoll aktivieren, finden Sie in der Dokumentation zur Backend-Webserver-Software Informationen zum Parsen und Verarbeiten eingehender PROXY-Protokoll-Header in der TCP-Nutzlast der Clientverbindung. Wenn das PROXY-Protokoll auf dem Dienstanhang aktiviert ist, der Backend-Webserver aber nicht für die Verarbeitung von PROXY-Protokoll-Headern konfiguriert ist, können Webanfragen fehlerhaft sein. Wenn die Anfragen fehlerhaft sind, kann der Server die Anfrage nicht interpretieren.

pscConnectionId wird im PROXY-Protokoll-Header im TLV-Format Type-Length-Value codiert.

Feld Feldlänge Feldwert
Typ 1 Byte 0xE0 (PP2_TYPE_GCP)
Zeitfenster 2 Byte 0x8 (8 Byte)
Wert 8 Byte Die 8-Byte-pscConnectionId in Netzwerkreihenfolge

Sie können die 8-Byte-pscConnectionId in der Nutzer-Weiterleitungsregel oder im Anhang für den Dienstanbieter einsehen.

Die pscConnectionId ist global für alle aktiven Verbindungen zu einem bestimmten Zeitpunkt eindeutig. Im Laufe der Zeit kann jedoch eine pscConnectionId in folgenden Szenarien wiederverwendet werden:

  • Wenn Sie in einem bestimmten VPC-Netzwerk einen Endpunkt (Weiterleitungsregel) löschen und einen neuen Endpunkt mit derselben IP-Adresse erstellen, wird möglicherweise dieselbe pscConnectionId verwendet.

  • Wenn Sie ein VPC-Netzwerk löschen, das Endpunkte (Weiterleitungsregeln) enthielt, kann nach einer siebentägigen Wartezeit die pscConnectionId für diese Endpunkte für einen anderen Endpunkt in einem anderen Netzwerk verwendet werden.

Sie können pscConnectionId für das Debugging und zum Verfolgen der Quelle der Pakete verwenden.

Außerdem ist eine 16-Byte-PSC-Anhangs-ID vom Dienstanhang des Erstellers verfügbar. Die PSC-Anhangs-ID ist eine global eindeutige ID, mit der ein Private Service Connect-Dienstanhang identifiziert wird. Sie können die PSC-Anhangs-ID für Sichtbarkeit und Debugging verwenden. Die PSC-Anhangs-ID ist nicht im PROXY-Protokoll-Header enthalten.

Anfragen für den Zugriff auf einen veröffentlichten Dienst verwalten

Wenn Sie einen veröffentlichten Dienst mit expliziter Genehmigung haben, können Sie Verbindungsanfragen von Nutzerprojekten oder Netzwerken akzeptieren oder ablehnen. Weitere Informationen finden Sie unter Anfragen für den Zugriff auf einen veröffentlichten Dienst verwalten.

Sie können auch zwischen der automatischen und der expliziten Projektzulassung für einen veröffentlichten Dienst wechseln. Weitere Informationen finden Sie unter Verbindungseinstellung für einen veröffentlichten Dienst ändern.

Subnetze zu einem veröffentlichten Dienst hinzufügen oder daraus entfernen

Sie können Subnetze zu einem veröffentlichten Dienst hinzufügen oder daraus entfernen. Weitere Informationen finden Sie unter Subnetze zu einem veröffentlichten Dienst hinzufügen oder daraus entfernen.

Veröffentlichte Dienste auflisten

Sie können alle Dienste 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 Veröffentlichte Dienste.

    Die Anhänge für Private Service Connect-Dienste werden angezeigt.

gcloud

  1. Listen Sie Dienstanhänge auf.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    Ersetzen Sie Folgendes:

    • REGION_LIST: eine durch Kommas getrennte Liste mit einer oder mehreren Regionen, für die Sie Dienstanhänge aufrufen möchten. Beispiel: us-central1oder us-west1,us-central1.

API

Sie können alle Dienstanhänge in einer bestimmten Region oder in allen Regionen anzeigen.

  • So rufen Sie alle Dienstanhänge in einer Region auf:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Alle Dienstanhänge in allen Regionen anzeigen:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: das Projekt für den Dienstanhang.

    • REGION: die Region für den Dienstanhang.

    • ATTACHMENT_NAME: der Name des Dienstanhangs.

Details für einen veröffentlichten Dienst ansehen

Sie können die Konfigurationsdetails eines veröffentlichten Dienstes aufrufen. Sie können sich einige Konfigurationsdetails in der Google Cloud Console anzeigen lassen, z. B. den URI des Dienstanhangs, den Dienstnutzer mit Ihrem Dienst verbinden müssen. Verwenden Sie die Google Cloud CLI oder die API, um alle Details anzuzeigen, einschließlich der pscConnectionId-Werte für die Nutzer des Dienstanhangs.

Console

Sie können Details zu einem veröffentlichten Dienst aufrufen. Das Feld Dienstanhang enthält den URI des Dienstanhangs.

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

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Veröffentlichte Dienste.

  3. Klicken Sie auf den Dienst, den Sie aufrufen möchten.

gcloud

Sie können Details zu einem veröffentlichten Dienst aufrufen. Das Feld selfLink enthält den URI des Dienstanhangs.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

Sie können Details zu einem veröffentlichten Dienst aufrufen. Das Feld selfLink enthält den URI des Dienstanhangs.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für den Dienstanhang.

  • REGION: die Region für den Dienstanhang.

  • ATTACHMENT_NAME: der Name des Dienstanhangs.

Veröffentlichten Dienst löschen

Sie können einen veröffentlichten Dienst löschen, auch wenn Nutzerverbindungen mit dem Dienstanhang bestehen. Wenn Sie den veröffentlichten Dienst löschen, wird nur der Dienstanhang entfernt. Der zugehörige Load-Balancer wird nicht gelöscht. Wenn Sie einen veröffentlichten Dienst löschen, gilt Folgendes:

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 Veröffentlichte Dienste.

  3. Klicken Sie auf den Dienst, den Sie löschen möchten.

  4. Klicken Sie auf Löschen.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt für den Dienstanhang.

  • REGION: die Region für den Dienstanhang.

  • ATTACHMENT_NAME: der Name des Dienstanhangs.

Bekannte Probleme

Verbindungstrennungen nach dem Upgrade des Google-Anbieters für Terraform

Wenn Sie den Google-Anbieter für Terraform mit Versionen vor 4.76.0 verwendet haben, um Dienstanhänge zu erstellen, führen Sie kein Upgrade auf Version 4.76.0 bis 4.81.x durch. Wenn Sie terraform apply nach einem Upgrade auf die Versionen 4.76.0 bis 4.81.x ausführen, kann es sein, dass Terraform unbeabsichtigt die Dienstanhänge löscht und neu erstellt und bestehende Private Service Connect-Verbindungen schließt. Durch neu erstellte Dienstanhänge werden Private Service Connect-Verbindungen nicht automatisch wiederhergestellt.

Wenn Sie ein Upgrade auf Version 4.82.0 durchführen und dann terraform apply ausführen, werden Ihre Dienstanhänge nicht gelöscht, aber die Einstellung Verbindungen abgleichen wird auf „true“ gesetzt. Wenn die Einstellung zuvor auf „false“ gesetzt war, werden einige Private Service Connect-Verbindungen möglicherweise geschlossen.

  • Upgrade auf Google-Anbieterversionen 4.76.0 bis 4.81.x In diesem Szenario enthält die Ausgabe von terraform plan Folgendes:

    -/+ resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
            ~ reconcile_connections = false -> true # forces replacement
      ...
    

    Verwenden Sie die Problemumgehung, um dieses Problem zu vermeiden.

  • Upgrade auf Google-Anbieterversionen 4.82.0. In diesem Szenario enthält die Ausgabe von terraform plan Folgendes:

    ~ reconcile_connections = false -> true
    

    Wenn Sie diese Warnung ignorieren und die Änderungen anwenden, aktualisiert Terraform den Dienstanhang, um den Verbindungsabgleich zu aktivieren. Je nach Verbindungsstatus werden durch das Ändern von false in true möglicherweise einige vorhandene Verbindungen geschlossen. Weitere Informationen finden Sie unter Verbindungsabgleich.

    Verwenden Sie die Problemumgehung, um dieses Problem zu vermeiden.

Problemumgehung

Wir empfehlen ein Upgrade des Google-Anbieters für Terraform auf Version 4.82.0 oder höher. Diese Version verhindert das versehentliche Löschen und Neuerstellen von Dienstanhängen.

Wenn Sie nicht sofort ein Upgrade durchführen können oder ein Upgrade durchführen können, aber auch verhindern möchten, dass Terraform die Verbindungsabgleichseinstellung ändert, aktualisieren Sie Ihre Terraform-Konfiguration so, dass die Einstellung für den Verbindungsabgleich explizit festgelegt wird.

  1. Sehen Sie sich die detaillierte Konfiguration für den Dienstanhang an und notieren Sie sich die Einstellung reconcileConnections.

    $ gcloud compute service-attachments describe SERVICE_NAME --region=REGION
    

    Die Ausgabe enthält das Feld reconcileConnections, das „true“ oder „false“ sein kann.

    reconcileConnections: false
    
  2. Aktualisieren Sie Ihre Terraform-Konfigurationsdatei explizit, um dieselbe Einstellung zu verwenden, die für den Dienstanhang verwendet wird.

    resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
      reconcile_connections    = false
    }
    

    Eine Beispielkonfiguration finden Sie unter Abgleich von Verbindungen eines Dienstanhangs auf GitHub.

Patchupdates für Dienstanhänge

Wenn Sie einen Dienstanhang mit der PATCH API aktualisieren, müssen Sie alle Felder für den Dienstanhang im Anfragetext angeben, nicht nur die Felder, die Sie aktualisieren. Verwenden Sie serviceAttachments.get, um alle Felder abzurufen.

Fehlerbehebung

Fehler beim Aktualisieren eines Dienstanhangs

Wenn beim Aktualisieren eines Dienstanhangs die folgende Fehlermeldung angezeigt wird, enthält die Annahmeliste oder die Ablehnungsliste möglicherweise gelöschte Projekte: The resource PROJECT was not found.

Entfernen Sie die gelöschten Projekte aus der Konfiguration des Dienstanhangs, um das Problem zu beheben.

  1. Verwenden Sie den Befehl gcloud compute service-attachments describe, um die Konfiguration des Dienstanhangs aufzurufen, den Sie ändern möchten.

    • So geben Sie die Annahmeliste in einem Format aus, das Sie später zum Aktualisieren des Dienstanhangs verwenden können:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION --flatten="consumerAcceptLists[]" \
        --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \
        | xargs | sed -e 's/ /,/g'
      

      Die Ausgabe der Annahmeliste sieht in etwa so aus:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • So geben Sie die Ablehnungsliste in einem Format aus, das Sie später zum Aktualisieren des Dienstanhangs verwenden können:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION \
        --format="value[delimiter=','](consumerRejectLists[])"
      

      Die Ausgabe der Ablehnungsliste sieht in etwa so aus:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Bearbeiten Sie die Befehlsausgabe, um alle gelöschten Projekte aus der Annahmeliste und aus der Ablehnungsliste zu entfernen.

  3. Aktualisieren Sie den Dienstanhang, um die gelöschten Projekte zu entfernen.

    • So aktualisieren Sie die Annahmeliste:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • So aktualisieren Sie die Ablehnungsliste:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-reject-list=UPDATED_REJECT_LIST
      

Verbindung wird nicht hergestellt

Wenn ein Nutzer einen Endpunkt oder ein Backend erstellt hat, der auf Ihren Dienstanhang verweist, aber keine Verbindung hergestellt wird, prüfen Sie den Verbindungsstatus des Dienstanhangs. Der Verbindungsstatus kann möglicherweise auf Schritte hinweisen, mit denen Sie das Problem beheben können.

Zeitüberschreitung bei Nutzerverbindungen

Wenn Nutzerverbindungen das Zeitlimit überschreiten, prüfen Sie, ob Ihr Dienst lang andauernde Verbindungen benötigt. Das Zeitlimit für Inaktivität hergestellter TCP-Verbindungen für Private Service Connect NAT beträgt 20 Minuten. Wenn Ihr Dienst ein längeres Zeitlimit benötigt, müssen Sie möglicherweise einige Konfigurationsänderungen vornehmen, um sicherzustellen, dass die Verbindungen nicht unterbrochen werden. Weitere Informationen finden Sie unter NAT-Spezifikationen.