Puoi consentire al servizio o al job Cloud Run di inviare traffico a una rete VPC configurando un connettore di accesso VPC serverless.
Prima di iniziare
Se non hai ancora una rete VPC nel progetto, creane una.
Se utilizzi VPC condiviso, consulta Connessione a una rete VPC condivisa.
Nella console Google Cloud, assicurati che l'API Accesso VPC serverless sia abilitata per il tuo progetto.
Ogni connettore di accesso VPC serverless richiede una propria subnet
/28
per posizionare le istanze del connettore. Questa subnet non deve includere altre risorse oltre al connettore. Se non utilizzi la VPC condiviso, puoi creare una subnet da utilizzare per il connettore o specificare un intervallo IP personalizzato non utilizzato per consentire al connettore di creare una subnet da utilizzare. Se scegli l'intervallo IP personalizzato, la subnet creata è nascosta e non può essere utilizzata nelle regole firewall e nelle configurazioni NAT.
Crea connettore
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 una rete VPC condiviso, il connettore e la rete VPC associata si trovano in progetti diversi. Quando un connettore e la relativa rete VPC si trovano in progetti diversi, un amministratore della rete VPC condiviso deve creare la subnet del connettore nella rete VPC condiviso prima che tu possa creare il connettore e devi creare il connettore utilizzando una subnet esistente.
Per scoprire di più sui requisiti delle subnet, consulta i requisiti delle subnet dei connettori.
Per informazioni sulla velocità effettiva del connettore, inclusi il tipo di macchina e la scalabilità, consulta Velocità effettiva e scalabilità.
Puoi creare un connettore utilizzando la console Google Cloud, Google Cloud CLI o Terraform.
Console
Vai alla pagina Panoramica di 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 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.
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 nel campo Subnet. Poi, inserisci il primo indirizzo in un
/28
CIDR non utilizzato (ad esempio10.8.0.0/28
) da utilizzare come intervallo di indirizzi IPv4 primario di una nuova subnet creata da Google Cloud nella rete VPC del connettore. 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 ridimensionamento per un maggiore controllo sul connettore, fai clic su Mostra impostazioni di ridimensionamento per visualizzare il modulo di ridimensionamento.
- Imposta il numero minimo e massimo di istanze per il connettore oppure utilizza i valori predefiniti, ovvero 2 (min) e 10 (max). Il connettore viene scalato fino al valore massimo specificato se l'utilizzo del traffico lo richiede, ma non viene scalato 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 utilizza i valori predefiniti, ovvero 2 (min) e 10 (max). Il connettore viene scalato fino al valore massimo specificato se l'utilizzo del traffico lo richiede, ma non viene scalato quando il traffico diminuisce. Devi utilizzare valori compresi tra
Fai clic su Crea.
Quando è pronto per l'uso, accanto al nome del connettore 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 servizio o il job si trova inus-central
oeurope-west
, utilizzaus-central1
oeurope-west1
.SUBNET_NAME
: il nome della subnet esistente.HOST_PROJECT_ID
: l'ID progetto dell'host VPC condiviso. Se il connettore e la sottorete 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 regione del servizio o del job serverless. Se il servizio o il job si trova inus-central
oeurope-west
, utilizzaus-central1
oeurope-west1
.VPC_NETWORK
: il nome della rete VPC 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 sia in conflitto con eventuali route esistenti nella rete VPC del connettore. 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
(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
.
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, ovvero la 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 e una subnet VPC, quindi creare il connettore.
Configurare il servizio
Puoi configurare il servizio Cloud Run in modo da utilizzare un connettore di accesso VPC serverless per l'invio del traffico in uscita. Puoi farlo utilizzando la console Google Cloud, Google Cloud CLI o il file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Networking.
-
Nel campo Rete, scegli una delle seguenti opzioni dal menu:
- Per scollegare il servizio 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 mostrato nell'elenco a discesa.
- Per creare un nuovo connettore, seleziona Aggiungi nuovo connettore VPC. Per informazioni dettagliate sulla creazione di un connettore, consulta Creare un connettore di accesso VPC serverless.
- Per Routing del traffico, seleziona una delle seguenti opzioni:
- Instrada al VPC solo richieste a IP privati per inviare solo trafico agli indirizzi interni tramite la rete VPC.
- Instrada tutto il traffico al VPC per inviare tutto il traffico in uscita tramite la rete VPC.
-
Nel campo Rete, scegli una delle seguenti opzioni dal menu:
Fai clic su Crea o Esegui il deployment.
gcloud
Per specificare un connettore durante il deployment, utilizza il flag --vpc-connector
:
gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
Sostituisci:
SERVICE
con il nome del servizio.- IMAGE_URL con un riferimento all'immagine del container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. CONNECTOR_NAME
con il nome del connettore.
Per collegare, aggiornare o rimuovere un connettore per un servizio esistente, utilizza il comando
gcloud run services update
con uno dei seguenti flag, a seconda delle esigenze:
Ad esempio, per collegare o aggiornare un connettore:
gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
Sostituisci:
SERVICE
con il nome del servizio.CONNECTOR_NAME
con il nome del connettore.
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiungi o aggiorna l'attributo
run.googleapis.com/vpc-access-connector
nell'attributoannotations
nell'attributo di primo livellospec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME name: REVISION
Sostituisci:
- SERVICE con il nome del servizio Cloud Run.
- CONNECTOR_NAME con il nome del connettore.
- REVISION con un nuovo nome della revisione o eliminala (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Deve contenere solo lettere minuscole, numeri e
-
- Non termina con
-
- Non deve superare i 63 caratteri
- Inizia con
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Puoi utilizzare una risorsa Terraform per creare un servizio e configurarlo in modo da utilizzare il connettore.
Configura il job
Dopo aver creato un connettore di accesso VPC serverless, puoi configurare il job Cloud Run in modo che lo utilizzi. Puoi farlo utilizzando la console Google Cloud, Google Cloud CLI o YAML quando crei un nuovo job:
Console
Nella console Google Cloud, vai alla pagina dei job Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Job per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, selezionalo e fai clic su Modifica.
Fai clic su Contenitore, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.
Fai clic sulla scheda Connessioni.
-
Nel campo Rete, scegli una delle seguenti opzioni dal menu:
- Per scollegare il job 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 mostrato nell'elenco a discesa.
- Per creare un nuovo connettore, seleziona Aggiungi nuovo connettore VPC. Per informazioni dettagliate sulla creazione di un connettore, consulta Creare un connettore di accesso VPC serverless.
-
Nel campo Rete, scegli una delle seguenti opzioni dal menu:
Fai clic su Crea o Aggiorna.
gcloud
Per specificare un connettore durante il deployment del job, utilizza il
--vpc-connector
flag:
gcloud run jobs create JOB --image IMAGE_URL --vpc-connector CONNECTOR_NAME
Sostituisci:
JOB
con il nome del job.- IMAGE_URL con un riferimento all'immagine del container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. CONNECTOR_NAME
con il nome del connettore.
Per collegare, aggiornare o rimuovere un connettore per un servizio esistente, utilizza il comando
gcloud run jobs update
con uno dei seguenti flag, a seconda delle esigenze:
Ad esempio, per collegare o aggiornare un connettore:
gcloud run jobs update JOB --vpc-connector CONNECTOR_NAME
Sostituisci:
JOB
con il nome del job.CONNECTOR_NAME
con il nome del connettore.
YAML
Puoi scaricare e visualizzare una configurazione di job esistente utilizzando il comando gcloud run jobs describe --format export
, che genera risultati puliti in formato YAML. Puoi quindi modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run jobs replace
.
Assicurati di modificare solo i campi come descritto nella documentazione.
Per visualizzare e scaricare la configurazione:
gcloud run jobs describe JOB --format export > job.yaml
Aggiungi o aggiorna l'attributo
run.googleapis.com/vpc-access-connector
nell'attributoannotations
nell'attributo di primo livellospec
:apiVersion: serving.knative.dev/v1 kind: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
Sostituisci:
- JOB con il nome del tuo job Cloud Run.
- CONNECTOR_NAME con il nome del connettore. L'attributo
run.googleapis.com/vpc-access-connector
è obbligatorio quando viene specificata un'impostazione di uscita.
Sostituisci il job con la nuova configurazione utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Accesso alle risorse VPC
Puoi limitare l'accesso dal connettore utilizzando le regole e i criteri del firewall e puoi aggiungere ulteriori limitazioni configurando le impostazioni in entrata e in uscita.
Regole e impostazioni dei criteri firewall
Regole firewall richieste per i connettori nei progetti di servizi
Se crei un connettore in una rete VPC autonoma o nel progetto host di una rete VPC condiviso, 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 il connettore ha come target una rete VPC condiviso nel progetto host, devi aggiungere regole del 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, dalle funzioni Cloud Run e dall'ambiente standard di App Engine. Tutte le richieste provenienti da questi indirizzi IP hanno origine dall'infrastruttura di Google per garantire che ogni risorsa serverless comunichi solo con il connettore a cui è collegata.
Devi anche consentire il traffico dalla subnet del connettore alle risorse della tua rete VPC.
Per eseguire questi passaggi, devi disporre di uno dei seguenti ruoli nel progetto ospitante:
- Ruolo Proprietario(
roles/owner
) - Ruolo Amministratore della sicurezza di 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 condiviso 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 modificare 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 ogni risorsa della 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 servizi, vengono applicate regole firewall a tutti i connettori, sia quelli attuali sia quelli creati in futuro. Se non vuoi, ma vuoi invece creare regole solo per connettori specifici, puoi definire l'ambito delle regole in modo che si applichino solo a questi 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: da utilizzare solo per le regole di uscita, in quanto non funzionano per le regole di ingresso. 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 rete VPC di destinazione utilizzando le regole del firewall VPC o le regole nelle policy firewall. Puoi applicare queste limitazioni utilizzando una delle seguenti strategie:
- Crea regole di ingresso le cui destinazioni rappresentano le risorse a cui vuoi limitare l'accesso delle 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.
Limitare l'accesso utilizzando le regole per il traffico in entrata
Scegli tag di rete o intervalli CIDR per controllare il traffico in entrata nella rete VPC.
Tag di rete
I passaggi riportati di seguito mostrano come creare regole di ingresso 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 del firewall. Devi disporre di uno dei seguenti ruoli Identity and Access Management (IAM):
- Ruolo Compute Security Admin
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
attivata
Nega il traffico del connettore sulla rete VPC.
Crea una regola firewall in entrata con priorità inferiore a 1000 sulla rete VPC per negare l'ingresso dal tag di rete del connettore. 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, 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_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à di questa regola su un valore inferiore a quello della regola creata 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 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 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 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
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 hai impostato la priorità della regola creata nel passaggio precedente su 990, prova 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 che seguono 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 ruoli Identity and Access Management (IAM):
- Ruolo Compute Security Admin
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
attivata
Nega il traffico del connettore sulla 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. 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-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à di questa regola su un valore inferiore a quello della regola creata 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 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 hai impostato la priorità della regola creata nel passaggio precedente su 990, prova 980.
Per ulteriori informazioni sugli indicatori obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione di 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 del firewall. Devi disporre di uno dei seguenti ruoli Identity and Access Management (IAM):
- Ruolo Compute Security Admin
- Ruolo IAM personalizzato con l'autorizzazione
compute.firewalls.create
attivata
Rifiuta 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 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_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 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 a cui vuoi che acceda il connettore.
Utilizza i flag
allow
edestination-ranges
per creare una regola firewall che consenta il traffico in uscita dal connettore per un intervallo di destinazioni 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à di questa regola su un valore inferiore a quello della regola creata 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 limitandone l'accesso
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 il tag rete univoco nel passaggio precedente, utilizza il tag rete univoco.
PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se hai impostato la priorità della regola creata nel passaggio precedente su 990, prova 980.
Per ulteriori informazioni sugli indicatori obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione di gcloud compute firewall-rules create
.
Gestire il connettore
Per impostazione predefinita, solo le richieste a determinate destinazioni di indirizzi IPv4 interni (incluse le destinazioni IPv4 interne risolte dalle risposte DNS) vengono instradate tramite un connettore accesso VPC serverless. In alcuni casi, tuttavia, potresti volere che tutte le richieste in uscita dal tuo servizio o job vengano indirizzate alla tua rete VPC.
L'accesso VPC serverless supporta solo il routing del traffico IPv4. Il traffico IPv6 non è supportato, anche se hai route IPv6 nella rete VPC.
Per controllare il routing delle richieste in uscita dal tuo servizio o job, puoi impostare la rete VPC in uscita su una delle seguenti opzioni:
Instrada al VPC solo richieste a IP privati: impostazione predefinita. Il traffico viene instradato tramite la rete VPC solo se i pacchetti che lo trasportano hanno destinazioni corrispondenti a quanto segue:
I pacchetti diretti a qualsiasi altra destinazione vengono instradati da Cloud Run a internet (non tramite una rete VPC).
Instrada tutto il traffico al VPC: il traffico viene sempre instradato tramite la rete VPC associata al connettore per tutte le destinazioni dei pacchetti. Devi utilizzare questa opzione nelle seguenti circostanze:
- Se devi inviare traffico a intervalli di subnet VPC con intervalli di indirizzi IP esterni utilizzati privatamente. Per ulteriori informazioni sugli intervalli di subnet VPC, consulta Intervalli IPv4 validi nella panoramica delle subnet.
- Se devi inviare traffico a un endpoint Private Service Connect per le API di Google il cui indirizzo è un indirizzo IP esterno utilizzato privatamente. Per ulteriori informazioni sugli endpoint di Private Service Connect per le API di Google, consulta Accedere alle API di Google tramite gli endpoint.
- Se devi inviare traffico a qualsiasi altra destinazione di indirizzo IP esterno utilizzato privatamente che sia instradabile all'interno della rete VPC del connettore. Alcuni esempi di altre destinazioni che coprono indirizzi IP esterni utilizzati privatamente possono includere intervalli di subnet di peering (e intervalli di subnet di peering creati da Intervalli di indirizzi IP allocati per i servizi) e le destinazioni accessibili utilizzando route personalizzate nello short VPC.
Se la tua rete VPC include una route predefinita, i pacchetti possono comunque essere instradati a internet dopo essere stati elaborati dal connettore se configuri un gateway Cloud NAT per fornire servizi NAT alla subnet utilizzata dal connettore. Questi pacchetti sono soggetti alle route nella rete VPC e alle regole del firewall applicate alla rete VPC. Puoi utilizzare la configurazione di route e firewall per controllare il traffico in uscita su internet per tutte le richieste in uscita inviate dalla tua funzione tramite un connettore di accesso VPC serverless.
Controllare il traffico in uscita dei servizi
Puoi specificare un'impostazione di uscita VPC utilizzando la console Google Cloud, Google Cloud CLI o il file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Networking.
- Dopo aver selezionato un connettore VPC, seleziona Instrada al VPC solo richieste a IP privati o Instrada tutto il traffico al VPC.
Fai clic su Crea o Esegui il deployment.
gcloud
Per specificare un'impostazione di uscita, utilizza il flag --vpc-egress
. Puoi specificare un'impostazione di uscita durante il deployment:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
Sostituisci:
SERVICE
con il nome del servizio.- IMAGE_URL con un riferimento all'immagine del container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. CONNECTOR_NAME
con il nome del connettore.EGRESS_SETTING
con un valore dell'impostazione di uscita:all-traffic
: invia tutto il traffico in uscita tramite il connettore.private-ranges-only
: invia solo il traffico agli indirizzi interni tramite il connettore VPC.
Puoi anche aggiornare un servizio esistente e modificare l'impostazione di uscita:
gcloud run services update SERVICE --vpc-egress EGRESS_SETTING
Sostituisci:
SERVICE
con il nome del servizio.EGRESS_SETTING
con un valore dell'impostazione di uscita come indicato sopra.
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiungi o aggiorna l'attributo
run.googleapis.com/vpc-access-egress
nell'attributoannotations
nell'attributo di primo livellospec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME run.googleapis.com/vpc-access-egress: EGRESS_SETTING name: REVISION
Sostituisci:
- SERVICE con il nome del servizio Cloud Run.
- CONNECTOR_NAME con il nome del connettore. L'attributo
run.googleapis.com/vpc-access-connector
è obbligatorio quando viene specificata un'impostazione di uscita. - EGRESS_SETTING con uno dei seguenti valori:
all-traffic
: invia tutto il traffico in uscita tramite il connettore.private-ranges-only
: invia solo il traffico agli indirizzi interni tramite il connettore VPC.- REVISION con un nuovo nome della revisione o eliminala (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Deve contenere solo lettere minuscole, numeri e
-
- Non termina con
-
- Non deve superare i 63 caratteri
- Inizia con
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Controllare il traffico in uscita dei job
Puoi specificare un'impostazione di traffico in uscita della VPC utilizzando la console Google Cloud, Google Cloud CLI o il file YAML quando crei o aggiorni un job:
Console
Nella console Google Cloud, vai alla pagina dei job Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Job per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, selezionalo e fai clic su Modifica.
Fai clic su Contenitore, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.
Fai clic sulla scheda Connessioni.
- Dopo aver selezionato un connettore, seleziona Instrada al VPC solo richieste a IP privati o Instrada tutto il traffico al VPC.
Fai clic su Crea o Aggiorna.
gcloud
Per specificare un'impostazione di uscita, utilizza il flag --vpc-egress
. Puoi specificare un'impostazione di uscita durante la procedura di dispiegamento del job:
gcloud run jobs create JOB \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
Sostituisci:
JOB
con il nome del job.- IMAGE_URL con un riferimento all'immagine del container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. CONNECTOR_NAME
con il nome del connettore.EGRESS_SETTING
con un valore dell'impostazione di uscita:all-traffic
: invia tutto il traffico in uscita tramite il connettore.private-ranges-only
: invia solo il traffico agli indirizzi interni tramite il connettore VPC.
Puoi anche aggiornare un job esistente e modificare l'impostazione di uscita:
gcloud run jobs update JOB --vpc-egress EGRESS_SETTING
Sostituisci:
JOB
con il nome del job.EGRESS_SETTING
con un valore dell'impostazione di uscita come indicato sopra.
YAML
Puoi scaricare e visualizzare una configurazione di job esistente utilizzando il comando gcloud run jobs describe --format export
, che genera risultati puliti in formato YAML. Puoi quindi modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run jobs replace
.
Assicurati di modificare solo i campi come descritto nella documentazione.
Sostituisci il job con la nuova configurazione utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Aggiungi o aggiorna l'attributo
run.googleapis.com/vpc-access-egress
nell'attributoannotations
nell'attributo di primo livellospec
:apiVersion: serving.knative.dev/v1 kind: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME run.googleapis.com/vpc-access-egress: EGRESS_SETTING
Sostituisci:
- JOB con il nome del tuo job Cloud Run.
- CONNECTOR_NAME con il nome del connettore. L'attributo
run.googleapis.com/vpc-access-connector
è obbligatorio quando si specifica un'impostazione di uscita. - EGRESS_SETTING con uno dei seguenti valori:
all-traffic
: invia tutto il traffico in uscita tramite il connettore.private-ranges-only
: invia solo il traffico agli indirizzi interni tramite il connettore VPC.
Sostituisci il job con la nuova configurazione utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Visualizzare le impostazioni del connettore
Puoi visualizzare le impostazioni attuali del connettore accesso VPC serverless per il tuo servizio o job utilizzando la console Google Cloud o lo strumento a riga di comando gcloud
:
Console
Fai clic sul servizio o sul job che ti interessa per aprire la pagina dei dettagli.
Per un servizio, fai clic sulla scheda Revisioni.
Per un job, fai clic sulla scheda Configurazione.
L'impostazione del connettore di accesso VPC serverless è elencata nella scheda Networking.
gcloud
Utilizza il seguente comando per visualizzare le impostazioni del servizio:
gcloud run services describe SERVICE
Utilizza il seguente comando per visualizzare le impostazioni del tuo job:
gcloud run jobs describe JOB
Individua l'impostazione del connettore di accesso VPC serverless nella configurazione restituita.
Disconnettersi da una rete VPC
Scollegare un servizio
Puoi scollegare un servizio dalla tua rete VPC utilizzando la console Google Cloud o Google Cloud CLI:
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Networking.
- Nel campo Rete, seleziona Nessuna per scollegare il servizio da una rete VPC.
Fai clic su Crea o Esegui il deployment.
gcloud
Per scollegare un servizio, utilizza il comando
gcloud run services update
con il seguente flag:
gcloud run services update SERVICE --clear-vpc-connector
- Sostituisci SERVICE con il nome del servizio.
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 la fatturazione continua.
Scollegare un job
Puoi scollegare un job dalla tua rete VPC utilizzando la console Google Cloud o Google Cloud CLI:
Console
Nella console Google Cloud, vai alla pagina dei job Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Job per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, selezionalo e fai clic su Modifica.
Fai clic su Contenitore, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.
Fai clic sulla scheda Connessioni.
- Nel campo Rete, seleziona Nessuna per scollegare il job da una rete VPC.
Fai clic su Crea o Aggiorna.
gcloud
Per scollegare un job, utilizza il comando
gcloud run jobs update
con il seguente flag:
gcloud run jobs update JOB --clear-vpc-connector
Sostituisci JOB con il nome del job.
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 la fatturazione continua.
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
- Prestazioni recenti, numero di istanze e utilizzo della CPU
Aggiorna tipo di macchina
Console
Vai alla pagina Panoramica di 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 il seguente comando nel terminal:
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.
Per ulteriori informazioni, consulta Creare un connettore di accesso VPC serverless.
Aumenta il numero minimo e massimo di istanze
Console
Vai alla pagina Panoramica di Accesso VPC serverless.
Seleziona il connettore da modificare e fai clic su Modifica.
Nel campo Istanze minime, seleziona il numero minimo di istanze che preferisci.
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 Numero massimo di istanze è 8, il valore più grande possibile per il Numero minimo di istanze è 7.
Nel campo Istanze massime, seleziona il numero massimo di istanze preferito.
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 di istanze preferito.- 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 massimo possibile per questo campo è il valore
max_instances
corrente meno 1, perchémin_instances
deve essere inferiore amax_instances
. Ad esempio, semax_instances
è 8, il valore più grande possibile per questo campo è 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 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 invariato il numero minimo o massimo di istanze, specifica il valore corrente. Per trovare il loro valore corrente, consulta Trovare i valori degli attributi attuali.
- Il valore più piccolo possibile per questo campo è il valore corrente di
Trovare i valori degli attributi correnti
Per trovare i valori degli attributi attuali per il connettore, esegui quanto segue nel terminale:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
CONNECTOR_NAME
: il nome del connettoreREGION
: il nome della regione del connettorePROJECT
: il nome del tuo progetto Google Cloud
Monitorare l'utilizzo del connettore
Monitorare l'utilizzo nel tempo può aiutarti a determinare quando modificare le impostazioni di un connettore. Ad esempio, se si verificano picchi di utilizzo della CPU, puoi provare ad aumentare il numero massimo di istanze per ottenere risultati migliori. In alternativa, se stai raggiungendo il picco di throughput, puoi decidere di passare a un tipo di macchina più grande.
Per visualizzare i grafici relativi al throughput, al numero di istanze e alle metriche di utilizzo della CPU del connettore nel tempo utilizzando la console Google Cloud:
Vai alla pagina Panoramica di Accesso VPC serverless.
Fai clic sul nome del connettore che vuoi monitorare.
Seleziona il numero di giorni da visualizzare tra 1 e 90 giorni.
Nel grafico Velocità effettiva, passa il mouse sopra il grafico per visualizzare la velocità effettiva recente del connettore.
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 i percentile 50, 95 e 99.
Eliminare un connettore
Prima di eliminare un connettore, assicurati che non siano ancora collegati servizi o job.
Per gli utenti VPC condiviso che configurano i connettori nel progetto host 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 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 progetto Google Cloud, 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 di accesso VPC serverless
(roles/vpcaccess.serviceAgent
). Le operazioni di accesso VPC serverless
potrebbero non riuscire se modifichi le autorizzazioni di questo account.
Scarse prestazioni della rete o elevato utilizzo inattivo della CPU
L'utilizzo di un singolo connettore per migliaia di istanze può causare un calo delle prestazioni e un utilizzo elevato della CPU inattiva. Per risolvere il problema, suddividi i servizi tra più connettori.
Errori
Errore: all'account di servizio serve il ruolo Agente di servizio
Se utilizzi il vincolo dei criteri 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 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 un intervallo IP interno RFC 1918 che non si sovrapponga a prenotazioni di indirizzi IP esistenti 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 saperne di più su come aggiornare di conseguenza i criteri dell'organizzazione, consulta Impostare limitazioni 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 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 delle regole firewall VPC.
Passaggi successivi
- Monitora l'attività di amministrazione con gli audit log di accesso VPC serverless.
- Proteggi le risorse e i dati creando un perimetro di servizio con Controlli di servizio VPC.
- Utilizza i ruoli IAM (Identity and Access Management) associati ad Accesso VPC serverless. Consulta la sezione Ruoli di accesso VPC serverless nella documentazione IAM per un elenco delle autorizzazioni associate a ciascun ruolo.
- Connettiti a Memorystore.