Connessione a una rete VPC
Questa pagina mostra come utilizzare l'accesso VPC serverless per connettere Cloud Functions direttamente alla tua rete VPC, consentendo l'accesso alle istanze VM di 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 un VPC condiviso, fornisci l'accesso al connettore e consulta Connessione a una rete VPC condivisa.
Nella console Google Cloud, assicurati che l'API accesso VPC serverless sia 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.
Puoi creare un connettore utilizzando la console Google Cloud, Google Cloud CLI o Terraform.
Console
Vai alla pagina di riepilogo dell'accesso VPC serverless.
Fai clic su Crea connettore.
Nel campo Nome, inserisci un nome per il connettore. Questa deve essere in conformità con la convenzione di denominazione di Compute Engine, con l'ulteriore limitazione pari a meno di 21 caratteri con trattini (-) che vengono conteggiati come due caratteri.
Nel campo Regione, seleziona una regione per il connettore. Deve corrispondere alla regione del servizio serverless.
Se il servizio o il 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.
Fai clic sul menu Subnet. Ogni connettore richiede la propria subnet
/28
in cui inserire le istanze del connettore. Una subnet non può essere utilizzata da altre risorse come VM, Private Service Connect o bilanciatori del carico.Se utilizzi un VPC condiviso, che richiede l'utilizzo di una tua subnet, seleziona una subnet
/28
inutilizzata. Per verificare che la subnet non sia utilizzata per Private Service Connect o Cloud Load Balancing, verifica che la subnetpurpose
siaPRIVATE
eseguendo questo comando nellgcloud CLI:gcloud compute networks subnets describe SUBNET_NAME
Sostituisci:- SUBNET_NAME: il nome della subnet
Se non utilizzi il VPC condiviso, crea una subnet per il connettore oppure fai in modo che quest'ultimo crei una subnet selezionando Intervallo IP personalizzato dal menu.
Nel campo Intervallo IP, inserisci il primo indirizzo in un intervallo IP interno
/28
di CIDR non prenotato. Questo intervallo IP non deve sovrapporsi ad alcuna prenotazione di indirizzi IP esistenti nella tua rete VPC. Ad esempio,10.8.0.0
(/28
) funzionerà nella maggior parte dei nuovi progetti.La subnet creata è nascosta e non può essere utilizzata nelle regole firewall e nelle configurazioni NAT.
Scopri quali intervalli IP sono attualmente prenotati nella console Google Cloud.
Scopri di più sull'utilizzo delle subnet.
(Facoltativo) Per impostare le opzioni di scalabilità per un controllo aggiuntivo sul connettore, fai clic su Mostra impostazioni di scalabilità per visualizzare il modulo di scalabilità.
- Imposta il numero minimo e massimo di istanze per il connettore oppure utilizza i valori predefiniti, ovvero 2 (min) e 10 (max). Lo scale out del connettore viene ridotto al valore massimo specificato se l'utilizzo del traffico lo richiede, ma il connettore non esegue lo scale in 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 oppure utilizza il valore predefinito
e2-micro
. Osserva la barra laterale dei costi, a destra, quando scegli il tipo di istanza, che mostra le stime della larghezza di banda e dei costi.
- Imposta il numero minimo e massimo di istanze per il connettore oppure utilizza i valori predefiniti, ovvero 2 (min) e 10 (max). Lo scale out del connettore viene ridotto al valore massimo specificato se l'utilizzo del traffico lo richiede, ma il connettore non esegue lo scale in quando il traffico diminuisce.
Devi utilizzare valori compresi tra
Fai clic su Crea.
Quando il connettore è pronto per l'uso, verrà visualizzato un segno di spunta verde accanto al nome.
gcloud
-
In Google Cloud Console, attiva Cloud Shell.
Nella parte inferiore di Google Cloud Console, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
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
Se utilizzi un VPC condiviso, che richiede l'utilizzo di una tua subnet, crea un connettore con il seguente comando:
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
Sostituisci quanto segue:
CONNECTOR_NAME
: un nome per il connettore. Questo deve essere conforme alla convenzione di denominazione di Compute Engine, con l'ulteriore limitazione che deve essere inferiore a 21 caratteri con trattini (-) che vengono conteggiati come due caratteri.REGION
: una regione per il connettore; deve corrispondere alla regione del servizio o job serverless. Se il servizio o il job si trova nella regioneus-central
oeurope-west
, utilizzaus-central1
oeurope-west1
.SUBNET
: il nome di una subnet/28
inutilizzata.- Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzati da altre risorse come VM, Private Service Connect o bilanciatori del carico.
- Per confermare che la subnet non sia utilizzata per Private Service Connect o Cloud Load Balancing, verifica che la subnet
purpose
siaPRIVATE
eseguendo questo comando nellgcloud CLI:gcloud compute networks subnets describe SUBNET_NAME
Sostituisci:- SUBNET_NAME: il nome della subnet.
- Scopri di più sull'utilizzo delle subnet.
HOST_PROJECT_ID
: l'ID del progetto host; forniscilo solo se utilizzi il VPC condiviso.MIN
: il numero minimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra2
e9
. Il valore predefinito è2
. Per saperne di più sulla scalabilità del connettore, consulta Velocità effettiva e scalabilità.MAX
: il numero massimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra3
e10
. Il valore predefinito è10
. Se il traffico lo richiede, il connettore esegue lo scale out a[MAX]
istanze, ma non lo scale back. Per saperne di più sulla scalabilità del connettore, consulta Velocità effettiva e scalabilità.MACHINE_TYPE
:f1-micro
,e2-micro
oe2-standard-4
. Per saperne di più sulla velocità effettiva del connettore, inclusi il tipo di macchina e la scalabilità, consulta Velocità effettiva e scalabilità.
Per ulteriori dettagli e argomenti facoltativi, consulta le informazioni di riferimento di
gcloud
.Se non utilizzi il VPC condiviso e vuoi fornire un intervallo IP personalizzato invece di utilizzare una subnet esistente, crea un connettore con il seguente comando:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --network VPC_NETWORK \ --region REGION \ --range IP_RANGE
Sostituisci quanto segue:
CONNECTOR_NAME
: un nome per il connettore. Questa deve essere conforme alla convenzione di denominazione di Compute Engine, con l'ulteriore limitazione che deve essere inferiore a 21 caratteri con trattini (-
) conteggiati come due caratteri.VPC_NETWORK
: la rete VPC a cui collegare il connettore.REGION
: una regione per il connettore. Deve corrispondere alla regione del servizio o job serverless. Se il servizio o il job si trova nell'area geograficaus-central
oeurope-west
, utilizzaus-central1
oeurope-west1
.IP_RANGE
: sono richiesti una rete IP interna non prenotata e/28
di spazio non allocato. Il valore fornito è la rete con notazione CIDR (10.8.0.0/28
). Questo intervallo IP non deve sovrapporsi ad alcuna prenotazione di indirizzi IP esistente nella rete VPC. Ad esempio,10.8.0.0/28
funziona nella maggior parte dei nuovi progetti. La subnet creata per questo intervallo è nascosta e non può essere utilizzata nelle regole firewall e nelle configurazioni NAT.
Per ulteriori dettagli e argomenti facoltativi come i controlli della velocità effettiva, consulta la documentazione di riferimento
gcloud
.Verifica che il connettore sia nello stato
READY
prima di utilizzarlo:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
Sostituisci quanto segue:
CONNECTOR_NAME
: il nome del connettore; si tratta del nome specificato nel passaggio precedente.REGION
: la regione del connettore; è quella 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 e una subnet VPC e quindi creare il connettore.
Configura la funzione per connetterti a una rete VPC
Devi configurare ogni funzione in modo da utilizzare un connettore di accesso VPC serverless per connetterti alla tua rete VPC e inviare il traffico in uscita. Puoi configurare una funzione per utilizzare un connettore dalla console Google Cloud o da 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 e poi su Modifica.
Se stai configurando una nuova funzione, compila la pagina iniziale delle impostazioni 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 traffico in 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 o seleziona Personalizzato per utilizzare un connettore esistente non visualizzato nell'elenco a discesa.
- Per creare un nuovo connettore, seleziona Aggiungi nuovo connettore VPC. (Anteprima)
Consulta Creazione di un connettore di accesso VPC serverless per i dettagli sulla creazione di un connettore.
Tocca Avanti.
gcloud
Utilizza il comando gcloud functions deploy
per eseguire il deployment della funzione e specificare il flag --vpc-connector
:
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 altri flag trasmessi durante il deployment delle funzioni.
Utilizza il flag --clear-vpc-connector
per scollegare la funzione da una rete VPC:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
Per un maggiore controllo sulle richieste instradate attraverso il connettore, consulta Impostazioni del traffico in uscita.
Accesso alle risorse VPC
Consenti il traffico in entrata dall'infrastruttura serverless al connettore
Le VM del connettore devono essere in grado di ricevere pacchetti dall'intervallo di indirizzi IP esterni di Google Cloud 35.199.224.0/19
. Questo intervallo viene utilizzato dall'infrastruttura serverless di Google sottostante per garantire che i servizi di Cloud Run, Cloud Functions e App Engine possano inviare pacchetti al connettore.
L'accesso VPC serverless crea una regola firewall di autorizzazione in entrata che si applica alle VM del connettore consentendo i pacchetti da 35.199.224.0/19
quando il connettore si trova nello stesso progetto della rete VPC che sceglie come target. Il connettore e la relativa rete VPC di destinazione si trovano nello stesso progetto quando o il connettore ha come target una rete VPC autonoma oppure quando il connettore ha come target una rete VPC condiviso e il connettore si trova nel progetto host.
Se crei un connettore in un progetto di servizio VPC condiviso, un amministratore della sicurezza o un proprietario del progetto per il progetto host del VPC condiviso deve creare una regola firewall di autorizzazione in entrata applicabile alle VM del connettore che consentono l'invio di pacchetti da 35.199.224.0/19
. Di seguito è riportato un esempio di regola firewall VPC Consenti in entrata:
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
Sostituisci quanto segue:
- RULE_NAME: il nome della nuova regola firewall. Ad esempio,
allow-vpc-connector-ingress
. - VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale
vpc-connector
può essere utilizzato per applicare la regola a tutti i connettori nella rete VPC. In alternativa, puoi utilizzare un tag di rete specifico per il connettore. Il tag di rete specifico ha il seguente formato:vpc-connector-
REGION-
CONNECTOR_NAME, dove REGION è la regione Google Cloud del connettore e CONNECTOR_NAME è il suo nome. - VPC_NETWORK: il nome della rete VPC target del connettore.
- PRIORITY: un numero intero compreso tra 0 e 65535. Ad esempio, 0 imposta la priorità massima.
- PROJECT_ID: l'ID del progetto che contiene la rete VPC di destinazione del connettore.
Limita le risorse di rete VPC dell'accesso alle VM del connettore
Puoi limitare l'accesso del connettore alle risorse nella rete VPC di destinazione utilizzando le regole firewall di VPC o le regole nei criteri firewall. Puoi applicare queste restrizioni utilizzando una delle seguenti strategie:
- Crea regole in entrata le cui destinazioni rappresentano le risorse alle quali vuoi limitare l'accesso alle VM del connettore e le cui origini rappresentano le VM del connettore.
- Crea regole in uscita le cui destinazioni rappresentano le VM del connettore e le cui destinazioni rappresentano le risorse a cui vuoi limitare l'accesso alle VM del connettore.
I seguenti esempi illustrano ciascuna strategia.
Limita l'accesso utilizzando le regole in entrata
Scegli tag di rete o intervalli CIDR per controllare il traffico in entrata alla tua rete VPC.
Tag di rete
I passaggi seguenti mostrano come creare regole in entrata che limitano l'accesso di un connettore alla rete VPC in base ai tag di rete 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 Amministratore sicurezza Compute
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
abilitata
Nega il traffico del connettore attraverso la rete VPC.
Crea una regola firewall in entrata con priorità inferiore a 1000 sulla rete VPC per negare il traffico in entrata dal tag di rete del connettore. Questa operazione sostituisce la regola firewall implicita creata per impostazione predefinita dall'accesso VPC serverless sulla rete VPC.
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, consulta la documentazione relativa al flagallow
.Per motivi di sicurezza e convalida, puoi anche configurare regole di negazione per bloccare il traffico per i seguenti protocolli non supportati:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi quelli creati in futuro) oppure il tag di rete univoco se vuoi limitare l'accesso a 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 desideri limitare
Per ulteriori informazioni sui tag di rete del connettore, consulta Tag di rete.
- Tag di rete universale:
VPC_NETWORK: il nome della tua rete VPC
PRIORITY: un numero intero compreso tra 0 e 65535. Ad esempio, 0 imposta la priorità massima.
Consenti il traffico del connettore verso la risorsa che deve ricevere il traffico del connettore.
Utilizza i flag
allow
etarget-tags
per creare una regola firewall in entrata che abbia come target la risorsa della tua rete VPC a cui vuoi che il connettore VPC acceda. Imposta la priorità per questa regola in modo che sia un valore inferiore alla priorità della regola specificata nel 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 attraverso la porta 80 e il traffico UDP. Per ulteriori informazioni, consulta la documentazione relativa al flagallow
.VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi quelli creati in futuro) oppure il tag di rete univoco se vuoi limitare l'accesso a un connettore specifico. Deve corrispondere al tag di 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 desideri limitare
Per ulteriori informazioni sui tag di rete del connettore, consulta Tag di rete.
- Tag di rete universale:
VPC_NETWORK: il nome della tua rete VPC
RESOURCE_TAG: il tag di rete per la risorsa VPC a cui vuoi che acceda il connettore VPC
PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità della regola creata nel passaggio precedente su 990, prova la 980.
Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione delle regole firewall, consulta la documentazione per gcloud compute firewall-rules create
.
Intervallo CIDR
I passaggi seguenti mostrano come creare regole in entrata 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 firewall. Devi disporre di uno dei seguenti ruoli Identity and Access Management (IAM):
- Ruolo Amministratore sicurezza Compute
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
abilitata
Nega il traffico del connettore attraverso la rete VPC.
Crea una regola firewall in entrata con priorità inferiore a 1000 sulla rete VPC per negare il traffico in entrata dall'intervallo CIDR del connettore. Questa operazione sostituisce la regola firewall implicita creata per impostazione predefinita dall'accesso VPC serverless sulla rete VPC.
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 negazione per bloccare il traffico per i seguenti protocolli non supportati:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR per il connettore il cui accesso stai limitando
VPC_NETWORK: il nome della tua rete VPC
PRIORITY: un numero intero compreso tra 0 e 65535. Ad esempio, 0 imposta la priorità massima.
Consenti il traffico del connettore verso la risorsa che deve ricevere il traffico del connettore.
Utilizza i flag
allow
etarget-tags
per creare una regola firewall in entrata che abbia come target la risorsa della tua rete VPC a cui vuoi che il connettore VPC acceda. Imposta la priorità per questa regola in modo che sia un valore inferiore alla priorità della regola specificata nel 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, consulta la documentazione relativa al flagallow
.VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR per il connettore di cui stai limitando l'accesso
VPC_NETWORK: il nome della tua rete VPC
RESOURCE_TAG: il tag di rete per la risorsa VPC a cui vuoi che acceda il connettore VPC
PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità della regola creata nel passaggio precedente su 990, prova la 980.
Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione delle regole firewall, consulta la documentazione per gcloud compute firewall-rules create
.
Limitare l'accesso utilizzando le regole in uscita
I passaggi seguenti mostrano come creare regole in uscita per limitare l'accesso al connettore.
Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi avere uno dei seguenti ruoli Identity and Access Management (IAM):
- Ruolo Amministratore sicurezza Compute
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
abilitata
Nega il traffico in uscita dal connettore.
Crea una regola firewall in uscita sul connettore di accesso VPC serverless per impedire che invii il traffico in uscita a qualsiasi destinazione, ad eccezione delle risposte stabilite.
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 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 negazione per bloccare il traffico per i seguenti protocolli non supportati:
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 qualsiasi connettore VPC creato in futuro. o il tag di rete univoco del connettore VPC, 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à massima.
Consenti il traffico in uscita quando la destinazione si trova nell'intervallo CIDR a cui vuoi che il connettore acceda.
Utilizza i flag
allow
edestination-ranges
per creare una regola firewall che consenta il traffico in uscita dal connettore verso 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à della regola specificata 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 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
.RESOURCE_CIDR_RANGE: l'intervallo CIDR per il connettore di cui stai limitando l'accesso
VPC_NETWORK: il nome della tua 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 qualsiasi connettore VPC creato in futuro. o il tag di rete univoco del connettore VPC, se vuoi controllare un connettore specifico. Se nel passaggio precedente hai utilizzato il tag di rete univoco, utilizza il tag di rete univoco.
PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità della regola creata nel passaggio precedente su 990, prova la 980.
Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione delle regole firewall, consulta la documentazione per gcloud compute firewall-rules create
.
Gestisci il connettore
Scollegare una funzione da una rete VPC
Puoi disconnettere una funzione dalla tua rete VPC utilizzando la console Google Cloud o Google Cloud CLI:
Console
Vai alla pagina di riepilogo di Cloud Functions nella console Google Cloud:
Fai clic su una funzione esistente per andare alla relativa pagina dei dettagli, quindi fai clic su Modifica.
Espandi le impostazioni avanzate facendo clic su Runtime, build....
Nella scheda Connessioni, in Impostazioni traffico in uscita, inserisci il nome del connettore nel campo Connettore VPC oppure cancella il campo del campo per scollegare la funzione da una rete VPC.
gcloud
Utilizza il flag --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 altri flag trasmessi durante il deployment delle funzioni.
I connettori continuano a essere addebitati anche se non hanno traffico e sono disconnessi. Per maggiori dettagli, vedi i prezzi. Se non hai più bisogno del connettore, assicurati di eliminarlo per evitare la fatturazione continua.
Aggiorna un connettore
Puoi aggiornare 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
Aggiorna tipo di macchina
Console
Vai alla pagina di riepilogo dell'accesso VPC serverless.
Seleziona il connettore da modificare e fai clic su Modifica.
La pagina dei dettagli del connettore mostra i grafici relativi alla velocità effettiva, al numero di istanze e alle metriche di utilizzo della CPU del connettore.
Nell'elenco Tipo di istanza, seleziona il tipo di macchina (istanza) preferita. Per ulteriori informazioni sui tipi di macchine disponibili, consulta la documentazione su Velocità effettiva e scalabilità.
gcloud
-
In Google Cloud Console, attiva Cloud Shell.
Nella parte inferiore di Google Cloud Console, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Per aggiornare il tipo di macchina del connettore, esegui questo comando nel terminale:
gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
Sostituisci quanto segue:CONNECTOR_NAME
: il nome del connettoreREGION
: il nome della regione del connettoreMACHINE_TYPE
: il tipo di macchina che preferisci. Per saperne di più sui tipi di macchine disponibili, consulta la documentazione su Velocità effettiva e scalabilità.
Riduci il numero minimo e massimo di istanze
Per ridurre il numero minimo e massimo di istanze, devi:
- Crea un nuovo connettore con i tuoi valori preferiti.
- Aggiorna il servizio o la funzione per utilizzare il nuovo connettore.
- Elimina il vecchio connettore dopo aver spostato il suo traffico.
Per ulteriori informazioni, consulta Creare un connettore di accesso VPC serverless.
Aumenta il numero minimo e massimo di istanze
Console
Vai alla pagina di riepilogo dell'accesso VPC serverless.
Seleziona il connettore da modificare e fai clic su Modifica.
Nel campo Numero minimo di istanze, seleziona il numero minimo di istanze che preferisci.
Il valore più piccolo possibile per questo campo è il valore corrente. Il valore più grande possibile per questo campo è il valore corrente nel campo Numero massimo di istanze meno 1. Ad esempio, se il valore nel campo Numero massimo di istanze è 8, il valore massimo possibile per il campo Istanze minime è 7.
Nel campo Numero massimo di istanze, seleziona il numero massimo di istanze che preferisci.
Il valore più piccolo possibile per questo campo è il valore corrente. Il valore più grande possibile per questo campo è 10.
gcloud
-
In Google Cloud Console, attiva Cloud Shell.
Nella parte inferiore di Google Cloud Console, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Per aumentare il numero minimo o massimo di istanze per il connettore, esegui questo comando nel terminale:
gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
Sostituisci quanto segue:
CONNECTOR_NAME
: il nome del connettoreREGION
: il nome della regione del connettoreMIN_INSTANCES
: il numero minimo di istanze che preferisci.- 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 valore
max_instances
meno 1, perchémin_instances
deve essere minore dimax_instances
. Ad esempio, semax_instances
è 8, il valore massimo possibile per questo campo è 7. Se il connettore utilizza il valoremax-instances
predefinito di 10, il valore massimo possibile per questo campo è 9. Per trovare il valore dimax-instances
, consulta Trovare i valori degli attributi attuali.
- 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 di
max_instances
. Per trovare il valore corrente, consulta Trovare i valori degli attributi attuali. - 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 il numero minimo o massimo di istanze al valore attuale, specifica il valore attuale. Per trovare il loro valore attuale, consulta Trovare i valori degli attributi attuali.
- Il valore più piccolo possibile per questo campo è il valore corrente di
Trova i valori attuali degli attributi
Per trovare i valori degli attributi attuali per il tuo connettore, esegui questo comando nel terminale:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECTSostituisci quanto segue:
CONNECTOR_NAME
: il nome del connettoreREGION
: il nome della regione del connettorePROJECT
: il nome del tuo progetto Google Cloud
Elimina un connettore
Prima di eliminare un connettore, assicurati che a quel connettore non ci siano ancora servizi o job.
Per gli utenti del VPC condiviso che hanno configurato i connettori nel progetto host del VPC condiviso, puoi utilizzare il comando gcloud compute networks vpc-access connectors describe
per elencare i progetti in cui sono presenti servizi o job che utilizzano un determinato connettore.
Per eliminare un connettore, utilizza la console Google Cloud o Google Cloud CLI:
Console
Vai alla pagina di riepilogo dell'accesso VPC serverless nella console Google Cloud:
Seleziona il connettore da eliminare.
Fai clic su Elimina.
gcloud
-
In Google Cloud Console, attiva Cloud Shell.
Nella parte inferiore di Google Cloud Console, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
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 l'area geografica in cui si trova il connettore
Risolvere i problemi
Autorizzazioni account di servizio
Per eseguire operazioni nel progetto Google Cloud, l'accesso VPC serverless utilizza l'account di servizio Agente di servizio 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 dispone del ruolo Agente di servizio accesso VPC serverless (roles/vpcaccess.serviceAgent
). Le operazioni di accesso VPC serverless potrebbero non riuscire se modifichi le autorizzazioni di questo account.
Errori
Errore del ruolo Agente di servizio per l'account di servizio
Se utilizzi il vincolo del criterio dell'organizzazione Limita l'utilizzo del servizio delle risorse per bloccare Cloud Deployment Manager (deploymentmanager.googleapis.com
), potresti visualizzare 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 bloccata o aggiungerlo alla lista consentita.
Errore di creazione del connettore
Se la creazione di un connettore genera un errore, prova quanto segue:
- Specifica un intervallo IP interno RFC 1918 che non si sovrapponga ad alcuna prenotazione di indirizzi IP esistente nella rete VPC.
- Concedi al progetto l'autorizzazione per utilizzare le immagini VM di Compute Engine dal progetto con ID
serverless-vpc-access-images
. Per saperne di più su come aggiornare il criterio dell'organizzazione di conseguenza, consulta Impostare i vincoli di accesso alle immagini.
Impossibile accedere alle risorse
Se hai specificato un connettore, ma non riesci comunque ad accedere alle risorse della tua rete VPC, assicurati che sulla rete VPC non siano presenti regole firewall con priorità inferiore a 1000 che negano il traffico in entrata dall'intervallo di indirizzi IP del connettore.
Errore di connessione rifiutata
Se ricevi errori connection refused
che riducono le prestazioni della rete, è possibile che le connessioni aumentino senza limiti per le chiamate alla tua 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, vedi Gestire le connessioni ai database.
Errore di risorsa non trovata
Quando elimini una rete VPC o una regola firewall, potresti visualizzare 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 sulle regole firewall VPC.
Autorizzazione vpcaccess.connectors.use necessaria mancante per l'account di servizio...
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 si tratta effettivamente di un VPC condiviso. In questo caso, è necessaria una configurazione aggiuntiva sul progetto host.
Passaggi successivi
- Connettiti a Memorystore da Cloud Functions.
- Configura le impostazioni di rete per Cloud Functions.
- Monitora l'attività di amministrazione con l'audit logging dell'accesso VPC serverless.
- Proteggi risorse e dati creando un perimetro di servizio con i Controlli di servizio VPC.
- Scopri di più sui ruoli Identity and Access Management (IAM) associati all'accesso VPC serverless. Consulta i ruoli di accesso VPC serverless nella documentazione IAM per un elenco delle autorizzazioni associate a ciascun ruolo.