Connectors in freigegebenen VPC-Dienstprojekten konfigurieren

Wenn Ihre Organisation eine freigegebene VPC verwendet, können Sie einen Connector für den serverlosen VPC-Zugriff entweder im Dienstprojekt oder im Hostprojekt einrichten. In dieser Anleitung wird gezeigt, wie Sie einen Connector im Dienstprojekt einrichten.

Informationen zum Einrichten eines Connectors im Hostprojekt finden Sie unter Connectors im Hostprojekt konfigurieren. Weitere Informationen zu den Vorteilen der einzelnen Methoden finden Sie unter Verbindung zu einem freigegebenen VPC-Netzwerk herstellen.

Auf übergeordneter Ebene müssen Sie folgende Schritte ausführen:

  1. Firewallregeln zum Zulassen der erforderlichen IP-Bereiche hinzufügen
  2. Berechtigungen erteilen
  3. Subnetz erstellen
  4. Führen Sie auf der Seite Serverlosen VPC-Zugriff konfigurieren die Schritte in den folgenden Abschnitten aus:

Firewallregeln zum Zulassen von IP-Bereichen hinzufügen

Zum Ausführen dieser Schritte benötigen Sie eine der folgenden Rollen im Hostprojekt:

Sie müssen Firewallregeln erstellen, damit Anfragen aus den folgenden IP-Bereichen den Connector erreichen und vom Connector erreicht werden können:

  • NAT-Bereich
    • 35.199.224.0/19
  • Bereiche der Systemdiagnose
    • 35.191.0.0/16
    • 130.211.0.0/22

Diese Bereiche werden von der Google-Infrastruktur verwendet, die Cloud Run, Cloud Functions und App Engine Standard zugrunde liegt. Alle Anfragen von diesen IP-Adressen werden garantiert von der Google-Infrastruktur stammen. Dadurch wird sichergestellt, dass alle Cloud Run-, Cloud Functions- und App Engine-Dienste/Funktionen/Anwendungen nur mit dem VPC-Connector kommunizieren, mit dem sie verbunden sind.

Wenden Sie bei einer einfachen Konfiguration die Regeln an, damit serverlose Dienste in jedem Dienstprojekt, das mit dem freigegebenen VPC-Netzwerk verbunden ist, Anfragen an jede Ressource im Netzwerk senden können.

So wenden Sie diese Regeln an:

  1. Führen Sie die folgenden drei Befehle aus, um die Regeln so festzulegen, dass Anfragen von der serverlosen Umgebung alle VPC-Connectors im Netzwerk erreichen:

    gcloud compute firewall-rules create serverless-to-vpc-connector \
    --allow tcp:667,udp:665-666,icmp \
    --source-ranges=35.199.224.0/19 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
    --allow tcp:667,udp:665-666,icmp \
    --destination-ranges=35.199.224.0/19 \
    --direction=EGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
    --allow tcp:667 \
    --source-ranges=35.191.0.0/16,130.211.0.0/22 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK

    VPC_NETWORK ist das VPC-Netzwerk, an das der Connector angehängt wird.

  2. Erstellen Sie eine Regel für eingehenden Traffic in Ihrem VPC-Netzwerk, um Anfragen von Connectors zuzulassen:

    gcloud compute firewall-rules create vpc-connector-requests \
    --allow tcp,udp,icmp \
    --direction=INGRESS \
    --source-tags vpc-connector \
    --network=VPC_NETWORK

    Mit dieser Regel erhält der Connector Zugriff auf alle Ressourcen im Netzwerk. Wenn Sie die Ressourcen begrenzen möchten, die Ihre serverlose Umgebung über den serverlosen VPC-Zugriff erreichen kann, geben Sie ein Ziel für diese Firewallregeln an.

Firewallregeln für bestimmte Connectors erstellen

Die Vorgehensweise unter Firewallregeln zum Zulassen von IP-Bereichen hinzufügen führt zu Firewallregeln, die für alle Connectors gelten – sowohl für aktuelle als auch für zukünftig erstellte Connectors. Wenn Sie dies nicht möchten, sondern Regeln erstellen möchten, die nur für bestimmte Connectors gelten, können Sie die Regeln so ausrichten, dass sie nur für diese Connectors gelten.

Sie können einen der folgenden Mechanismen verwenden, um den Umfang der Regeln auf bestimmte Connectors zu beschränken.

  • Netzwerk-Tags. Jeder Connector hat zwei Netzwerk-Tags: vpc-connector und vpc-connector-REGION-CONNECTOR_NAME. Verwenden Sie das letztere Tag, um den Umfang der Firewallregeln auf einen bestimmten Connector zu beschränken.
  • IP-Bereiche. Verwenden Sie diesen Typ nur für Ausgangsregeln, da er nicht für eingehenden Traffic funktioniert. Sie können den IP-Bereich des Connector-Subnetzes verwenden, um den Umfang Ihrer Firewallregeln auf einen einzelnen VPC-Connector zu beschränken.

Berechtigungen für Dienstkonten in Dienstprojekten gewähren

Für jedes Dienstprojekt, das VPC-Connectors verwendet, muss ein Administrator für freigegebene VPCs dem Dienstprojekt die Rolle "Compute-Netzwerknutzer" (compute.networkUser) zuweisen. Die Zuweisung erfolgt im Hostprojekt an das Dienstprojekt cloudservices und an das Dienstkonto vpcaccess.

So weisen Sie die Rolle zu:

  1. Verwenden Sie diese Befehle:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com"
  2. Wenn das Dienstkonto @gcp-sa-vpcaccess nicht existiert, aktivieren Sie die serverlose VPC-Zugriffs-API im Dienstprojekt und versuchen Sie es noch einmal:

    gcloud services enable vpcaccess.googleapis.com

Wenn Sie diesen Dienstkonten keinen Zugriff auf das gesamte freigegebene VPC-Netzwerk gewähren und nur Zugriff auf bestimmte Subnetze gewähren möchten, können Sie stattdessen diese Rollen nur bestimmten Subnetzen zuweisen.

Subnetz erstellen

Wenn Sie eine freigegebene VPC verwenden, muss der Administrator für freigegebene VPC ein Subnetz für jeden Connector erstellen. Folgen Sie der Dokumentation zum Hinzufügen eines Subnetzes, um dem freigegebenen VPC-Netzwerk ein Subnetz /28 hinzuzufügen. Dieses Subnetz muss sich in derselben Region befinden wie die serverlosen Dienste, die den Connector verwenden.

Nächste Schritte