Configura i connettori nei progetti di servizio VPC condiviso

Se la tua organizzazione utilizza un 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 di servizio.

Se devi configurare un connettore nel progetto host, consulta Configurare i connettori nel progetto host. Per conoscere i vantaggi di ciascun metodo, consulta Connessione a una VPC condiviso condivisa.

A livello generale, devi seguire questi passaggi:

  1. Aggiungi regole firewall per consentire gli intervalli IP richiesti
  2. Concedi autorizzazioni
  3. Crea una subnet
  4. Nella pagina Configurazione dell'accesso VPC serverless, completa i passaggi nelle sezioni seguenti:

Prima di iniziare

L'accesso VPC serverless non è compatibile con il servizio di recupero URL. Prima di iniziare, interrompi qualsiasi utilizzo di URLFetchService.

Aggiungi regole firewall per consentire intervalli IP

Per eseguire questi passaggi, devi disporre di uno dei seguenti ruoli nel progetto host:

Devi creare regole firewall per consentire alle richieste dai seguenti intervalli IP di raggiungere il connettore ed essere raggiunte dal connettore:

  • Intervalli NAT
    • 107.178.230.64/26
    • 35.199.224.0/19
  • Intervalli del controllo di integrità
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 108.170.220.0/23

Questi intervalli sono utilizzati dall'infrastruttura di Google alla base di Cloud Run, Cloud Functions e dall'ambiente standard di App Engine. È garantito che tutte le richieste provenienti da questi IP provengano dall'infrastruttura Google, il che garantisce che ogni servizio/funzione/app di Cloud Run, Cloud Functions e di App Engine comunichi solo con il connettore VPC a cui è connesso.

Per una configurazione semplice, applica le regole per consentire ai servizi serverless in qualsiasi progetto di servizio connesso alla rete VPC condiviso di inviare richieste a qualsiasi risorsa nella rete.

Per applicare queste regole:

  1. Esegui i tre comandi seguenti per impostare le regole in modo da consentire alle richieste dall'ambiente serverless di raggiungere tutti i connettori VPC nella rete:

    gcloud compute firewall-rules create serverless-to-vpc-connector \
    --allow tcp:667,udp:665-666,icmp \
    --source-ranges 107.178.230.64/26,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 107.178.230.64/26,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 130.211.0.0/22,35.191.0.0/16,108.170.220.0/23 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK

    Dove VPC_NETWORK è la rete VPC a cui collegare il connettore.

  2. Crea una regola in entrata nella rete VPC per consentire le richieste dai connettori:

    gcloud compute firewall-rules create vpc-connector-requests \
    --allow tcp,udp,icmp \
    --direction=INGRESS \
    --source-tags vpc-connector \
    --network=VPC_NETWORK

    Questa regola consente al connettore VPC di accedere a tutte le risorse della rete. Per limitare le risorse che il tuo ambiente serverless può raggiungere utilizzando l'accesso VPC serverless, specifica un target per queste regole firewall.

Creare regole firewall per connettori specifici

Seguendo la procedura descritta in Aggiungere regole firewall per consentire gli intervalli IP, verranno create regole firewall che si applicano a tutti i connettori, sia quelli attuali sia quelli creati in futuro. Se non vuoi farlo, ma vuoi creare regole solo per connettori specifici, puoi definire l'ambito delle regole in modo che vengano applicate solo a quei 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 e vpc-connector-REGION-CONNECTOR_NAME. Utilizza il secondo formato per limitare l'ambito delle regole firewall a un connettore specifico.
  • Intervalli IP. Utilizzalo solo per le regole in uscita, perché non funziona in entrata. Puoi utilizzare l'intervallo IP della subnet del connettore per limitare l'ambito delle regole firewall a un singolo connettore VPC.

Concedere le autorizzazioni agli account di servizio nei progetti di servizio

Per ogni progetto di servizio che utilizzerà i connettori VPC, un amministratore VPC condiviso deve concedere il ruolo Utente di rete Compute (compute.networkUser) nel progetto host agli account di servizio cloudservices e vpcaccess del progetto di servizio.

Per concedere il ruolo:

  1. Utilizza questi comandi:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com"
  2. Se l'account di servizio @gcp-sa-vpcaccess non esiste, attiva l'API Serverless VPC Access nel progetto di servizio e riprova:

    gcloud services enable vpcaccess.googleapis.com

Se preferisci non concedere a questi account di servizio l'accesso all'intera rete VPC condiviso e preferisci concedere l'accesso solo a subnet specifiche, puoi concedere questi ruoli a questi account di servizio solo su subnet specifiche.

Crea una subnet

Quando utilizzi un VPC condiviso, l'amministratore del VPC condiviso deve creare una subnet per ogni connettore. Segui la documentazione in Aggiunta di una subnet per aggiungere una subnet /28 alla rete VPC condiviso. Questa subnet deve trovarsi nella stessa regione dei servizi serverless che utilizzeranno il connettore.

Passaggi successivi