Connectors im freigegebenen VPC-Hostprojekt konfigurieren
Wenn Ihre Organisation eine freigegebene VPC verwendet, können Sie Connectors für den serverlosen VPC-Zugriff entweder im Dienstprojekt oder im Hostprojekt einrichten. In dieser Anleitung wird beschrieben, wie ein Connector im Hostprojekt eingerichtet wird.
Informationen zum Einrichten eines Connectors in einem Dienstprojekt finden Sie unter Connectors in Dienstprojekten konfigurieren. Weitere Informationen zu den Vorteilen der einzelnen Methoden finden Sie unter Verbindung zu einem freigegebenen VPC-Netzwerk herstellen.
Hinweis
Prüfen Sie die IAM-Rollen (Identity and Access Management) für das Konto, das Sie derzeit verwenden. Das aktive Konto muss die folgenden Rollen für das Hostprojekt haben:
Wählen Sie das Hostprojekt in Ihrer bevorzugten Umgebung aus.
Console
Öffnen Sie das Dashboard der Google Cloud Console.
Klicken Sie in der Menüleiste oben im Dashboard auf das Projekt-Drop-down-Menü und wählen Sie das Hostprojekt aus.
gcloud
Legen Sie das Standardprojekt in der gcloud CLI auf das Hostprojekt fest. Führen Sie dazu im Terminal Folgendes aus:
gcloud config set project HOST_PROJECT_ID
Dabei gilt:
HOST_PROJECT_ID
: die ID des freigegebenen VPC-Hostprojekts
Erstellen eines Connectors für Serverless VPC Access
Damit Sie Anfragen an Ihr VPC-Netzwerk senden und die entsprechenden Antworten empfangen können, müssen Sie einen Connector für serverlosen VPC-Zugriff erstellen. Sie können einen Connector mit der Google Cloud Console, der Google Cloud CLI oder Terraform erstellen:
Console
Aktivieren Sie die Serverless VPC Access API für Ihr Projekt.
Rufen Sie die Übersichtsseite für serverlosen VPC-Zugriff auf:
Klicken Sie auf Connector erstellen.
Geben Sie im Feld Name einen Namen für den Connector ein. Der Name muss der Compute Engine-Namenskonvention entsprechen und weniger als 21 Zeichen umfassen. Bindestriche (
-
) zählen als zwei Zeichen.Wählen Sie im Feld Region eine Region für den Connector aus. Sie muss mit der Region des serverlosen Dienstes übereinstimmen.
Wenn sich Ihr Dienst in der Region
us-central
odereurope-west
befindet, verwenden Sieus-central1
odereurope-west1
.Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus, an das der Connector angehängt werden soll.
Klicken Sie auf das Drop-down-Menü Subnetzwerk:
Wählen Sie ein nicht verwendetes
/28
-Subnetz aus.- Subnetze müssen ausschließlich vom Connector verwendet werden. Sie können nicht von anderen Ressourcen wie VMs, Private Service Connect oder Load-Balancern verwendet werden.
- Wenn Ihr Subnetz nicht für Private Service Connect oder internes Cloud-Load-Balancing verwendet wird, prüfen Sie, ob das
purpose
-SubnetzPRIVATE
ist. Führen Sie dazu den folgenden Befehl in der gcloud CLI aus:gcloud compute networks subnets describe SUBNET_NAME
Ersetzen SieSUBNET_NAME
durch den Namen Ihres Subnetzes.
(Optional) Wenn Sie Skalierungsoptionen für zusätzliche Kontrolle über den Connector festlegen möchten, klicken Sie auf Skalierungseinstellungen anzeigen, um das Skalierungsformular anzuzeigen:
- Legen Sie die minimale und maximale Anzahl von Instanzen für den Connector fest oder verwenden Sie die Standardwerte von 2 (Min.) und 10 (Max.). Der Connector wird bei steigendem Traffic horizontal auf das angegebene Maximum hochskaliert, bei sinkendem Traffic wird der Connector jedoch nicht zurückskaliert. Sie müssen Werte zwischen
2
und10
verwenden und derMIN
-Wert muss kleiner als derMAX
-Wert sein. - Wählen Sie im Drop-down-Menü Instanztyp den Maschinentyp aus, der für den Connector verwendet werden soll, oder verwenden Sie den Standardwert
e2-micro
. Beachten Sie die Seitenleiste zu den Kosten auf der linken Seite, wenn Sie den Instanztyp auswählen, der die Bandbreiten- und Kostenschätzungen anzeigt:
- Legen Sie die minimale und maximale Anzahl von Instanzen für den Connector fest oder verwenden Sie die Standardwerte von 2 (Min.) und 10 (Max.). Der Connector wird bei steigendem Traffic horizontal auf das angegebene Maximum hochskaliert, bei sinkendem Traffic wird der Connector jedoch nicht zurückskaliert. Sie müssen Werte zwischen
Klicken Sie auf Erstellen.
Neben dem Namen des Connectors wird ein grünes Häkchen angezeigt, sobald er verwendet werden kann.
gcloud
Aktualisieren Sie die Komponenten von
gcloud
auf die neueste Version:gcloud components update
Aktivieren Sie die Serverless VPC Access API für Ihr Projekt:
gcloud services enable vpcaccess.googleapis.com
Erstellen Sie einen Connector für serverlosen VPC-Zugriff:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
Dabei gilt:
CONNECTOR_NAME
: Name des Connectors. Der Name muss der Compute Engine-Namenskonvention entsprechen und weniger als 21 Zeichen umfassen. Bindestriche (-
) zählen als zwei Zeichen.REGION
: Region für den Connector. Dies muss der Region Ihres serverlosen Dienstes entsprechen. Wenn sich Ihr Dienst in der Regionus-central
odereurope-west
befindet, verwenden Sieus-central1
odereurope-west1
.SUBNET
: der Name eines nicht verwendeten/28
-Subnetzes.- Subnetze müssen ausschließlich vom Connector verwendet werden. Sie können nicht von anderen Ressourcen wie VMs, Private Service Connect oder Load-Balancern verwendet werden.
- Wenn Ihr Subnetz nicht für Private Service Connect oder Cloud-Load-Balancing verwendet wird, prüfen Sie, ob das
purpose
-SubnetzPRIVATE
ist. Führen Sie dazu den folgenden Befehl in der gcloud CLI aus:gcloud compute networks subnets describe SUBNET_NAME
Dabei gilt:SUBNET_NAME
: der Name Ihres Subnetzes
HOST_PROJECT_ID
: die ID des HostprojektsMIN
: Die Mindestanzahl der Instanzen, die für den Connector verwendet werden sollen. Verwenden Sie eine Ganzzahl zwischen2
und9
. Der Standardwert ist2
. Weitere Informationen zur Skalierung von Connectors finden Sie unter Durchsatz und Skalierung.MAX
: Die maximale Anzahl von Instanzen, die für den Connector verwendet werden sollen. Verwenden Sie eine Ganzzahl zwischen3
und10
. Der Standardwert ist10
. Wenn es der Traffic erfordert, wird der Connector auf[MAX]
Instanzen skaliert, nicht jedoch wieder herunterskaliert. Weitere Informationen zur Skalierung von Connectors finden Sie unter Durchsatz und Skalierung.MACHINE_TYPE
:f1-micro
,e2-micro
odere2-standard-4
. Weitere Informationen zum Connector-Durchsatz, einschließlich Maschinentyp und Skalierung, finden Sie unter Durchsatz und Skalierung.
Weitere Informationen und optionale Argumente finden Sie in der
gcloud
-Referenz.Prüfen Sie vor der Verwendung des Connectors, ob sein Status
READY
lautet:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
Dabei gilt:
CONNECTOR_NAME
: Der Name Ihres Connectors; dies ist der Name, den Sie im vorherigen Schritt angegeben habenREGION
: Region Ihres Connectors; dies ist die Region, die Sie im vorherigen Schritt angegeben haben
Die Ausgabe sollte die Zeile
state: READY
enthalten.
Terraform
Sie können eine Terraform-Ressource verwenden, um die vpcaccess.googleapis.com
API zu aktivieren.
Sie können Terraform-Module verwenden, um ein VPC-Netzwerk und ein Subnetz zu erstellen. Danach können Sie den Connector erstellen.
Cloud Functions für das Dienstprojekt aktivieren
Aktivieren Sie die Cloud Functions API für das Dienstprojekt. Dies ist erforderlich, um in nachfolgenden Schritten IAM-Rollen hinzuzufügen und damit das Dienstprojekt Cloud Functions verwenden kann.
Console
Öffnen Sie die Seite für die Cloud Functions API.
Klicken Sie in der Menüleiste oben im Dashboard auf das Drop-down-Menü des Projekts und wählen Sie das Dienstprojekt aus.
Klicken Sie auf Aktivieren.
gcloud
Führen Sie im Terminal folgenden Befehl aus:
gcloud services enable cloudfunctions.googleapis.com --project=SERVICE_PROJECT_ID
Dabei gilt:
SERVICE_PROJECT_ID
: die ID des Dienstprojekts
Zugriff auf den Connector gewähren
Ermöglichen Sie den Zugriff auf den Connector. Weisen Sie dazu dem Dienstprojekt im Hostprojekt die IAM-Rolle Serverless VPC Access User des Cloud Functions-Dienst-Agents zu. Für Cloud Functions (2nd gen) müssen Sie dem Cloud Run-Dienst-Agent dieselbe Rolle zuweisen.
Console
Öffnen Sie die IAM-Seite.
Klicken Sie auf das Projekt-Drop-down-Menü und wählen Sie das Hostprojekt aus.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Cloud Functions-Dienst-Agents für das Dienstprojekt ein:
service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
Dabei gilt:
SERVICE_PROJECT_NUMBER
: die Projektnummer, die dem Dienstprojekt zugeordnet ist. Diese unterscheidet sich von der Projekt-ID. Sie finden die Projektnummer in der Google Cloud Console auf der Seite Projekteinstellungen des Dienstprojekts.
Nur Cloud Functions (2nd gen): Geben Sie im Feld Neue Hauptkonten auch die E-Mail-Adresse des Cloud Run-Dienst-Agents für das Dienstprojekt ein:
service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com
Wählen Sie im Feld Rolle die Option Nutzer von serverlosem VPC-Zugriff aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie in Ihrem Terminal den folgenden Befehl aus:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com \ --role=roles/vpcaccess.user
Dabei gilt:
HOST_PROJECT_ID
: die ID des freigegebenen VPC-HostprojektsSERVICE_PROJECT_NUMBER
: die Projektnummer, die dem Dienstprojekt zugeordnet ist. Diese unterscheidet sich von der Projekt-ID. Sie können die Projektnummer ermitteln. Führen Sie dazu den folgenden Befehl aus:gcloud projects describe SERVICE_PROJECT_ID
Nur Cloud Functions (2nd gen): Weisen Sie die Rolle dem Cloud Run-Dienst-Agent auch zu, indem Sie den folgenden Befehl ausführen:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \ --role=roles/vpcaccess.user
Connector sichtbar machen
In der IAM-Richtlinie des Hostprojekts müssen Sie den Hauptkonten, die Cloud Run-Dienste bereitstellen, die folgenden zwei vordefinierten Rollen zuweisen:
- Betrachter von serverlosem VPC-Zugriff (
vpcaccess.viewer
): Erforderlich. - Compute-Netzwerkbetrachter (
compute.networkViewer
): Optional, aber empfohlen. Ermöglicht dem IAM-Hauptkonto, Subnetze im freigegebenen VPC-Netzwerk aufzulisten.
Alternativ können Sie benutzerdefinierte Rollen oder andere vordefinierte Rollen verwenden, die alle Berechtigungen der Rolle „Betrachter von serverlosem VPC-Zugriff“ (vpcaccess.viewer
) enthalten.
Console
Öffnen Sie die IAM-Seite.
Klicken Sie auf das Projekt-Drop-down-Menü und wählen Sie das Hostprojekt aus.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Hauptkontos ein, das den Connector aus dem Dienstprojekt sehen soll. In diesem Feld können Sie mehrere E-Mail-Adressen eingeben.
Wählen Sie im Feld Rolle die folgenden beiden Rollen aus:
- Betrachter von serverlosem VPC-Zugriff
- Compute-Netzwerkbetrachter
Klicken Sie auf Speichern.
gcloud
Führen Sie im Terminal die folgenden Befehle aus:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
Dabei gilt:
HOST_PROJECT_ID
: die ID des freigegebenen VPC-HostprojektsPRINCIPAL
: das Hauptkonto, das Cloud Run-Dienste bereitstellt. Weitere Informationen zum Flag--member
Funktion für die Verwendung des Connectors konfigurieren
Für jede Funktion, die Zugriff auf die freigegebene VPC benötigt, müssen Sie den Connector für die Funktion angeben. In den folgenden Schritten wird gezeigt, wie Sie die Funktion für die Verwendung eines Connectors konfigurieren.
Console
Öffnen Sie die Übersichtsseite zu Cloud Functions.
Klicken Sie auf das Projekt-Drop-down-Menü und wählen Sie das Dienstprojekt aus.
Klicken Sie auf Funktion erstellen. Klicken Sie alternativ auf eine vorhandene Funktion, um deren Detailseite aufzurufen, und klicken dann auf Bearbeiten.
Maximieren Sie die erweiterten Einstellungen durch Klicken auf Laufzeit, Build....
Wählen Sie auf dem Tab Verbindungen unter „Einstellungen für ausgehenden Traffic“ den Connector im Feld VPC-Connector aus.
gcloud
Legen Sie die gcloud CLI fest, um das Projekt zu verwenden, das die Funktion enthält:
gcloud config set project PROJECT_ID
Dabei gilt:PROJECT_ID
: Die ID des Projekts, das die Funktion enthält, die Zugriff auf die freigegebene VPC benötigt. Befindet sich die Funktion im Hostprojekt, ist dies die Hostprojekt-ID. Wenn sich die Funktion in einem Dienstprojekt befindet, ist dies die Dienstprojekt-ID.
Verwenden Sie das Flag
--vpc-connector
und stellen Sie die Funktion bereit:gcloud functions deploy FUNCTION_NAME --vpc-connector=CONNECTOR_NAME
Dabei gilt:
FUNCTION_NAME
: Der Name Ihrer Funktion.CONNECTOR_NAME
: der Name des Connectors. Verwenden Sie den voll qualifizierten Namen bei der Bereitstellung aus einem freigegebenen VPC-Dienstprojekt (im Gegensatz zum Hostprojekt), z. B.:projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
Dabei istHOST_PROJECT_ID
die ID des Hostprojekts,CONNECTOR_REGION
die Region des Connectors undCONNECTOR_NAME
der Name, den Sie dem Connector gegeben haben.
Weitere Informationen dazu, wie Sie besser steuern können, welche Anfragen über den Connector weitergeleitet werden, finden Sie unter Einstellungen für ausgehenden Traffic.
Weitere Informationen
- Verbindung zu Memorystore von Cloud Functions herstellen.
- Netzwerkeinstellungen für Cloud Functions konfigurieren.
- Administratoraktivitäten mit dem Audit-Logging für den serverlosen VPC-Zugriff überwachen.
- Schützen Sie Ressourcen und Daten, indem Sie mit VPC Service Controls einen Dienstperimeter erstellen.
- Mehr über die IAM-Rollen (Identity and Access Management) für den serverlosen VPC-Zugriff erfahren. Unter Rollen für serverlosen VPC-Zugriff in der IAM-Dokumentation finden Sie eine Liste der Berechtigungen, die mit jeder Rolle verknüpft sind.