Configura i connettori nel progetto host del VPC condiviso
Se la tua organizzazione utilizza il VPC condiviso, puoi configurare i connettori di accesso VPC serverless nel progetto di servizio o nel progetto host. Questa guida mostra come configurare un connettore nel progetto host.
Se devi configurare un connettore in un progetto di servizio, consulta Configura i connettori nei progetti di servizio. Per scoprire di più sui vantaggi di ciascun metodo, consulta Connettiti a una rete VPC condivisa.
Prima di iniziare
Verifica i ruoli Identity and Access Management (IAM) per l'account che stai utilizzando. L'account attivo deve avere i ruoli seguenti nel progetto host:
Seleziona il progetto host nell'ambiente che preferisci.
Console
Apri la dashboard della console Google Cloud .
Nella barra dei menu nella parte superiore della dashboard, fai clic sul menu a discesa dei progetti e seleziona il progetto host.
gcloud
Imposta il progetto predefinito in gcloud CLI sul progetto host eseguendo il comando seguente nel terminale:
gcloud config set project HOST_PROJECT_ID
Sostituisci quanto segue:
HOST_PROJECT_ID: l'ID del progetto host del VPC condiviso
Crea un connettore di accesso VPC serverless
Per inviare richieste alla tua rete VPC e ricevere le risposte corrispondenti, devi creare un connettore di accesso VPC serverless. Puoi creare un connettore utilizzando la console Google Cloud , Google Cloud CLI o Terraform:
Console
Abilita l'API Serverless VPC Access per il tuo progetto.
Vai alla pagina di panoramica di Accesso VPC serverless.
Fai clic su Crea connettore.
Nel campo Nome, inserisci un nome per il connettore. Il nome deve seguire la convenzione di denominazione di Compute Engine e contenere meno di 21 caratteri. I trattini (
-) vengono conteggiati come due caratteri.Nel campo Regione, seleziona una regione per il connettore. Deve corrispondere alla regione del tuo servizio serverless.
Se il tuo servizio si trova nella regione
us-centraloeurope-west, utilizzaus-central1oeurope-west1.Nel campo Rete, seleziona la rete VPC a cui collegare il connettore.
Fai clic sul menu a discesa Subnet:
Seleziona una subnet
/28non in uso.- Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzate da altre risorse come VM, Private Service Connect o bilanciatori del carico.
- Per verificare che la subnet non venga utilizzata per Private Service Connect o Cloud Load Balancing, controlla che il valore
purposedella subnet siaPRIVATEeseguendo questo comando in gcloud CLI: Sostituiscigcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAMEcon il nome della subnet.
(Facoltativo) Per impostare le opzioni di scalabilità per un maggiore controllo del connettore, fai clic su Mostra impostazioni di scalabilità per visualizzare il modulo della scalabilità.
- Imposta il numero minimo e massimo di istanze per il connettore oppure utilizza i valori predefiniti, ovvero 2 (minimo) e 10 (massimo). Il connettore fa lo scale out fino al massimo specificato all'aumentare del traffico, ma non fa lo scale down quando il traffico diminuisce. Devi utilizzare valori compresi tra
2e10e il valoreMINdeve essere inferiore al valoreMAX. - Nel menu a discesa Tipo di istanza, scegli il tipo di macchina da utilizzare per il connettore o utilizza il valore predefinito
e2-micro. Presta attenzione alla 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 (minimo) e 10 (massimo). Il connettore fa lo scale out fino al massimo specificato all'aumentare del traffico, ma non fa lo scale down quando il traffico diminuisce. Devi utilizzare valori compresi tra
Fai clic su Crea.
Quando il connettore è pronto per l'uso, accanto al nome verrà visualizzato un segno di spunta verde.
gcloud
Aggiorna i componenti
gcloudall'ultima versione:gcloud components update
Abilita l'API Serverless VPC Access per il tuo progetto:
gcloud services enable vpcaccess.googleapis.com
Crea un connettore di accesso VPC serverless:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
Sostituisci quanto segue:
CONNECTOR_NAME: un nome per il connettore. Il nome deve seguire la convenzione di denominazione di Compute Engine e contenere meno di 21 caratteri. I trattini (-) vengono conteggiati come due caratteri.REGION: una regione per il connettore; deve corrispondere alla regione del tuo servizio serverless. Se il tuo servizio si trova nella regioneus-centraloeurope-west, utilizzaus-central1oeurope-west1.SUBNET: il nome di una subnet/28non in uso.- Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzate da altre risorse come VM, Private Service Connect o bilanciatori del carico.
- Per verificare che la subnet non venga utilizzata per Private Service Connect o Cloud Load Balancing, controlla che il valore
purposedella subnet siaPRIVATEeseguendo questo comando in gcloud CLI: Sostituisci quanto segue:gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME: il nome della subnet
HOST_PROJECT_ID: l'ID del progetto hostMIN: il numero minimo di istanze da utilizzare per il connettore. Scegli un numero intero compreso tra2e9. Il valore predefinito è2. Per scoprire di più sulla scalabilità dei connettori, consulta Throughput e scalabilità.MAX: il numero massimo di istanze da utilizzare per il connettore. Scegli un numero intero compreso tra3e10. Il valore predefinito è10. Se il traffico lo richiede, il connettore fa lo scale out fino a[MAX]istanze, ma non fa lo scale down quando il traffico diminuisce. Per scoprire di più sulla scalabilità dei connettori, consulta Throughput e scalabilità.MACHINE_TYPE:f1-micro,e2-microoe2-standard-4. Per informazioni sul throughput del connettore, inclusi il tipo di macchina e la scalabilità, consulta Throughput e scalabilità.
Per maggiori dettagli e argomenti facoltativi, consulta la documentazione di riferimento di
gcloud.Prima di utilizzare il connettore, verifica che si trovi nello stato
READY:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
Sostituisci quanto segue:
CONNECTOR_NAME: il nome del connettore, che hai specificato nel passaggio precedenteREGION: la regione del connettore, che hai specificato nel passaggio precedente
L'output dovrebbe contenere la riga
state: READY.
Terraform
Puoi utilizzare una risorsa Terraform per abilitare l'API vpcaccess.googleapis.com.
Puoi utilizzare i moduli Terraform per creare una rete VPC e una subnet e poi creare il connettore.
Abilita Cloud Run Functions per il progetto di servizio
Abilita l'API Cloud Run Functions per il progetto di servizio. Questo passaggio è necessario per aggiungere i ruoli IAM nei passaggi successivi e perché il progetto di servizio utilizzi Cloud Run Functions.
Console
Apri la pagina dell'API Cloud Run Functions.
Nella barra dei menu nella parte superiore della dashboard, fai clic sul menu a discesa dei progetti e seleziona il progetto di servizio.
Fai clic su Abilita.
gcloud
Esegui questo comando nel terminale:
gcloud services enable cloudfunctions.googleapis.com --project=SERVICE_PROJECT_ID
Sostituisci quanto segue:
SERVICE_PROJECT_ID: l'ID del progetto di servizio
Fornisci l'accesso al connettore
Fornisci l'accesso al connettore concedendo il ruolo IAM Cloud Run functions Service Agent Serverless VPC Access User al progetto di servizio sul progetto host.
Console
Apri la pagina IAM.
Fai clic sul menu a discesa dei progetti e seleziona il progetto host.
Fai clic su Concedi l'accesso.
Nel campo Nuove entità, inserisci l'indirizzo email del service agent Cloud Run Functions per il progetto di servizio:
service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
Sostituisci quanto segue:
SERVICE_PROJECT_NUMBER: il numero di progetto associato al progetto di servizio. Questo valore è diverso dall'ID progetto. Puoi trovare il numero di progetto nella pagina Impostazioni progetto del progetto di servizio nella consoleGoogle Cloud .
Nel campo Ruolo, seleziona Serverless VPC Access User.
Fai clic su Salva.
gcloud
Esegui questo comando nel terminale:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com \ --role=roles/vpcaccess.user
Sostituisci quanto segue:
HOST_PROJECT_ID: l'ID del progetto host del VPC condivisoSERVICE_PROJECT_NUMBER: il numero di progetto associato al progetto di servizio. Questo valore è diverso dall'ID progetto. Puoi trovare il numero di progetto eseguendo questo comando:gcloud projects describe SERVICE_PROJECT_ID
Rendi rilevabile il connettore
Nella policy IAM del progetto host, devi concedere questi due ruoli predefiniti alle entità che eseguono il deployment dei servizi Cloud Run:
- Serverless VPC Access Viewer (
vpcaccess.viewer): obbligatorio. - Compute Network Viewer (
compute.networkViewer): facoltativo, ma consigliato. Consente all'entità IAM di enumerare le subnet nella rete VPC condivisa.
In alternativa, puoi utilizzare ruoli personalizzati o altri ruoli predefiniti che includono tutte le autorizzazioni del ruolo Serverless VPC Access Viewer (vpcaccess.viewer).
Console
Apri la pagina IAM.
Fai clic sul menu a discesa dei progetti e seleziona il progetto host.
Fai clic su Concedi l'accesso.
Nel campo Nuove entità, inserisci l'indirizzo email dell'entità che deve essere in grado di visualizzare il connettore dal progetto di servizio. Puoi inserire più indirizzi email in questo campo.
Nel campo Ruolo, seleziona entrambi i ruoli seguenti:
- Serverless VPC Access Viewer
- Compute Network Viewer
Fai clic su Salva.
gcloud
Esegui questi comandi nel terminale:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
Sostituisci quanto segue:
HOST_PROJECT_ID: l'ID del progetto host del VPC condiviso.PRINCIPAL: l'entità che esegue il deployment dei servizi Cloud Run. Scopri di più sul flag--member.
Configura la funzione per utilizzare il connettore
Devi specificare il connettore per ogni funzione che richiede l'accesso al VPC condiviso. I passaggi seguenti mostrano come configurare la funzione per utilizzare un connettore.
Console
Apri la pagina della panoramica di Cloud Run Functions.
Fai clic sul menu a discesa dei progetti e seleziona il progetto di servizio.
Fai clic su Crea funzione. In alternativa, fai clic su una funzione esistente per andare alla relativa pagina dei dettagli e fai clic su Modifica.
Espandi le impostazioni avanzate facendo clic su Impostazioni di runtime, build….
Nella scheda Connessioni in Impostazioni traffico in uscita, seleziona il tuo connettore nel campo Connettore VPC.
gcloud
Imposta gcloud CLI in modo che utilizzi il progetto contenente la funzione:
Sostituisci quanto segue:gcloud config set project PROJECT_ID
PROJECT_ID: l'ID del progetto contenente la funzione che richiede l'accesso al tuo VPC condiviso. Se la funzione si trova nel progetto host, corrisponde all'ID progetto host. Se la funzione si trova in un progetto di servizio, corrisponde all'ID del progetto di servizio.
Utilizza il flag
--vpc-connectored esegui il deployment della funzione:gcloud functions deploy FUNCTION_NAME --vpc-connector=CONNECTOR_NAME
Sostituisci quanto segue:
FUNCTION_NAME: il nome della funzione.CONNECTOR_NAME: il nome del connettore. Utilizza il nome completo quando esegui il deployment da un progetto di servizio del VPC condiviso (anziché dal progetto host), ad esempio: doveprojects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
HOST_PROJECT_IDè l'ID del progetto host,CONNECTOR_REGIONè la regione del connettore eCONNECTOR_NAMEè il nome che hai assegnato al connettore.
Per un maggiore controllo sulle richieste instradate tramite il connettore, consulta Impostazioni del traffico in uscita.
Passaggi successivi
- Connettiti a Memorystore da Cloud Run Functions.
- Configura le impostazioni di rete per Cloud Run 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 di Identity and Access Management (IAM) associati all'accesso VPC serverless. Consulta i ruoli di accesso VPC serverless nella documentazione di IAM per un elenco delle autorizzazioni associate a ogni ruolo.