Verbindung zu einem VPC-Netzwerk herstellen
Auf dieser Seite wird gezeigt, wie Sie mit dem serverlosen VPC-Zugriff Cloud Functions direkt mit Ihrem VPC-Netzwerk verbinden und so Zugriff auf Compute Engine-VM-Instanzen, Memorystore-Instanzen und alle anderen Ressourcen mit einer internen IP-Adresse gewähren.
Vorbereitung
Wenn Sie in Ihrem Projekt noch kein VPC-Netzwerk haben, erstellen Sie eins.
Wenn Sie eine freigegebene VPC verwenden, gewähren Sie Zugriff auf den Connector. Weitere Informationen finden Sie unter Verbindung zu einem freigegebenen VPC-Netzwerk herstellen.
Prüfen Sie in der Google Cloud Console, ob die API für serverlosen VPC-Zugriff für Ihr Projekt aktiviert ist.
Erstellen eines Connectors für Serverless VPC Access
Wenn Sie Anfragen an Ihr VPC-Netzwerk senden und die entsprechenden Antworten ohne das öffentliche Internet erhalten möchten, können Sie einen Connector für serverlosen VPC-Zugriff verwenden.
Sie können einen Connector mit der Google Cloud Console, der Google Cloud CLI oder Terraform erstellen:
Console
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. Dies muss der Namenskonvention von Compute Engine entsprechen, mit der zusätzlichen Einschränkung, dass es weniger als 21 Zeichen sein müssen, wobei Bindestriche (-) als zwei Zeichen gezählt werden.
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 oder Job 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.
Zum Erstellen eines Connectors in einem Dienstprojekt, das ein freigegebenes VPC-Netzwerk in einem Hostprojekt verwendet, muss ein Netzwerkadministrator für das freigegebene VPC-Netzwerk das Subnetz des Connectors manuell erstellen, bevor Sie den Connector erstellen können. Weitere Informationen finden Sie unter Anforderungen an Connector-Subnetze.
Im Feld Subnetz:
Wenn Sie ein vorhandenes Subnetz für den Connector auswählen möchten, wählen Sie dieses Subnetz im Feld Subnetz aus.
Damit Google Cloud automatisch ein neues Subnetz für den Connector erstellt, wählen Sie im Feld Subnetz die Option Benutzerdefinierter IP-Bereich aus. Geben Sie im Feld IP-Bereich die erste Adresse in einem nicht reservierten internen CIDR-
/28
-Adressbereich ein. Dieser IP-Adressbereich darf sich nicht mit vorhandenen IP-Adressreservierungen im VPC-Netzwerk überschneiden.Die Namen von automatisch erstellten Subnetzen beginnen mit dem Präfix „aet-“.
(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 skaliert horizontal auf den angegebenen Maximalwert, wenn die Traffic-Nutzung es erfordert, der Connector skaliert jedoch nicht zurück, wenn der Traffic abnimmt.
Sie müssen Werte zwischen
2
und10
verwenden. - Wählen Sie im 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 skaliert horizontal auf den angegebenen Maximalwert, wenn die Traffic-Nutzung es erfordert, der Connector skaliert jedoch nicht zurück, wenn der Traffic abnimmt.
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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Aktualisieren Sie die Komponenten von
gcloud
auf die neueste Version:gcloud components update
Die Serverless VPC Access API muss für das Projekt aktiviert sein:
gcloud services enable vpcaccess.googleapis.com
Wenn Sie eine freigegebene VPC verwenden, für die Sie ein eigenes Subnetz verwenden müssen, erstellen Sie einen Connector mit dem folgenden Befehl:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET \ # If you are not using Shared VPC, omit the following line. --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
Ersetzen Sie Folgendes:
CONNECTOR_NAME
: Name des Connectors. Dies muss der Namenskonvention von Compute Engine entsprechen, mit der zusätzlichen Einschränkung, dass es weniger als 21 Zeichen sein müssen, wobei Bindestriche (-) als zwei Zeichen gezählt werden.REGION
: Eine Region für Ihren Connector. Diese muss mit der Region Ihres serverlosen Dienstes oder Jobs übereinstimmen. Wenn sich Ihr Dienst oder Job in der Regionus-central
odereurope-west
befindet, verwenden Sieus-central1
odereurope-west1
.SUBNET
: der Name eines nicht verwendeten/28
-Subnetzes.- Zum Erstellen eines Connectors in einem Dienstprojekt, das ein freigegebenes VPC-Netzwerk in einem Hostprojekt verwendet, muss ein Netzwerkadministrator für das freigegebene VPC-Netzwerk das Subnetz des Connectors manuell erstellen, bevor Sie den Connector erstellen können. Weitere Informationen finden Sie unter Anforderungen an Connector-Subnetze.
- 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
Ersetzen Sie:- SUBNET: Der Name Ihres Subnetzes.
- Mit Subnetzen arbeiten
HOST_PROJECT_ID
: Die ID des Hostprojekts; geben Sie diese nur an, wenn Sie eine freigegebene VPC verwendenMIN
: die Mindestanzahl von 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.Wenn Sie keine freigegebene VPC verwenden und anstelle eines vorhandenen Subnetzes einen benutzerdefinierten IP-Bereich angeben möchten, erstellen Sie mit dem folgenden Befehl einen Connector:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --network VPC_NETWORK \ --region REGION \ --range IP_RANGE
Ersetzen Sie Folgendes:
CONNECTOR_NAME
: Name des Connectors. Dies muss der Namenskonvention von Compute Engine entsprechen, mit der zusätzlichen Einschränkung, dass es weniger als 21 Zeichen sein müssen, wobei Bindestriche (-
) als zwei Zeichen gezählt werden.VPC_NETWORK
: Das VPC-Netzwerk, an das der Connector angehängt wird.REGION
: Eine Region für den Connector. Sie muss mit der Region des serverlosen Dienstes oder Jobs übereinstimmen. Wenn sich Ihr Dienst oder Job in der Regionus-central
odereurope-west
befindet, verwenden Sieus-central1
odereurope-west1
.IP_RANGE
: ein nicht reserviertes internes IP-Netzwerk und ein/28
an nicht zugewiesenem Bereich sind erforderlich, damit Google Cloud automatisch ein neues Subnetz für den Connector erstellen kann. Der angegebene Wert ist das Netzwerk in CIDR-Notation (10.8.0.0/28
). Dieser IP-Adressbereich darf sich nicht mit vorhandenen IP-Adressreservierungen im VPC-Netzwerk überschneiden.- Die Namen von automatisch erstellten Subnetzen beginnen mit dem Präfix „aet-“.
Weitere Informationen und optionale Argumente wie Durchsatzkontrollen 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
Ersetzen Sie Folgendes:
CONNECTOR_NAME
: Der Name Ihres Connectors; dies ist der Name, den Sie im vorherigen Schritt angegeben haben.REGION
: 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.
Funktion für die Verbindung mit einem VPC-Netzwerk konfigurieren
Sie müssen jede Funktion für die Verwendung eines Serverless VPC Access-Connectors konfigurieren, um eine Verbindung zu Ihrem VPC-Netzwerk herzustellen und den ausgehenden Traffic zu senden. Sie können eine Funktion so konfigurieren, dass ein Connector aus der Google Cloud Console oder der Google Cloud CLI verwendet wird:
Console
Klicken Sie auf Funktion erstellen, wenn Sie eine neue Funktion konfigurieren. Wenn Sie eine vorhandene Funktion konfigurieren möchten, klicken Sie auf die Funktion und dann auf Bearbeiten.
Wenn Sie eine neue Funktion konfigurieren, füllen Sie die Seite mit den anfänglichen Funktionseinstellungen wie gewünscht aus und klicken Sie dann auf Laufzeit, Build..., um die Seite zur Funktionskonfiguration zu maximieren.
Klicken Sie auf den Tab Verbindungen und wählen Sie unter „Einstellungen für ausgehenden Traffic“ eine der folgenden Optionen aus dem Menü VPC-Netzwerk aus:
- Wählen Sie Keine aus, um die Funktion von einem VPC-Netzwerk zu trennen.
- Wenn Sie einen vorhandenen Connector verwenden möchten, wählen Sie ihn aus der Drop-down-Liste aus oder wählen Sie Benutzerdefiniert aus, um einen vorhandenen Connector zu verwenden, der nicht in der Drop-down-Liste enthalten ist.
- Wählen Sie zum Erstellen eines neuen Connectors Neuen VPC-Connector hinzufügen aus. (Vorschau)
Weitere Informationen zum Erstellen eines Connectors finden Sie unter Connector für serverlosen VPC-Zugriff erstellen.
Klicken Sie auf Next (Weiter).
gcloud
Verwenden Sie den Befehl gcloud functions deploy
, um die Funktion bereitzustellen, und geben Sie dabei das Flag --vpc-connector
an:
gcloud functions deploy FUNCTION_NAME \ --vpc-connector CONNECTOR_NAME \ FLAGS...
wobei
FUNCTION_NAME
ist der Name Ihrer Funktion.CONNECTOR_NAME
ist der Name Ihres Connectors.FLAGS...
verweist auf andere Flags, die Sie bei der Funktionsbereitstellung übergeben.
Verwenden Sie das Flag --clear-vpc-connector
, um die Verbindung Ihrer Funktion zu einem VPC-Netzwerk zu trennen:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
Weitere Informationen dazu, wie Sie besser steuern können, welche Anfragen über den Connector weitergeleitet werden, finden Sie unter Einstellungen für ausgehenden Traffic.
Zugriff auf VPC-Ressourcen
Eingehenden Traffic von serverloser Infrastruktur zu Connector zulassen
Ihre Connector-VMs müssen Pakete aus den externen IP-Adressbereichen 35.199.224.0/19
empfangen können. Dieser Bereich wird von der serverlosen Google-Infrastruktur verwendet, damit Dienste von Cloud Run, Cloud Functions und App Engine Pakete an den Connector senden können.
Der serverlose VPC-Zugriff erstellt eine Firewallregel zum Zulassen von eingehendem Traffic, die für die Connector-VMs gilt. Dabei werden Pakete von 35.199.224.0/19
zugelassen, wenn sich der Connector im selben Projekt wie das als Ziel definierte VPC-Netzwerk befindet. Der Connector und sein Ziel-VPC-Netzwerk befinden sich im selben Projekt, wenn der Connector entweder auf ein eigenständiges VPC-Netzwerk abzielt oder wenn der Connector auf ein freigegebenes VPC-Netzwerk abzielt und sich der Connector im Hostprojekt befindet.
Wenn Sie einen Connector in einem Dienstprojekt einer freigegebenen VPC erstellen, muss ein Sicherheitsadministrator oder Projektinhaber für das Hostprojekt der freigegebenen VPC eine Firewallregel für eingehenden Traffic erstellen, die auf die Connector-VMs anwendbar ist und Pakete aus 35.199.224.0/19
zulässt. Hier ist ein Beispiel für eine VPC-Firewallregel für eingehenden Traffic:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --rules=TCP \ --source-ranges=35.199.224.0/19 \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY \ --project=PROJECT_ID
Ersetzen Sie Folgendes:
- RULE_NAME: Name der neuen Firewallregel. Beispiel:
allow-vpc-connector-ingress
- VPC_CONNECTOR_NETWORK_TAG: Das universelle Connector-Netzwerk-Tag
vpc-connector
kann verwendet werden, wenn die Regel auf alle Connectors im VPC-Netzwerk angewendet werden soll. Alternativ können Sie ein Netzwerk-Tag verwenden, das für den Connector spezifisch ist. Das spezifische Netzwerk-Tag hat das folgende Format:vpc-connector-
REGION-
CONNECTOR_NAME, wobei REGION die Google Cloud-Region des Connectors und CONNECTOR_NAME der Name ist. - VPC_NETWORK: der Name des VPC-Netzwerks, auf das der Connector abzielt.
- PRIORITY: Eine Ganzzahl zwischen 0 und 65.535. Beispielsweise wird durch 0 die höchste Priorität festgelegt.
- PROJECT_ID: die Projekt-ID des Projekts, das das VPC-Netzwerk enthält, auf das der Connector abzielt.
VPC-Netzwerkressourcen des Connector-VM-Zugriffs einschränken
Sie können den Zugriff des Connectors auf Ressourcen im Ziel-VPC-Netzwerk mithilfe von VPC-Firewallregeln oder Regeln in Firewallrichtlinien einschränken. Diese Einschränkungen können Sie mit einer der folgenden Strategien erreichen:
- Erstellen Sie Regeln für eingehenden Traffic, deren Ziele die Ressourcen darstellen, auf die Sie den Zugriff durch Connector-VMs beschränken möchten und deren Quellen die Connector-VMs darstellen.
- Erstellen Sie Regeln für ausgehenden Traffic, deren Ziele die Connector-VMs darstellen und deren Ziele die Ressourcen darstellen, auf die Sie den Zugriff der Connector-VM beschränken möchten.
Die folgenden Beispiele veranschaulichen jede Strategie.
Zugriff mit Regeln für eingehenden Traffic einschränken
Wählen Sie entweder Netzwerk-Tags oder CIDR-Bereiche aus, um den eingehenden Traffic zum VPC-Netzwerk zu steuern.
Netzwerktags
In den folgenden Schritten wird gezeigt, wie Sie Regeln für eingehenden Traffic erstellen, die den Zugriff eines Connectors auf Ihr VPC-Netzwerk anhand der Connector-Netzwerk-Tags einschränken.
Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Einfügen von Firewallregeln haben. Sie benötigen eine der folgenden Rollen für Identity and Access Management (IAM):
- Rolle "Compute-Sicherheitsadministrator"
- Benutzerdefinierte IAM-Rolle mit aktivierter Berechtigung
compute.firewalls.create
Lehnen Sie Connector-Traffic im gesamten VPC-Netzwerk ab.
Erstellen Sie eine Firewallregel für eingehenden Traffic mit einer Priorität von weniger als 1.000 in Ihrem VPC-Netzwerk, um eingehenden Traffic aus dem Connector-Netzwerk-Tag abzulehnen. Dadurch wird die implizite Firewallregel überschrieben, die von serverlosem VPC-Zugriff in Ihrem VPC-Netzwerk standardmäßig erstellt wird.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Ersetzen Sie Folgendes:
RULE_NAME: Name der neuen Firewallregel. Beispiel:
deny-vpc-connector
PROTOCOL: Ein oder mehrere Protokolle, die Sie von Ihrem VPC-Connector zulassen möchten. Unterstützte Protokolle sind
tcp
oderudp
. Beispiel:tcp:80,udp
lässt TCP-Traffic über Port 80 sowie UDP-Traffic zu. Weitere Informationen finden Sie in der Dokumentation zum Flagallow
.Aus Sicherheits- und Validierungsgründen können Sie auch Ablehnungsregeln konfigurieren, um Traffic für die folgenden nicht unterstützten Protokolle zu blockieren:
ah
,all
,esp
,icmp
,ipip
undsctp
.VPC_CONNECTOR_NETWORK_TAG: das universelle Connector-Netzwerk-Tag, wenn Sie den Zugriff für alle Connectors (einschließlich zukünftiger Connectors) einschränken möchten, oder das eindeutige Netzwerk-Tag, wenn Sie den Zugriff für einen bestimmten Connector einschränken möchten.
- Universelles Netzwerk-Tag:
vpc-connector
Eindeutiges Netzwerk-Tag:
vpc-connector-REGION-CONNECTOR_NAME
Ersetzen Sie:
- REGION: Region des Connectors, den Sie einschränken möchten
- CONNECTOR_NAME: Name des Connectors, den Sie einschränken möchten.
Weitere Informationen zu Netzwerk-Tags des Connectors finden Sie unter Netzwerk-Tags.
- Universelles Netzwerk-Tag:
VPC_NETWORK: Der Name des VPC-Netzwerks
PRIORITY: Eine Ganzzahl zwischen 0 und 65.535. Beispielsweise wird durch 0 die höchste Priorität festgelegt.
Erlauben Sie Connector-Traffic für die Ressource, die Connector-Traffic empfangen soll.
Verwenden Sie die Flags
allow
undtarget-tags
, um eine Firewallregel für eingehenden Traffic zu erstellen, die auf die Ressource in Ihrem VPC-Netzwerk ausgerichtet ist, auf die der VPC-Connector zugreifen soll. Setzen Sie die Priorität für diese Regel auf einen niedrigeren Wert als die Priorität der Regel, die Sie im vorherigen Schritt erstellt haben.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Ersetzen Sie Folgendes:
RULE_NAME: Name der neuen Firewallregel. Beispiel:
allow-vpc-connector-for-select-resources
PROTOCOL: Ein oder mehrere Protokolle, die Sie von Ihrem VPC-Connector zulassen möchten. Unterstützte Protokolle sind
tcp
oderudp
. Beispiel:tcp:80,udp
lässt TCP-Traffic über Port 80 sowie UDP-Traffic zu. Weitere Informationen finden Sie in der Dokumentation zum Flagallow
.VPC_CONNECTOR_NETWORK_TAG: das universelle Connector-Netzwerk-Tag, wenn Sie den Zugriff für alle Connectors (einschließlich zukünftiger Connectors) einschränken möchten, oder das eindeutige Netzwerk-Tag, wenn Sie den Zugriff für einen bestimmten Connector einschränken möchten. Dieser muss mit dem Netzwerk-Tag übereinstimmen, das Sie im vorherigen Schritt angegeben haben.
- Universelles Netzwerk-Tag:
vpc-connector
Eindeutiges Netzwerk-Tag:
vpc-connector-REGION-CONNECTOR_NAME
Ersetzen Sie:
- REGION: Region des Connectors, den Sie einschränken möchten
- CONNECTOR_NAME: Name des Connectors, den Sie einschränken möchten.
Weitere Informationen zu Netzwerk-Tags des Connectors finden Sie unter Netzwerk-Tags.
- Universelles Netzwerk-Tag:
VPC_NETWORK: Der Name des VPC-Netzwerks
RESOURCE_TAG: Netzwerk-Tag für die VPC-Ressource, auf die Ihr VPC-Connector zugreifen soll
PRIORITY: Eine Ganzzahl, die kleiner ist als die Priorität, die Sie im vorherigen Schritt festgelegt haben. Wenn Sie beispielsweise die Priorität der Regel, die Sie im vorherigen Schritt erstellt haben, auf 990 gesetzt haben, versuchen Sie es mit 980.
Weitere Informationen zu den erforderlichen und optionalen Flags für das Erstellen von Firewallregeln finden Sie in der Dokumentation zu gcloud compute firewall-rules create
.
CIDR-Bereich
In den folgenden Schritten wird gezeigt, wie Sie Regeln für eingehenden Traffic erstellen, die den Zugriff eines Connectors auf Ihr VPC-Netzwerk anhand des CIDR-Bereichs des Connectors beschränken.
Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Einfügen von Firewallregeln haben. Sie benötigen eine der folgenden Rollen für Identity and Access Management (IAM):
- Rolle "Compute-Sicherheitsadministrator"
- Benutzerdefinierte IAM-Rolle mit aktivierter Berechtigung
compute.firewalls.create
Lehnen Sie Connector-Traffic im gesamten VPC-Netzwerk ab.
Erstellen Sie eine Firewallregel für eingehenden Traffic mit einer Priorität von weniger als 1.000 in Ihrem VPC-Netzwerk, um eingehenden Traffic aus dem CIDR-Bereich des Connectors abzulehnen. Dadurch wird die implizite Firewallregel überschrieben, die von serverlosem VPC-Zugriff in Ihrem VPC-Netzwerk standardmäßig erstellt wird.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Ersetzen Sie Folgendes:
RULE_NAME: Name der neuen Firewallregel. Beispiel:
deny-vpc-connector
PROTOCOL: Ein oder mehrere Protokolle, die Sie von Ihrem VPC-Connector zulassen möchten. Unterstützte Protokolle sind
tcp
oderudp
. Beispiel:tcp:80,udp
lässt TCP-Traffic über Port 80 sowie UDP-Traffic zu. Weitere Informationen finden Sie in der Dokumentation zum Flagallow
.Aus Sicherheits- und Validierungsgründen können Sie auch Ablehnungsregeln konfigurieren, um Traffic für die folgenden nicht unterstützten Protokolle zu blockieren:
ah
,all
,esp
,icmp
,ipip
undsctp
.VPC_CONNECTOR_CIDR_RANGE: Der CIDR-Bereich für den Connector, dessen Zugriff Sie einschränken.
VPC_NETWORK: Der Name des VPC-Netzwerks
PRIORITY: Eine Ganzzahl zwischen 0 und 65.535. Beispielsweise wird durch 0 die höchste Priorität festgelegt.
Erlauben Sie Connector-Traffic für die Ressource, die Connector-Traffic empfangen soll.
Verwenden Sie die Flags
allow
undtarget-tags
, um eine Firewallregel für eingehenden Traffic zu erstellen, die auf die Ressource in Ihrem VPC-Netzwerk ausgerichtet ist, auf die der VPC-Connector zugreifen soll. Setzen Sie die Priorität für diese Regel auf einen niedrigeren Wert als die Priorität der Regel, die Sie im vorherigen Schritt erstellt haben.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Ersetzen Sie Folgendes:
RULE_NAME: Name der neuen Firewallregel. Beispiel:
allow-vpc-connector-for-select-resources
PROTOCOL: Ein oder mehrere Protokolle, die Sie von Ihrem VPC-Connector zulassen möchten. Unterstützte Protokolle sind
tcp
oderudp
. Beispiel:tcp:80,udp
lässt TCP-Traffic über Port 80 sowie UDP-Traffic zu. Weitere Informationen finden Sie in der Dokumentation zum Flagallow
.VPC_CONNECTOR_CIDR_RANGE: Der CIDR-Bereich für den Connector, dessen Zugriff Sie einschränken
VPC_NETWORK: Der Name des VPC-Netzwerks
RESOURCE_TAG: Netzwerk-Tag für die VPC-Ressource, auf die Ihr VPC-Connector zugreifen soll
PRIORITY: Eine Ganzzahl, die kleiner ist als die Priorität, die Sie im vorherigen Schritt festgelegt haben. Wenn Sie beispielsweise die Priorität der Regel, die Sie im vorherigen Schritt erstellt haben, auf 990 gesetzt haben, versuchen Sie es mit 980.
Weitere Informationen zu den erforderlichen und optionalen Flags zum Erstellen von Firewallregeln finden Sie in der Dokumentation zu gcloud compute firewall-rules create
.
Zugriff mithilfe von Regeln für ausgehenden Traffic beschränken
In den folgenden Schritten wird gezeigt, wie Sie Regeln für ausgehenden Traffic erstellen, um den Zugriff durch Connectors zu beschränken.
Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Einfügen von Firewallregeln haben. Sie benötigen eine der folgenden Rollen von Identity and Access Management (IAM):
- Rolle "Compute-Sicherheitsadministrator"
- Benutzerdefinierte IAM-Rolle mit aktivierter Berechtigung
compute.firewalls.create
Lehnen Sie den ausgehenden Traffic über den Connector ab.
Erstellen Sie eine Firewallregel für ausgehenden Traffic im Connector für serverlosen VPC-Zugriff, um das Senden von ausgehendem Traffic mit Ausnahme der festgelegten Antworten an ein beliebiges Ziel zu verhindern.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
Ersetzen Sie Folgendes:
RULE_NAME: Name der neuen Firewallregel. Beispiel:
deny-vpc-connector
PROTOCOL: Ein oder mehrere Protokolle, die Sie von Ihrem VPC-Connector zulassen möchten. Unterstützte Protokolle sind
tcp
oderudp
. Beispiel:tcp:80,udp
lässt TCP-Traffic über Port 80 sowie UDP-Traffic zu. Weitere Informationen finden Sie in der Dokumentation zum Flagallow
.Aus Sicherheits- und Validierungsgründen können Sie auch Ablehnungsregeln konfigurieren, um Traffic für die folgenden nicht unterstützten Protokolle zu blockieren:
ah
,all
,esp
,icmp
,ipip
undsctp
.VPC_CONNECTOR_NETWORK_TAG: Das universelle VPC-Connector-Netzwerk-Tag, wenn die Regel für alle vorhandenen und zukünftig erstellten VPC-Connectors gelten soll. Wenn Sie einen bestimmten Connector steuern möchten, können Sie das eindeutige Netzwerk-Tag des VPC-Connectors verwenden.
VPC_NETWORK: Der Name des VPC-Netzwerks
PRIORITY: Eine Ganzzahl zwischen 0 und 65.535. Beispielsweise wird durch 0 die höchste Priorität festgelegt.
Lassen Sie ausgehenden Traffic zu, wenn sich das Ziel in dem CIDR-Bereich befindet, auf den der Connector zugreifen soll.
Verwenden Sie die Flags
allow
unddestination-ranges
, um eine Firewallregel zu erstellen, die ausgehenden Traffic von Ihrem Connector für einen bestimmten Zielbereich zulässt. Legen Sie den Zielbereich auf den CIDR-Bereich der Ressource in Ihrem VPC-Netzwerk fest, auf die der Connector zugreifen soll. Setzen Sie die Priorität für diese Regel auf einen niedrigeren Wert als die Priorität der Regel, die Sie im vorherigen Schritt erstellt haben.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --destination-ranges=RESOURCE_CIDR_RANGE \ --direction=EGRESS \ --network=VPC_NETWORK \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --priority=PRIORITY
Ersetzen Sie Folgendes:
RULE_NAME: Name der neuen Firewallregel. Beispiel:
allow-vpc-connector-for-select-resources
PROTOCOL: Ein oder mehrere Protokolle, die Sie von Ihrem VPC-Connector zulassen möchten. Unterstützte Protokolle sind
tcp
oderudp
. Beispiel:tcp:80,udp
lässt TCP-Traffic über Port 80 sowie UDP-Traffic zu. Weitere Informationen finden Sie in der Dokumentation zum Flagallow
.RESOURCE_CIDR_RANGE: Der CIDR-Bereich für den Connector, dessen Zugriff Sie einschränken.
VPC_NETWORK: Der Name des VPC-Netzwerks
VPC_CONNECTOR_NETWORK_TAG: Das universelle VPC-Connector-Netzwerk-Tag, wenn die Regel für alle vorhandenen und zukünftig erstellten VPC-Connectors gelten soll. Wenn Sie einen bestimmten Connector steuern möchten, können Sie das eindeutige Netzwerk-Tag des VPC-Connectors verwenden. Wenn Sie im vorherigen Schritt das eindeutige Netzwerk-Tag genutzt haben, verwenden Sie das eindeutige Netzwerk-Tag.
PRIORITY: Eine Ganzzahl, die kleiner ist als die Priorität, die Sie im vorherigen Schritt festgelegt haben. Wenn Sie beispielsweise die Priorität der Regel, die Sie im vorherigen Schritt erstellt haben, auf 990 gesetzt haben, versuchen Sie es mit 980.
Weitere Informationen zu den erforderlichen und optionalen Flags für das Erstellen von Firewallregeln finden Sie in der Dokumentation zu gcloud compute firewall-rules create
.
Connector verwalten
Funktion von einem VPC-Netzwerk trennen
Sie können eine Funktion mit der Google Cloud Console oder der Google Cloud CLI von Ihrem VPC-Netzwerk trennen:
Console
Gehen Sie zur Cloud Functions-Übersichtsseite in der Google Cloud Console:
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....
Geben Sie auf dem Tab Verbindungen unter „Einstellungen für ausgehenden Traffic“ den Namen des Connectors im Feld VPC-Connector ein oder bereinigen Sie das Feld, um die Verbindung des Dienstes zu einem VPC-Netzwerk zu trennen.
gcloud
Verwenden Sie das Flag --clear-vpc-connector
, um die Verbindung Ihrer Funktion zu einem VPC-Netzwerk zu trennen:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
wobei
FUNCTION_NAME
ist der Name Ihrer Funktion.CONNECTOR_NAME
ist der Name Ihres Connectors.FLAGS...
verweist auf andere Flags, die Sie bei der Funktionsbereitstellung übergeben.
Connectors verursachen auch dann Kosten, wenn sie keinen Traffic haben und nicht verbunden sind. Weitere Informationen finden Sie unter Preise. Wenn Sie den Connector nicht mehr benötigen, können Sie ihn löschen, um weitere Kosten zu vermeiden.
Connector aktualisieren
Sie können die folgenden Attribute Ihres Connectors über die Google Cloud Console, die Google Cloud CLI oder die API aktualisieren und überwachen:
- Maschinentyp (Instanz)
- Mindest- und Höchstzahl von Instanzen
- Letzter Durchsatz, Anzahl der Instanzen und CPU-Auslastung
Maschinentyp aktualisieren
Console
Rufen Sie die Übersichtsseite für serverlosen VPC-Zugriff auf:
Wählen Sie den zu bearbeitenden Connector aus und klicken Sie auf Bearbeiten.
Wählen Sie in der Liste Instanztyp den gewünschten Maschinentyp (Instanz) aus. Weitere Informationen zu verfügbaren Maschinentypen finden Sie in der Dokumentation zu Durchsatz und Skalierung.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um den Connector-Maschinentyp zu aktualisieren:
gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
Ersetzen Sie Folgendes:CONNECTOR_NAME
: der Name des ConnectorsREGION
: der Name der Region Ihres ConnectorsMACHINE_TYPE
: Ihr bevorzugter Maschinentyp. Weitere Informationen zu verfügbaren Maschinentypen finden Sie in der Dokumentation zu Durchsatz und Skalierung.
Mindest- und Höchstzahl von Instanzen verringern
So verringern Sie die Mindest- und Höchstzahl von Instanzen:
- Erstellen Sie einen neuen Connector mit den gewünschten Werten.
- Aktualisieren Sie Ihren Dienst oder Ihre Funktion, um den neuen Connector zu verwenden.
- Löschen Sie den alten Connector, wenn Sie den Traffic verschoben haben.
Weitere Informationen finden Sie unter Connector für serverlosen VPC-Zugriff erstellen.
Mindest- und Höchstzahl von Instanzen erhöhen
Console
Rufen Sie die Übersichtsseite für serverlosen VPC-Zugriff auf:
Wählen Sie den zu bearbeitenden Connector aus und klicken Sie auf Bearbeiten.
Wählen Sie im Feld Mindestinstanzen die gewünschte Mindestanzahl von Instanzen aus.
Der kleinstmögliche Wert für dieses Feld ist der aktuelle Wert. Der größtmögliche Wert für dieses Feld ist der aktuelle Wert im Feld Maximale Anzahl von Instanzen minus 1. Lautet der Wert im Feld Maximale Instanzzahl beispielsweise 8, ist der größtmögliche Wert für das Feld Mindestinstanzen 7.
Wählen Sie im Feld Maximale Instanzen Ihre bevorzugte maximale Anzahl von Instanzen aus.
Der kleinstmögliche Wert für dieses Feld ist der aktuelle Wert. Der größtmögliche Wert für dieses Feld ist 10.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um die Mindest- oder Höchstanzahl von Instanzen für den Connector zu erhöhen:
gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
Dabei gilt ersetzen Sie Folgendes:
CONNECTOR_NAME
: der Name des ConnectorsREGION
: der Name der Region Ihres ConnectorsMIN_INSTANCES
: Ihre bevorzugte Mindestanzahl von Instanzen.- Der kleinstmögliche Wert für dieses Feld ist der aktuelle Wert von
min_instances
. Informationen zum Ermitteln des aktuellen Werts finden Sie unter Aktuelle Attributwerte finden. - Der größtmögliche Wert für dieses Feld ist der aktuelle
max_instances
-Wert minus 1, damin_instances
kleiner alsmax_instances
sein muss. Beispiel: Wennmax_instances
8 ist, ist der größtmögliche Wert für dieses Feld 7. Wenn Ihr Connector den Standardwertmax-instances
von 10 verwendet, ist der größtmögliche Wert dieses Feldes 9. Wie Sie den Wert vonmax-instances
ermitteln, erfahren Sie unter Aktuelle Attributwerte finden.
- Der kleinstmögliche Wert für dieses Feld ist der aktuelle Wert von
MAX_INSTANCES
:- Der kleinstmögliche Wert für dieses Feld ist der aktuelle Wert von
max_instances
. Informationen zum Ermitteln des aktuellen Werts finden Sie unter Aktuelle Attributwerte finden. - Der größtmögliche Wert für dieses Feld ist 10.
Wenn Sie nur die minimale, aber nicht die maximale Anzahl von Instanzen erhöhen wollen, müssen Sie trotzdem die maximale Anzahl von Instanzen angeben. Umgekehrt müssen Sie, wenn Sie nur die maximale, nicht aber die minimale Anzahl der Instanzen aktualisieren wollen, die minimale Anzahl der Instanzen angeben. Geben Sie den aktuellen Wert an, um die minimale oder maximale Anzahl von Instanzen auf dem aktuellen Wert zu halten. Informationen zum Ermitteln des aktuellen Werts finden Sie unter Aktuelle Attributwerte finden.
- Der kleinstmögliche Wert für dieses Feld ist der aktuelle Wert von
Aktuelle Attributwerte finden
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um die aktuellen Attributwerte für Ihren Connector zu ermitteln:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECTDabei gilt ersetzen Sie Folgendes:
CONNECTOR_NAME
: der Name des ConnectorsREGION
: der Name der Region Ihres ConnectorsPROJECT
: der Name Ihres Google Cloud-Projekts
Connector-Auslastung überwachen
Wenn Sie die Auslastung im Zeitverlauf beobachten, können Sie feststellen, wann die Einstellungen eines Connectors angepasst werden müssen. Wenn die CPU-Auslastung beispielsweise stark ansteigt, sollten Sie versuchen, die maximale Anzahl von Instanzen zu erhöhen, um bessere Ergebnisse zu erzielen. Wenn der Durchsatz maximal ausgeschöpft ist, können Sie zu einem größeren Maschinentyp wechseln.
So rufen Sie Diagramme für den Durchsatz, die Anzahl der Instanzen und die CPU-Auslastungsmesswerte im Zeitverlauf mithilfe der Google Cloud Console auf:
Rufen Sie die Übersichtsseite für serverlosen VPC-Zugriff auf:
Klicken Sie auf den Namen des Connectors, den Sie überwachen möchten.
Wählen Sie die Anzahl der Tage zwischen 1 und 90 Tagen aus.
Bewegen Sie den Mauszeiger im Diagramm Durchsatz über das Diagramm, um den letzten Durchsatz des Connectors zu sehen.
Bewegen Sie den Mauszeiger im Diagramm Anzahl der Instanzen über das Diagramm, um die Anzahl der zuletzt vom Connector verwendeten Instanzen zu sehen.
Bewegen Sie den Mauszeiger im Diagramm CPU-Auslastung auf das Diagramm, um die aktuelle CPU-Auslastung des Connectors zu sehen. Das Diagramm zeigt die CPU-Auslastung, die auf Instanzen für das 50., 95. und 99. Perzentil verteilt ist.
Connector löschen
Achten Sie darauf, dass noch keine Dienste oder Jobs mit ihm verbunden sind, bevor Sie einen Connector löschen.
Nutzer der freigegebenen VPC, die Connectors im Hostprojekt der freigegebenen VPC einrichten, können den Befehl gcloud compute networks vpc-access connectors describe
verwenden, um die Projekte aufzulisten, in denen Dienste oder Jobs einen bestimmten Connector verwenden.
Verwenden Sie zum Löschen eines Connectors die Google Cloud Console oder die Google Cloud CLI:
Console
Rufen Sie in der Google Cloud Console die Übersichtsseite für serverlosen VPC-Zugriff auf:
Wählen Sie den Connector aus, den Sie löschen möchten.
Klicken Sie auf Löschen.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Verwenden Sie den folgenden
gcloud
-Befehl, um einen Connector zu löschen:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
Ersetzen Sie Folgendes:
- CONNECTOR_NAME ist der Name des Connectors, den Sie löschen möchten.
- REGION ist die Region, in der sich der Connector befindet.
Fehlerbehebung
Dienstkontoberechtigungen
Zum Ausführen von Vorgängen in Ihrem Google Cloud-Projekt verwendet der Dienst für den serverlosen VPC-Zugriff das Dienstkonto Dienstagent für serverlosen VPC-Zugriff. Die E-Mail-Adresse dieses Dienstkontos hat das folgende Format:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
Standardmäßig hat dieses Dienstkonto die Rolle Dienstagent für serverlosen VPC-Zugriff (roles/vpcaccess.serviceAgent
). Serverlose VPC-Zugriffsvorgänge können fehlschlagen, wenn Sie die Berechtigungen dieses Kontos ändern.
Fehler
Fehler: Dienstkonto benötigt Service Agent-Rolle
Wenn Sie die Organisationsrichtlinie Restrict Resource Service Usage verwenden, um den Cloud Deployment Manager (deploymentmanager.googleapis.com
) zu blockieren, wird möglicherweise folgende Fehlermeldung angezeigt:
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
Legen Sie die Organisationsrichtlinie fest, um den Deployment Manager aus der Sperrliste zu entfernen, oder fügen Sie ihn zur Zulassungsliste hinzu.
Fehler beim Erstellen eines Connectors
Wenn beim Erstellen eines Connectors ein Fehler auftritt, versuchen Sie Folgendes:
- Geben Sie einen internen RFC 1918-IP-Bereich an, der sich nicht mit vorhandenen IP-Adressreservierungen im VPC-Netzwerk überschneidet.
- Erteilen Sie Ihrem Projekt die Berechtigung, Compute Engine-VM-Images aus dem Projekt mit der ID
serverless-vpc-access-images
zu verwenden. Weitere Informationen zum Aktualisieren Ihrer Organisationsrichtlinien finden Sie unter Einschränkungen für den Image-Zugriff festlegen.
Zugriff auf Ressourcen nicht möglich
Wenn Sie einen Connector angegeben haben, aber immer noch nicht auf Ressourcen in Ihrem VPC-Netzwerk zugreifen können, achten Sie darauf, dass es in Ihrem VPC-Netzwerk keine Firewallregeln mit einer Priorität unter 1000 gibt, die eingehenden Traffic aus dem IP-Bereich Ihres Connectors verweigern.
Wenn Sie einen Connector in einem freigegebenen VPC-Dienstprojekt konfigurieren, achten Sie darauf, dass Ihre Firewallregeln eingehenden Traffic von Ihrer serverlosen Infrastruktur zum Connector zulassen.
Fehler bezüglich verweigerter Verbindung
Wenn Sie connection refused
-Fehler erhalten, die die Netzwerkleistung beeinträchtigen, können Ihre Verbindungen unbegrenzt über Aufrufe Ihrer serverlosen Anwendung hinweg wachsen. Verwenden Sie eine Clientbibliothek, die Verbindungspools unterstützt, um die maximale Anzahl der pro Instanz verwendeten Verbindungen zu begrenzen. Ausführliche Beispiele zu Verbindungspools finden Sie unter Datenbankverbindungen verwalten.
Fehler bezüglich nicht gefundener Ressource
Wenn Sie ein VPC-Netzwerk oder eine Firewallregel löschen, wird möglicherweise eine Meldung wie diese angezeigt: The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
Informationen zu diesem Fehler und zu seiner Behebung finden Sie in der Dokumentation zu VPC-Firewallregeln unter Fehler bezüglich nicht gefundener Ressource.
Erforderliche Berechtigung vpcaccess.connectors.use für Dienstkonto fehlt…
Prüfen Sie zuerst, ob dem Dienstkonto die Rolle roles/vpcaccess.user
zugewiesen ist.
Wenn weiterhin Berechtigungsprobleme mit dem VPC-Connector auftreten, prüfen Sie, ob er eigentlich eine freigegebene VPC ist. In diesem Fall ist eine zusätzliche Einrichtung im Hostprojekt erforderlich.
Nächste Schritte
- 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.