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:
- Firewallregeln zum Zulassen der erforderlichen IP-Bereiche hinzufügen
- Berechtigungen erteilen
- Subnetz erstellen
- 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:
- Rolle Compute Engine-Sicherheitsadministrator
- Benutzerdefinierte IAM-Rolle (Identity and Access Management) mit aktivierter Berechtigung
compute.firewalls.create
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:
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.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
undvpc-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:
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"
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
- Führen Sie auf der Seite Serverlosen VPC-Zugriff konfigurieren die Schritte in den folgenden Abschnitten aus: