Connessione a una rete VPC
Questa pagina mostra come utilizzare l'accesso VPC serverless per collegare le funzioni Cloud Run direttamente alla tua rete VPC, consentendo l'accesso alle istanze VM Compute Engine, alle istanze Memorystore e a qualsiasi altra risorsa con un indirizzo IP interno.
Prima di iniziare
Se non hai ancora una rete VPC nel progetto, creane una.
Se utilizzi il VPC condiviso, fornisci l'accesso al connettore, e consulta la sezione Connessione a una VPC condiviso condivisa.
Nella console Google Cloud, assicurati che l'accesso VPC serverless L'API è abilitata per il tuo progetto.
Crea un connettore di accesso VPC serverless
Per inviare richieste alla tua rete VPC e ricevere le risposte corrispondenti senza utilizzare la rete internet pubblica, puoi utilizzare un connettore di accesso VPC serverless.
Se il connettore si trova nello stesso progetto della rete VPC, puoi creare un connettore utilizzando una subnet esistente o creare un connettore e una nuova subnet.
Se il connettore si trova in un progetto di servizio e utilizza un VPC condiviso rete, il connettore e la rete VPC associata si trovano per progetti diversi. Quando un connettore e la relativa rete VPC si trovano in progetti diversi, un amministratore della rete VPC condivisa deve creare la subnet del connettore nella rete VPC condivisa prima che tu possa creare il connettore e devi creare il connettore utilizzando una subnet esistente.
Per ulteriori informazioni sui requisiti delle subnet, consulta Subnet connettore requisiti.
Per informazioni sulla velocità effettiva del connettore, inclusi tipo di macchina e scalabilità, consulta Velocità effettiva e scalabilità.
Puoi creare un connettore utilizzando la console Google Cloud, Google Cloud CLI o con Terraform.
Console
Vai alla pagina di riepilogo Accesso VPC serverless.
Fai clic su Crea connettore.
Nel campo Nome, inserisci un nome per il connettore che rispetti le convenzioni di denominazione di Compute Engine, con i requisiti aggiuntivi che il nome deve avere meno di 21 caratteri e che i trattini (-) contino come due caratteri.
Nel campo Regione, seleziona una regione per il connettore. Deve corrispondere alla regione del servizio serverless.
Se il tuo servizio o il tuo job si trova nella regione
us-central
oeurope-west
, utilizzaus-central1
oeurope-west1
.Nel campo Rete, seleziona la rete VPC a cui collegare il connettore.
Nel campo Subnet, seleziona una delle seguenti opzioni:
Crea un connettore utilizzando una subnet esistente: seleziona la subnet esistente nel campo Subnet.
Crea un connettore e una nuova subnet:seleziona Intervallo IP personalizzato in nel campo Subnet. Poi inserisci il primo indirizzo in un
/28
inutilizzato CIDR (ad esempio10.8.0.0/28
) da utilizzare come indirizzo IPv4 principale di una nuova subnet che Google Cloud crea rete VPC. Assicurati che l'intervallo IP non entri in conflitto con eventuali route esistenti nella rete VPC del connettore. Il nome della nuova sottorete inizia con il prefisso "aet-".
(Facoltativo) Per impostare le opzioni di scalabilità per un maggiore controllo Sul connettore, fai clic su Mostra impostazioni di scalabilità per visualizzare in un modulo di testo.
- Imposta il numero minimo e massimo di istanze per il connettore.
oppure utilizzare i valori predefiniti, che sono 2 (min) e 10 (max). La
fa lo scale up fino al massimo specificato se l'utilizzo del traffico richiede
ma il connettore non esegue lo scale down quando il traffico
diminuisce. Devi utilizzare valori compresi tra
2
e10
. - Nel menu Tipo di istanza, scegli il tipo di macchina da utilizzare per il connettore o utilizza il valore predefinito
e2-micro
. Quando scegli il tipo di istanza, tieni presente la barra laterale dei costi a destra, che mostra le stime di larghezza di banda e costi.
- Imposta il numero minimo e massimo di istanze per il connettore.
oppure utilizzare i valori predefiniti, che sono 2 (min) e 10 (max). La
fa lo scale up fino al massimo specificato se l'utilizzo del traffico richiede
ma il connettore non esegue lo scale down quando il traffico
diminuisce. Devi utilizzare valori compresi tra
Fai clic su Crea.
Quando il connettore è pronto per l'uso, accanto al nome viene visualizzato un segno di spunta verde.
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.
Aggiorna i componenti di
gcloud
alla versione più recente:gcloud components update
Assicurati che l'API Serverless VPC Access sia abilitata per il tuo progetto:
gcloud services enable vpcaccess.googleapis.com
Crea il connettore utilizzando una delle seguenti opzioni:
Per maggiori dettagli e argomenti facoltativi, consulta la documentazione di riferimento di
gcloud
.Crea un connettore utilizzando una subnet esistente:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET_NAME \ --subnet-project HOST_PROJECT_ID \ --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
Sostituisci quanto segue:
CONNECTOR_NAME
: un nome per il connettore, corrispondente alle convenzioni di denominazione di Compute Engine, con i requisiti aggiuntivi che il nome deve avere meno di 21 caratteri e che i trattini (-) contino come due caratteri.REGION
: una regione per il connettore, corrispondente alla regione del servizio o del job serverless. Se il tuo servizio o job è inus-central
oeurope-west
, usaus-central1
oppureeurope-west1
.SUBNET_NAME
: il nome della subnet esistente.HOST_PROJECT_ID
: l'ID progetto dell'host VPC condiviso. Se il connettore e la subnet esistente si trovano nello stesso progetto, ometti il flag--subnet-project
.MIN
: il numero minimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra2
(il valore predefinito) e9
.MAX
: il numero massimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra3
e10
(il valore predefinito). Se il connettore esegue lo scale up fino al numero massimo di istanze, non esegue lo scale down.MACHINE_TYPE
: deve essere uno dei seguenti valori:f1-micro
,e2-micro
oe2-standard-4
.
Crea un connettore e una nuova subnet:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --network VPC_NETWORK \ --range IP_RANGE --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
Sostituisci quanto segue:
CONNECTOR_NAME
: un nome per il connettore, corrispondente alle convenzioni di denominazione di Compute Engine, con i requisiti aggiuntivi che il nome deve avere meno di 21 caratteri e che i trattini (-) contino come due caratteri.REGION
: una regione per il connettore, corrispondente alla del tuo job o job serverless. Se il tuo servizio o job è inus-central
oeurope-west
, usaus-central1
oppureeurope-west1
.VPC_NETWORK
: il nome del VPC alla rete a cui collegare il connettore. Il connettore e la rete VPC devono trovarsi nello stesso progetto.IP_RANGE
: fornisci un CIDR/28
inutilizzato (ad esempio10.8.0.0/28
) da utilizzare come intervallo di indirizzi IPv4 principale di una nuova subnet creata da Google Cloud nella rete VPC del connettore. Assicurati che l'intervallo IP non in conflitto con eventuali route esistenti nel rete VPC. Il nome della nuova sottorete inizia con il prefisso "aet-".MIN
: il numero minimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra2
(valore predefinito) e9
.MAX
: il numero massimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra3
e10
(il valore predefinito). Se il connettore esegue lo scale up fino al numero massimo di istanze, non esegue lo scale down.MACHINE_TYPE
: deve essere uno dei seguenti valori:f1-micro
,e2-micro
oe2-standard-4
.
Prima di utilizzarlo, verifica che il connettore sia nello stato
READY
:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
Sostituisci quanto segue:
CONNECTOR_NAME
: il nome del connettore, ovvero il nome specificato nel passaggio precedente.REGION
: la regione del connettore; questo è il regione specificata nel passaggio precedente.
L'output deve contenere la riga
state: READY
.
Terraform
Puoi utilizzare una risorsa Terraform
per abilitare l'API vpcaccess.googleapis.com
.
Puoi utilizzare i moduli Terraform per creare una rete VPC e una subnet, quindi di rete.
Configura la funzione per connetterti a una rete VPC
Devi configurare ciascuna funzione per utilizzare un accesso VPC serverless per connetterti alla rete VPC per inviare messaggi in uscita per via del traffico. Puoi configurare una funzione in modo da utilizzare un connettore dalla console Google Cloud oppure in Google Cloud CLI:
Console
Fai clic su Crea funzione se stai configurando una nuova funzione. Se stai configurando una funzione esistente, fai clic sulla funzione, quindi Modifica.
Se stai configurando una nuova funzione, compila la pagina delle impostazioni iniziali della funzione come preferisci, quindi fai clic su Runtime, build… per espandere la pagina di configurazione della funzione.
Fai clic sulla scheda Connessioni e, in Impostazioni di uscita, scegli una delle seguenti opzioni dal menu Rete VPC:
- Per disconnettere la funzione da una rete VPC, seleziona Nessuna.
- Per utilizzare un connettore esistente, selezionalo dall'elenco a discesa oppure seleziona Personalizzato per utilizzare un connettore esistente che non viene mostrato in dall'elenco a discesa.
- Per creare un nuovo connettore, seleziona Aggiungi nuovo connettore VPC. (Anteprima)
Consulta Creare un connettore di accesso VPC serverless per i dettagli sulla creazione di un connettore.
Fai clic su Avanti.
gcloud
Utilizza il comando gcloud functions deploy
per eseguire il deployment della funzione
e specificare
--vpc-connector
Segnala:
gcloud functions deploy FUNCTION_NAME \ --vpc-connector CONNECTOR_NAME \ FLAGS...
dove:
FUNCTION_NAME
è il nome della funzione.CONNECTOR_NAME
è il nome del connettore.FLAGS...
si riferisce ad altre segnalazioni trasmesse durante deployment delle funzioni.
Utilizza la
--clear-vpc-connector
per disconnettere la funzione da una rete VPC:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
Per un maggiore controllo sulle richieste instradate tramite il connettore, consulta Impostazioni di uscita.
Accesso alle risorse VPC
Regole firewall obbligatorie per i connettori nei progetti di servizio
Se crei un connettore in una rete VPC autonoma o nel progetto host di una rete VPC condivisa, Google Cloud crea tutte le regole del firewall necessarie per il funzionamento del connettore. Per ulteriori informazioni, consulta Regole firewall per i connettori nelle reti VPC autonome o nei progetti host VPC condiviso.
Tuttavia, se crei un connettore in un progetto di servizio e i target del connettore su una rete VPC condiviso nel progetto host, devi aggiungere regole firewall per consentire il traffico necessario per il funzionamento del connettore dai seguenti intervalli:
- Intervallo IP dell'infrastruttura serverless:
35.199.224.0/19
- Intervalli IP dei controlli di integrità:
35.191.0.0/16
,35.191.192.0/18
e130.211.0.0/22
Questi intervalli vengono utilizzati dall'infrastruttura Google sottostante Cloud Run, funzioni di Cloud Run e ambiente standard di App Engine. Tutte le richieste provenienti da questi indirizzi IP provengono dall'infrastruttura di Google per garantire che ogni risorsa serverless comunichi solo con il connettore a cui è collegata.
Devi inoltre consentire il traffico dalla subnet del connettore alle risorse nella tua rete VPC.
Per eseguire questi passaggi, devi disporre di uno dei seguenti ruoli nel progetto host:
- Ruolo Proprietario(
roles/owner
) - Ruolo Amministratore sicurezza Compute (
roles/compute.securityAdmin
) - Ruolo Identity and Access Management (IAM) personalizzato con l'autorizzazione
compute.firewalls.create
attivata
Per una configurazione di base, applica le regole per consentire alle risorse serverless in qualsiasi progetto di servizio collegato alla rete VPC condivisa di inviare richieste a qualsiasi risorsa della rete.
Per applicare queste regole, esegui i seguenti comandi nel progetto host:
Crea regole firewall che consentano alle richieste dell'infrastruttura serverless di Google e ai probe del controllo di integrità di raggiungere tutti i connettori della rete. In questi comandi, le porte UDP e TCP vengono utilizzate rispettivamente come proxy e per i controlli di integrità HTTP. Non cambiare le porte specificate.
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,35.191.192.0/18,130.211.0.0/22 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
Sostituisci
VPC_NETWORK
con il nome della rete VPC a cui collegare il connettore.Crea una regola firewall in entrata sulla rete VPC per consentire le richieste provenienti da connettori che hanno come target questa rete:
gcloud compute firewall-rules create vpc-connector-requests \ --allow tcp,udp,icmp \ --direction=INGRESS \ --source-tags vpc-connector \ --network=VPC_NETWORK
Questa regola concede al connettore l'accesso a tutte le risorse nella rete. Per limitare le risorse che il tuo ambiente serverless può raggiungere utilizzando l'accesso VPC serverless, consulta Limitare l'accesso della VM del connettore alle risorse di rete VPC.
Crea regole firewall per connettori specifici
Se segui la procedura descritta in Regole firewall richieste per i connettori nei progetti di servizio, vengono create regole firewall che si applicano a tutti i connettori, sia quelli attuali sia quelli creati in futuro. Se non vuoi questa funzionalità, ma vuoi solo per connettori specifici, puoi definire l'ambito delle regole ma si applicano solo a quei connettori.
Per limitare l'ambito delle regole a connettori specifici, puoi utilizzare uno dei seguenti meccanismi:
- Tag di rete: ogni connettore ha due tag di rete:
vpc-connector
evpc-connector-REGION-CONNECTOR_NAME
. Utilizza quest'ultimo formato per limitare l'ambito delle regole firewall a un connettore specifico. - Intervalli IP: utilizza questa opzione solo per le regole in uscita, perché non funziona per e le regole in entrata. Puoi utilizzare l'intervallo IP della sottorete del connettore per limitare l'ambito delle regole firewall a un singolo connettore VPC.
Limita l'accesso della VM del connettore alle risorse di rete VPC
Puoi limitare l'accesso del connettore alle risorse nella sua destinazione Rete VPC mediante firewall VPC regole o regole in firewall criteri. Puoi farlo delle limitazioni utilizzando una delle seguenti strategie:
- Crea regole in entrata le cui destinazioni rappresentano le risorse desiderate per limitare l'accesso alle VM del connettore e le cui origini rappresentano le VM del connettore.
- Crea regole di uscita i cui target rappresentano le VM di connettore e le cui destinazioni rappresentano le risorse a cui vuoi limitare l'accesso delle VM di connettore.
Gli esempi riportati di seguito illustrano ciascuna strategia.
Limita l'accesso mediante regole in entrata
Scegli tag di rete oppure Intervalli CIDR per controllare il traffico in entrata nella rete VPC.
Tag di rete
I passaggi seguenti mostrano come creare regole in entrata che limitano un l'accesso del connettore alla tua rete VPC in base al connettore tag di rete.
Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti requisiti: Ruoli di Identity and Access Management (IAM):
- Ruolo Compute Security Admin
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
attivata
Nega il traffico del connettore nella rete VPC.
Crea una regola firewall in entrata con priorità inferiore a 1000 sul tuo Rete VPC per negare il traffico in entrata dalla rete del connettore del tag. Questa operazione sostituisce la regola firewall implicita creata da Accesso VPC serverless sulla rete VPC per impostazione predefinita.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Sostituisci quanto segue:
RULE_NAME: il nome della nuova regola firewall. Ad esempio,
deny-vpc-connector
.PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. I protocolli supportati sono
tcp
oudp
. Ad esempio,tcp:80,udp
consente il traffico TCP attraverso la porta 80 e il traffico UDP. Per ulteriori informazioni, vedi la documentazione perallow
flag.Per motivi di sicurezza e convalida, puoi anche configurare regole di rifiuto per bloccare il traffico per i seguenti protocolli non supportati:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_NETWORK_TAG: il tag della rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi eventuali connettori creati in futuro) oppure il tag di rete univoco se vuoi limitare l'accesso per un connettore specifico.
- Tag di rete universale:
vpc-connector
Tag di rete univoco:
vpc-connector-REGION-CONNECTOR_NAME
Sostituisci:
- REGION: la regione del connettore che vuoi limitare
- CONNECTOR_NAME: il nome del connettore che vuoi limitare
Per scoprire di più sui tag di rete dei connettori, consulta Tag di rete.
- Tag di rete universale:
VPC_NETWORK: il nome della rete VPC
PRIORITY: un numero intero compreso tra 0 e 65535. Ad esempio, 0 imposta la priorità più elevata.
Consenti il traffico del connettore alla risorsa che deve riceverlo.
Utilizza i flag
allow
etarget-tags
per creare una regola del firewall di ingresso che abbia come target la risorsa nella rete VPC a cui vuoi che acceda il connettore VPC. Imposta la priorità per che questa regola sia un valore inferiore alla priorità della regola che hai creato al passaggio precedente.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
Sostituisci quanto segue:
RULE_NAME: il nome della nuova regola firewall. Ad esempio,
allow-vpc-connector-for-select-resources
.PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. I protocolli supportati sono
tcp
oudp
. Ad esempio,tcp:80,udp
consente il traffico TCP tramite la porta 80 e il traffico UDP. Per ulteriori informazioni, vedi la documentazione perallow
flag.VPC_CONNECTOR_NETWORK_TAG: il tag della rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi eventuali connettori creati in futuro) oppure il tag di rete univoco se vuoi limitare l'accesso per un connettore specifico. Deve corrispondere alla rete specificato nel passaggio precedente.
- Tag di rete universale:
vpc-connector
Tag di rete univoco:
vpc-connector-REGION-CONNECTOR_NAME
Sostituisci:
- REGION: la regione del connettore che vuoi limitare
- CONNECTOR_NAME: il nome del connettore che vuoi limitare
Per ulteriori informazioni sui tag di rete del connettore, consulta Tag di rete.
- Tag di rete universale:
VPC_NETWORK: il nome della rete VPC
RESOURCE_TAG: il tag di rete per il VPC risorsa a cui vuoi che il connettore VPC acceda
PRIORITY: un numero intero minore della priorità impostata al passaggio precedente. Ad esempio, se imposti la priorità per la regola che hai creato nel passaggio precedente a 990, prova a 980.
Per ulteriori informazioni sugli indicatori obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione di gcloud compute firewall-rules create
.
Intervallo CIDR
I passaggi riportati di seguito mostrano come creare regole di ingresso che limitano l'accesso di un connettore alla rete VPC in base all'intervallo CIDR del connettore.
Assicurati di disporre delle autorizzazioni necessarie per inserire le regole del firewall. Devi disporre di uno dei seguenti requisiti: Ruoli di Identity and Access Management (IAM):
- Ruolo Compute Security Admin
- Ruolo IAM personalizzato con
compute.firewalls.create
autorizzazione abilitata
Nega il traffico del connettore nella rete VPC.
Crea una regola firewall di ingresso con priorità inferiore a 1000 sulla rete VPC per negare l'ingresso dall'intervallo CIDR del connettore. Questo sostituisce la regola firewall implicita L'accesso VPC serverless crea sul tuo VPC per impostazione predefinita.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Sostituisci quanto segue:
RULE_NAME: il nome della nuova regola firewall. Ad esempio,
deny-vpc-connector
.PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. I protocolli supportati sono
tcp
oudp
. Ad esempio,tcp:80,udp
consente il traffico TCP attraverso la porta 80 e il traffico UDP. Per ulteriori informazioni, consulta la documentazione relativa al flagallow
.Per motivi di sicurezza e convalida, puoi anche configurare regole di rifiuto per bloccare il traffico per i seguenti protocolli non supportati:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR del connettore di cui stai limitando l'accesso
VPC_NETWORK: il nome della rete VPC
PRIORITY: un numero intero compreso tra 0 e 65535. Ad esempio, 0 imposta la priorità più elevata.
Consenti il traffico del connettore alla risorsa che deve riceverlo.
Utilizza i flag
allow
etarget-tags
per creare una regola del firewall di ingresso che abbia come target la risorsa nella rete VPC a cui vuoi che acceda il connettore VPC. Imposta la priorità per che questa regola sia un valore inferiore alla priorità della regola che hai creato al passaggio precedente.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
Sostituisci quanto segue:
RULE_NAME: il nome della nuova regola firewall. Ad esempio,
allow-vpc-connector-for-select-resources
.PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. I protocolli supportati sono
tcp
oudp
. Ad esempio,tcp:80,udp
consente il traffico TCP attraverso la porta 80 e il traffico UDP. Per ulteriori informazioni, vedi la documentazione perallow
flag.VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR per il connettore l'utente di cui stai limitando l'accesso
VPC_NETWORK: il nome della rete VPC
RESOURCE_TAG: il tag di rete per il VPC risorsa a cui vuoi che il connettore VPC acceda
PRIORITY: un numero intero minore della priorità impostata al passaggio precedente. Ad esempio, se imposti la priorità per la regola che hai creato nel passaggio precedente a 990, prova a 980.
Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione
regole firewall, consulta le
documentazione relativa a gcloud compute firewall-rules create
.
Limitare l'accesso utilizzando le regole di uscita
I passaggi riportati di seguito mostrano come creare regole di uscita per limitare l'accesso del connettore.
Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti ruoli Identity and Access Management (IAM):
- Ruolo Compute Security Admin
- Ruolo IAM personalizzato con
compute.firewalls.create
autorizzazione abilitata
Rifiutare il traffico in uscita dal connettore.
Crea una regola firewall in uscita sul connettore di accesso VPC serverless per impedire l'invio di traffico in uscita, ad eccezione delle risposte stabilite, a qualsiasi destinazione.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
Sostituisci quanto segue:
RULE_NAME: il nome della nuova regola firewall. Ad esempio,
deny-vpc-connector
.PROTOCOL: uno o più protocolli che vuoi consentire dal tuo connettore VPC. I protocolli supportati sono
tcp
oudp
. Ad esempio,tcp:80,udp
consente il traffico TCP tramite la porta 80 e il traffico UDP. Per ulteriori informazioni, consulta la documentazione relativa al flagallow
.Per motivi di sicurezza e convalida, puoi anche configura regole di negazione per bloccare il traffico per i seguenti elementi non supportati protocolli:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore VPC universale se vuoi che la regola venga applicata a tutti i connettori VPC esistenti e a eventuali connettori VPC creati in futuro. In alternativa, il tag di rete del connettore VPC univoco se vuoi controllare un connettore specifico.
VPC_NETWORK: il nome della tua rete VPC
PRIORITY: un numero intero compreso tra 0 e 65535. Ad esempio, 0 imposta la priorità più elevata.
Consenti il traffico in uscita quando la destinazione è nell'intervallo CIDR desiderato al tuo connettore.
Utilizza i flag
allow
edestination-ranges
per creare una regola firewall consentendo il traffico in uscita dal connettore per un intervallo di destinazione specifico. Imposta l'intervallo di destinazione sull'intervallo CIDR della risorsa nella rete VPC a cui vuoi che il connettore possa accedere. Imposta la priorità per questa regola in modo che sia un valore inferiore alla priorità del che hai creato nel passaggio precedente.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
Sostituisci quanto segue:
RULE_NAME: il nome della nuova regola firewall. Ad esempio,
allow-vpc-connector-for-select-resources
.PROTOCOL: uno o più protocolli che vuoi consentire dal tuo connettore VPC. I protocolli supportati sono
tcp
oudp
. Ad esempio,tcp:80,udp
consente il traffico TCP attraverso la porta 80 e il traffico UDP. Per ulteriori informazioni, vedi la documentazione perallow
flag.RESOURCE_CIDR_RANGE: l'intervallo CIDR del connettore la cui accesso limitato
VPC_NETWORK: il nome della rete VPC
VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore VPC universale se vuoi che la regola venga applicata a tutti i connettori VPC esistenti e a eventuali connettori VPC creati in futuro. In alternativa, il tag di rete del connettore VPC univoco se vuoi controllare un connettore specifico. Se hai utilizzato l'attributo nel passaggio precedente, utilizza il tag di rete univoco.
PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola che hai creato nel passaggio precedente a 990, prova a 980.
Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di un firewall
di Google Cloud, fai riferimento
documentazione relativa a gcloud compute firewall-rules create
.
Gestisci il tuo connettore
Scollega una funzione da una rete VPC
Puoi scollegare una funzione dalla rete VPC utilizzando la console Google Cloud o Google Cloud CLI:
Console
Vai alla pagina Panoramica delle funzioni Cloud Run nella console Google Cloud:
Fai clic su una funzione esistente per accedere alla relativa pagina dei dettagli e poi su Modifica.
Espandi le impostazioni avanzate facendo clic su Runtime, build... (Runtime, build...).
Nella scheda Connessioni, sotto Impostazioni in uscita, inserisci il nome del tuo nel campo Connettore VPC oppure cancella i dati del campo per disconnettere la funzione da una rete VPC.
gcloud
Utilizza il parametro --clear-vpc-connector
per scollegare la funzione dalla rete VPC:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
dove:
FUNCTION_NAME
è il nome della funzione.CONNECTOR_NAME
è il nome del connettore.FLAGS...
si riferisce ad altre segnalazioni trasmesse durante deployment delle funzioni.
Gli addebiti continuano a essere applicati ai connettori anche se non generano traffico e sono disconnessi. Per maggiori dettagli, consulta la pagina dei prezzi. Se non hai più bisogno del connettore, assicurati di eliminarlo per evitare e continuare la fatturazione.
Aggiornare un connettore
Puoi aggiornare e monitorare i seguenti attributi del connettore utilizzando la console Google Cloud, Google Cloud CLI o l'API:
- Tipo di macchina (istanza)
- Numero minimo e massimo di istanze
- Utilizzo recente di throughput, numero di istanze e CPU
Aggiorna tipo di macchina
Console
Vai alla pagina di riepilogo Accesso VPC serverless.
Seleziona il connettore da modificare e fai clic su Modifica.
Nell'elenco Tipo di istanza, seleziona il tipo di macchina (istanza) preferito. Per informazioni sui tipi di macchine disponibili, consulta la documentazione su throughput e scalabilità.
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.
Per aggiornare il tipo di macchina del connettore, esegui questo comando terminale:
Sostituisci quanto segue:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
CONNECTOR_NAME
: il nome del connettoreREGION
: il nome della regione del connettoreMACHINE_TYPE
: il tipo di macchina che preferisci. Per informazioni sui tipi di macchine disponibili, consulta la documentazione su Throughput e scalabilità.
Riduci il numero minimo e massimo di istanze
Per ridurre il numero minimo e massimo di istanze, devi svolgere quanto segue:
- Crea un nuovo connettore con i valori che preferisci.
- Aggiorna il servizio o la funzione per utilizzare il nuovo connettore.
- Elimina il vecchio connettore dopo aver spostato il relativo traffico.
Consulta Creare un connettore di accesso VPC serverless per ulteriori informazioni.
Aumenta il numero minimo e massimo di istanze
Console
Vai alla pagina di riepilogo Accesso VPC serverless.
Seleziona il connettore da modificare e fai clic su Modifica.
Nel campo Numero minimo di istanze, seleziona il numero minimo che preferisci di di Compute Engine.
Il valore più piccolo possibile per questo campo è il valore corrente. Il valore possibile più elevato per questo campo è il valore corrente nel campo Istanze massime meno 1. Ad esempio, se il valore nel campo Il campo Numero massimo di istanze è 8, il valore più grande possibile per il valore Il campo Numero minimo di istanze è 7.
Nel campo Numero massimo di istanze, seleziona il numero massimo che preferisci. di Compute Engine.
Il valore più piccolo possibile per questo campo è il valore corrente. Il valore massimo possibile per questo campo è 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.
Per aumentare il numero minimo o massimo di istanze per il connettore, esegui il seguente comando nel terminale:
Sostituisci quanto segue:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
CONNECTOR_NAME
: il nome del connettoreREGION
: il nome della regione del connettoreMIN_INSTANCES
: il numero minimo che preferisci di di Compute Engine.- Il valore più piccolo possibile per questo campo è il valore corrente di
min_instances
. Per trovare il valore corrente, consulta Trovare i valori degli attributi attuali. - Il valore più grande possibile per questo campo è l'attuale
max_instances
meno 1, perchémin_instances
deve essere inferiore amax_instances
. Ad esempio, semax_instances
è 8, il valore più grande possibile è 7. Se il connettore utilizza il valore predefinitomax-instances
di 10, il valore massimo possibile di questo campo è 9. Per trovare il valore dimax-instances
, consulta Trovare i valori degli attributi correnti.
- Il valore più piccolo possibile per questo campo è il valore corrente di
MAX_INSTANCES
:- Il valore più piccolo possibile per questo campo è il valore corrente
max_instances
. Per trovare il valore corrente, consulta Trova i valori degli attributi correnti. - Il valore massimo possibile per questo campo è 10.
Se vuoi aumentare solo il numero minimo di istanze, ma non il numero massimo, devi comunque specificare il numero massimo di istanze. Al contrario, se vuoi aggiornare solo il numero massimo di istanze, ma non il numero minimo, devi comunque specificare il numero minimo di istanze. Per mantenere invariato il numero minimo o massimo di istanze, specifica il valore corrente. Per trovare il valore corrente, consulta Trovare i valori degli attributi attuali.
- Il valore più piccolo possibile per questo campo è il valore corrente
Trovare i valori degli attributi correnti
Per trovare i valori degli attributi correnti per il connettore, esegui quanto segue in il tuo terminale:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
CONNECTOR_NAME
: il nome del tuo connettoreREGION
: il nome della regione del connettorePROJECT
: il nome del tuo progetto Google Cloud
Monitorare l'utilizzo dei connettori
Il monitoraggio dell'utilizzo nel tempo può aiutarti a determinare quando regolare impostazioni. Ad esempio, se si verificano picchi di utilizzo della CPU, potresti provare ad aumentare il numero massimo di istanze per ottenere risultati migliori. O se stai raggiungendo il limite effettiva, potresti decidere di passare a un tipo di macchina più grande.
Visualizzare i grafici relativi a velocità effettiva, numero di istanze e CPU del connettore di utilizzo delle metriche nel tempo usando la console Google Cloud:
Vai alla pagina di riepilogo Accesso VPC serverless.
Fai clic sul nome del connettore da monitorare.
Seleziona il numero di giorni che vuoi visualizzare tra 1 e 90.
Nel grafico Velocità effettiva, passa il mouse sopra il grafico per visualizzare con una velocità effettiva recente.
Nel grafico Numero di istanze, passa il mouse sopra il grafico per visualizzare il numero di istanze utilizzate di recente dal connettore.
Nel grafico Utilizzo della CPU, passa il mouse sopra il grafico per visualizzare l'utilizzo della CPU recente del connettore. Il grafico mostra l'utilizzo della CPU distribuito tra le istanze per il 50°, 95° e 99° percentile.
Eliminare un connettore
Prima di eliminare un connettore, assicurati che nessun servizio o job sia ancora a essa connesso.
Per gli utenti del VPC condiviso che configurano i connettori nella rete VPC condivisa
progetto host, puoi utilizzare il comando
gcloud compute networks vpc-access connectors describe
per elencare i progetti in cui sono presenti servizi o job che utilizzano
di rete.
Per eliminare un connettore, utilizza la console Google Cloud o Google Cloud CLI:
Console
Vai alla pagina di panoramica di Accesso VPC serverless nella console Google Cloud:
Seleziona il connettore da eliminare.
Fai clic su Elimina.
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.
Utilizza il seguente comando
gcloud
per eliminare un connettore:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
Sostituisci quanto segue:
- CONNECTOR_NAME con il nome del connettore da eliminare
- REGION con la regione in cui si trova il connettore
Risoluzione dei problemi
Autorizzazioni account di servizio
Per eseguire operazioni nel tuo progetto Google Cloud, L'accesso VPC serverless utilizza Account di servizio dell'agente di servizio di accesso VPC serverless. L'indirizzo email di questo account di servizio ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
Per impostazione predefinita, questo account di servizio ha
Ruolo Agente di servizio di accesso VPC serverless
(roles/vpcaccess.serviceAgent
). Accesso VPC serverless
operazioni potrebbero non riuscire se modifichi le autorizzazioni di questo account.
Prestazioni di rete scadenti o utilizzo elevato della CPU inattiva
L'utilizzo di un singolo connettore per migliaia di istanze può causare prestazioni il peggioramento e l'aumento dell'utilizzo della CPU inattiva. Per risolvere il problema, esegui lo sharding dei tuoi servizi tra più connettori.
Errori
Errore: all'account di servizio serve il ruolo Agente di servizio
Se usi l'opzione Limita l'utilizzo del servizio risorse
vincolo dei criteri dell'organizzazione
per bloccare Cloud Deployment Manager (deploymentmanager.googleapis.com
),
potrebbe essere visualizzato il seguente messaggio di errore:
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
Imposta il criterio dell'organizzazione per rimuovere Deployment Manager dalla lista di blocco o aggiungerlo alla lista consentita.
Errore durante la creazione del connettore
Se la creazione di un connettore genera un errore, prova a procedere nel seguente modo:
- Specifica una specifica RFC 1918 intervallo IP interno che non si sovrappone ad alcun indirizzo IP esistente delle tue risorse nella rete VPC.
- Concedi al tuo progetto l'autorizzazione a utilizzare le immagini VM di Compute Engine dal progetto con ID
serverless-vpc-access-images
. Per ulteriori informazioni come aggiornare i criteri dell'organizzazione di conseguenza, vedi Imposta i vincoli di accesso alle immagini.
Impossibile accedere alle risorse
Se hai specificato un connettore, ma non riesci ancora ad accedere alle risorse nella rete VPC, assicurati che nella rete VPC non siano presenti regole firewall con una priorità inferiore a 1000 che negano l'ingresso dall'intervallo di indirizzi IP del connettore.
Se configuri un connettore in un progetto di servizio VPC condiviso, assicurati che le regole del firewall consentano l'ingresso dall'infrastruttura serverless al connettore.
Errore di connessione rifiutata
Se ricevi errori connection refused
o connection timeout
che riducono le prestazioni della rete, le connessioni potrebbero aumentare senza limiti tra le chiamate dell'applicazione serverless. Per limitare il numero massimo di connessioni utilizzate per istanza, utilizza una libreria client che supporti i pool di connessioni. Per esempi dettagliati su come utilizzare i pool di connessioni, consulta
Gestire le connessioni ai database.
Errore di risorsa non trovata
Quando elimini una rete VPC o una regola firewall, potresti vedere
un messaggio simile al seguente: The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
Per informazioni su questo errore e sulla relativa soluzione, consulta Errore: risorsa non trovata nella documentazione delle regole firewall VPC.
Autorizzazione vpcaccess.connectors.use necessaria per l'account di servizio mancante...
Innanzitutto, assicurati che il ruolo roles/vpcaccess.user
sia assegnato all'account di servizio.
Se continui a riscontrare problemi di autorizzazione con il connettore VPC, controlla se è di fatto un VPC condiviso. In questo caso, è necessaria una configurazione aggiuntiva nel progetto host.
Passaggi successivi
- Connettersi a Memorystore dalle funzioni di Cloud Run.
- Configura le impostazioni di rete per le funzioni di Cloud Run.
- Monitorare l'attività di amministrazione con Audit logging degli accessi VPC serverless.
- Proteggi le risorse e i dati creando un perimetro di servizio con Controlli di servizio VPC.
- Scopri di più su Identity and Access Management (IAM) ruoli associati all'accesso VPC serverless. Consulta: Accesso VPC serverless ruoli nel nella documentazione IAM per un elenco di autorizzazioni associate per ogni ruolo.