Se la tua organizzazione utilizza il VPC condiviso, puoi configurare un connettore 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 che stai utilizzando. 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 nellgcloud CLI sul progetto host eseguendo quanto segue nel terminale:
gcloud config set project HOST_PROJECT_ID
Sostituisci quanto segue:
HOST_PROJECT_ID
: l'ID del progetto host 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 Panoramica di Accesso VPC serverless.
Fai clic su Crea connettore.
Nel campo Nome, inserisci un nome per il connettore. Il nome deve rispettare la convezione di denominazione di Compute Engine e deve 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 tuo servizio 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 a discesa Sottorete:
Seleziona una subnet
/28
non utilizzata.- 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 verificare che la subnet non sia utilizzata per Private Service Connect o Cloud Load Balancing, controlla che la subnet
purpose
siaPRIVATE
eseguendo il seguente comando in gcloud CLI: Sostituiscigcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
con il nome della subnet.
(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 esegue lo scale out fino al numero massimo specificato con l'aumento del traffico,
ma non esegue lo scale in 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 o utilizza quello predefinito
e2-micro
. Quando scegli il tipo di istanza, tieni presente la barra laterale dei costi sulla 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 esegue lo scale out fino al numero massimo specificato con l'aumento del traffico,
ma non esegue lo scale in 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
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 rispettare la convezione di denominazione di Compute Engine e deve contenere meno di 21 caratteri. I trattini (-
) vengono conteggiati come due caratteri.REGION
: una regione per il connettore. Deve corrispondere alla regione del servizio serverless. Se il tuo 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 utilizzati da altre risorse come VM, Private Service Connect o bilanciatori del carico.
- Per verificare che la subnet non sia utilizzata per Private Service Connect o Cloud Load Balancing, controlla che la subnet
purpose
siaPRIVATE
eseguendo il seguente 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. Utilizza un numero intero compreso tra2
e9
. Il valore predefinito è2
. Per informazioni sulla scalabilità dei connettori, consulta Throughput 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 il ridimensionamento fino a[MAX]
istanze, ma non esegue il ridimensionamento verso il basso. Per informazioni sulla scalabilità dei connettori, consulta Throughput e scalabilità.MACHINE_TYPE
:f1-micro
,e2-micro
oe2-standard-4
. Per informazioni sulla velocità effettiva del connettore, inclusi il tipo di macchina e la scalabilità, consulta Velocità effettiva e scalabilità.
Per maggiori dettagli e argomenti facoltativi, consulta le informazioni di riferimento su
gcloud
.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 precedenteREGION
: 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.
Abilita Cloud Run per il progetto di servizio
Abilita l'API Cloud Run per il progetto di servizio. Questo è necessario per aggiungere i ruoli IAM nei passaggi successivi e per consentire al progetto di servizio di utilizzare Cloud Run.
Console
Apri la pagina dell'API Cloud Run.
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 Attiva.
gcloud
Esegui il seguente comando nel terminale:
gcloud services enable run.googleapis.com --project=SERVICE_PROJECT_ID
Sostituisci quanto segue:
SERVICE_PROJECT_ID
: l'ID del progetto di servizio
Fornire l'accesso al connettore
Fornisci l'accesso al connettore concedendo al progetto di servizio Agente di servizio Cloud Run il ruolo IAM Utente di accesso VPC serverless nel progetto host.
Console
Apri la pagina IAM.
Fai clic sul menu a discesa del progetto e seleziona il progetto host.
Fai clic su Aggiungi.
Nel campo Nuove entità, inserisci l'indirizzo email dell'agente di servizio Cloud Run per il servizio Cloud Run:
service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com
Sostituisci quanto segue:
SERVICE_PROJECT_NUMBER
: il numero del progetto associato al progetto di servizio. È diverso dall'ID progetto. Puoi trovare il numero di progetto nella pagina Impostazioni progetto del progetto di servizio nella console Google Cloud.
Nel campo Ruolo, seleziona Utente con accesso VPC serverless.
Fai clic su Salva.
gcloud
Esegui il seguente comando nel terminale:
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
Sostituisci quanto segue:
HOST_PROJECT_ID
: l'ID del progetto host VPC condivisoSERVICE_PROJECT_NUMBER
: il numero del progetto associato all'account di servizio. È diverso dall'ID progetto. Per trovare il numero di progetto, esegui il seguente comando:gcloud projects describe SERVICE_PROJECT_ID
Rendi rilevabile il connettore
Nel criterio IAM del progetto host, devi concedere i seguenti 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 elencare 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 Aggiungi.
Nel campo Nuove entità, inserisci l'indirizzo email dell'entità che deve essere in grado di vedere il connettore dal progetto di servizio. In questo campo puoi inserire più indirizzi email.
Nel campo Ruolo, seleziona entrambi i seguenti ruoli:
- Visualizzatore Accesso VPC serverless
- Compute Network Viewer
Fai clic su Salva.
gcloud
Esegui i seguenti 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 VPC condivisoPRINCIPAL
: il principale che esegue il deployment dei servizi Cloud Run. Scopri di più sul flag--member
.
Configura il servizio per utilizzare il connettore
Per ogni servizio Cloud Run che richiede l'accesso al VPC condiviso, devi specificare il connettore per il servizio. Puoi specificare il connettore utilizzando la console Google Cloud, Google Cloud CLI, il file YAML o Terraform durante il deployment di un nuovo servizio o l'aggiornamento di un servizio esistente.
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 Connessioni.
- Nel campo Connettore VPC, seleziona un connettore da utilizzare o Nessun connettore per scollegare il servizio da una rete VPC.
Fai clic su Crea o Esegui il deployment.
gcloud
Imposta gcloud CLI in modo da utilizzare il progetto contenente la risorsa Cloud Run:
Sostituisci quanto segue:gcloud config set project PROJECT_ID
PROJECT_ID
: l'ID del progetto contenente la risorsa Cloud Run che richiede l'accesso al VPC condiviso. Se la risorsa Cloud Run si trova nel progetto host, questo è l'ID progetto host. Se la risorsa Cloud Run si trova in un progetto di servizio, questo è l'ID progetto di servizio.
Utilizza il flag
--vpc-connector
.
- Per i servizi esistenti:
gcloud run services update SERVICE --vpc-connector=CONNECTOR_NAME
- Per i nuovi servizi:
Sostituisci quanto segue:gcloud run deploy SERVICE --image=IMAGE_URL --vpc-connector=CONNECTOR_NAME
SERVICE
: il nome del servizioIMAGE_URL
: un riferimento all'immagine del contenitore, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest
CONNECTOR_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: 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.
YAML
Imposta gcloud CLI in modo da utilizzare il progetto contenente la risorsa Cloud Run:
gcloud config set project PROJECT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto contenente la risorsa Cloud Run che richiede l'accesso al VPC condiviso. Se la risorsa Cloud Run si trova nel progetto host, questo è l'ID progetto host. Se la risorsa Cloud Run si trova in un progetto di servizio, questo è l'ID progetto di servizio.
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 quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- CONNECTOR_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:
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. - 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
Sostituisci il servizio con la nuova configurazione 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.
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.
- Scopri i ruoli Identity and Access Management (IAM) associati all'accesso VPC serverless. Consulta la sezione Ruoli di accesso VPC serverless nella documentazione IAM per un elenco delle autorizzazioni associate a ciascun ruolo.
- Scopri come connetterti a Memorystore.