Configurare 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 Configurare i connettori nei progetti di servizio. Per scoprire i vantaggi di ciascun metodo, consulta Connessione a una VPC condiviso condivisa.
Prima di iniziare
Controlla i ruoli Identity and Access Management (IAM) per l'account in uso. L'account attivo deve avere i seguenti ruoli 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 del progetto e seleziona il progetto host.
gcloud
Imposta il progetto predefinito in gcloud CLI sul progetto host eseguendo questo comando 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 riepilogo dell'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 servizio serverless.
Se il servizio è 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 a discesa Subnet:
Seleziona una subnet
/28
inutilizzata.- 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 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
SostituisciSUBNET_NAME
con il nome della tua 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 (massimo). Il connettore fa lo scale out al massimo specificato all'aumento del traffico, ma non viene fatto lo scale back quando il traffico diminuisce. Devi
utilizzare valori compresi tra
2
e10
e il valoreMIN
deve essere inferiore al valoreMAX
. - Nel menu a discesa 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 sulla destra quando scegli il tipo di istanza, che mostra le stime relative a 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 (massimo). Il connettore fa lo scale out al massimo specificato all'aumento del traffico, ma non viene fatto lo scale back quando il traffico diminuisce. Devi
utilizzare valori compresi tra
Fai clic su Crea.
Quando il connettore è pronto per essere utilizzato, accanto al nome del connettore viene visualizzato un segno di spunta verde.
gcloud
Aggiorna i componenti di
gcloud
alla versione più recente: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 a quella del servizio serverless. Se il servizio 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 utilizzate 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 quanto segue:SUBNET_NAME
: il nome della subnet
HOST_PROJECT_ID
: l'ID del progetto hostMIN
: il numero minimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra2
e9
. Il valore predefinito è2
. Per scoprire di più sulla scalabilità dei connettori, 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 scoprire di più sulla scalabilità dei connettori, 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 la documentazione di riferimento di
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 precedenteREGION
: la regione del connettore; si tratta della regione specificata 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 e una subnet VPC, quindi creare il connettore.
Abilita Cloud Functions per il progetto di servizio
Abilitare l'API Cloud Functions per il progetto di servizio. Questa operazione è necessaria per aggiungere i ruoli IAM nei passaggi successivi e affinché il progetto di servizio utilizzi Cloud Functions.
Console
Apri la pagina dell'API Cloud Functions.
Nella barra dei menu nella parte superiore della dashboard, fai clic sul menu a discesa del progetto e seleziona il progetto di servizio.
Fai clic su Abilita.
gcloud
Esegui questo comando nel tuo 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 Agente di servizio Cloud Functions Utente accesso VPC serverless al progetto di servizio nel progetto host. Per Cloud Functions (2nd gen), devi concedere lo stesso ruolo anche all'agente di servizio Cloud Run.
Console
Apri la pagina IAM.
Fai clic sul menu a discesa del progetto e seleziona il progetto host.
Fai clic su Concedi accesso.
Nel campo Nuove entità, inserisci l'indirizzo email dell'agente di servizio Cloud 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. È diverso dall'ID progetto. Puoi trovare il numero del progetto nella pagina Impostazioni progetto del progetto di servizio della console Google Cloud.
Solo per Cloud Functions (2nd gen): nel campo Nuove entità, inserisci anche l'indirizzo email dell'agente di servizio Cloud Run per il progetto di servizio:
service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com
Nel campo Ruolo, seleziona Utente accesso VPC serverless.
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. È diverso dall'ID progetto. Per trovare il numero del progetto, esegui questo comando:gcloud projects describe SERVICE_PROJECT_ID
Solo per Cloud Functions (2nd gen): concedi il ruolo anche all'agente di servizio Cloud Run eseguendo questo comando:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \ --role=roles/vpcaccess.user
Rendere il connettore rilevabile
Nel criterio IAM del progetto host, devi concedere i due ruoli predefiniti seguenti alle entità che eseguono il deployment dei servizi Cloud Run:
- Visualizzatore accesso VPC serverless (
vpcaccess.viewer
): obbligatorio. - Visualizzatore rete Compute (
compute.networkViewer
): facoltativo ma consigliato. Consente all'entità IAM di enumerare le subnet nella rete VPC condiviso.
In alternativa, puoi utilizzare ruoli personalizzati o altri ruoli predefiniti che includono tutte le autorizzazioni del ruolo Visualizzatore accesso VPC serverless (vpcaccess.viewer
).
Console
Apri la pagina IAM.
Fai clic sul menu a discesa del progetto e seleziona il progetto host.
Fai clic su Concedi accesso.
Nel campo Nuove entità, inserisci l'indirizzo email dell'entità che dovrebbe essere in grado di vedere il connettore del progetto di servizio. In questo campo puoi inserire più indirizzi email.
Nel campo Ruolo, seleziona entrambi i ruoli seguenti:
- Visualizzatore accesso VPC serverless
- Visualizzatore rete Compute
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 condivisoPRINCIPAL
: l'entità che esegue il deployment dei servizi Cloud Run. Scopri di più sul flag--member
.
Configura la funzione per l'utilizzo del connettore
Per ogni funzione che richiede l'accesso al tuo VPC condiviso, devi specificare il connettore per la funzione. I passaggi seguenti mostrano come configurare la funzione per l'utilizzo di un connettore.
Console
Apri la pagina Panoramica di Cloud Functions.
Fai clic sul menu a discesa del progetto 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, poi fai clic su Modifica.
Espandi le impostazioni avanzate facendo clic su Runtime, build....
Nella scheda Connessioni in Impostazioni in uscita, seleziona il tuo connettore nel campo Connettore VPC.
gcloud
Imposta gcloud CLI per utilizzare il progetto contenente la funzione:
gcloud config set project PROJECT_ID
Sostituisci quanto segue: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, si tratta dell'ID progetto host. Se la funzione è in un progetto di servizio, si tratta dell'ID progetto di servizio.
Utilizza il flag
--vpc-connector
ed esegui il deployment della tua funzione:gcloud functions deploy FUNCTION_NAME --vpc-connector=CONNECTOR_NAME
Sostituisci quanto segue:
FUNCTION_NAME
: il nome della funzioneCONNECTOR_NAME
: il nome del connettore. Utilizza il nome completo quando esegui il deployment da un progetto di servizio VPC condiviso (anziché dal progetto host), ad esempio:projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
doveHOST_PROJECT_ID
è l'ID del progetto host,CONNECTOR_REGION
è l'area geografica del connettore eCONNECTOR_NAME
è il nome assegnato al connettore.
Per un maggiore controllo sulle richieste instradate attraverso il connettore, consulta Impostazioni in uscita.
Passaggi successivi
- Connettiti a Memorystore da Cloud Functions.
- Configura le impostazioni di rete per Cloud Functions.
- Monitora l'attività degli amministratori 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 IAM per un elenco delle autorizzazioni associate a ciascun ruolo.