Verbindung zu einem freigegebenen VPC-Netzwerk herstellen

Wenn Ihre Organisation eine freigegebene VPC verwendet, können Sie den serverlosen VPC-Zugriff für die Verbindung mit dem freigegebenen VPC-Netzwerk verwenden. In dieser Anleitung erfahren Sie, wie Sie die Host- und Dienstprojekte der freigegebenen VPC konfigurieren, um den serverlosen VPC-Zugriff zuzulassen.

Wenn Sie einen Connector für eine freigegebene VPC erstellen, müssen Sie das Hostprojekt und die serverlose Umgebung so konfigurieren:

  1. Firewallregeln zum Zulassen der erforderlichen IP-Bereiche hinzufügen
  2. Berechtigungen für Dienstkonten in Ihrem Dienstprojekt gewähren
  3. Subnetz erstellen
  4. Erstellen eines Connectors für serverlosen VPC-Zugriff.
  5. Dienst für die Verwendung eines Connectors für serverlosen VPC-Zugriff konfigurieren

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-Bereiche
    • 107.178.230.64/26
    • 35.199.224.0/19
  • Bereiche der Systemdiagnose
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 108.170.220.0/23

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 107.178.230.64/26,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 107.178.230.64/26,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 130.211.0.0/22,35.191.0.0/16,108.170.220.0/23 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK

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

  2. Führen Sie den folgenden Befehl aus, um Anfragen von allen VPC-Connectors an alle Ressourcen im Netzwerk zuzulassen:

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

    Mit dieser Regel erhält der VPC-Connector Zugriff auf alle Ressourcen im Netzwerk. Wenn Sie die Ressourcen einschränken möchten, die Ihre serverlose Umgebung über den serverlosen VPC-Zugriff erreichen kann, geben Sie ein Ziel für diese Firewallregeln an oder lesen Sie den Abschnitt Firewallregeln erstellen mit enger gefassten Bereich. Wenn Sie ein Ziel angeben, müssen Sie jedes Mal einen neuen Satz von Firewallregeln erstellen, wenn Sie einen neuen VPC-Connector erstellen.

Firewallregeln mit eingeschränktem Umfang 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.

Mehr zur Verwendung der Play Console erfahren