Connessione a una rete VPC

Questa pagina mostra come utilizzare l'accesso VPC serverless per connettere l'app dell'ambiente standard di App Engine direttamente alla rete VPC, consentendo l'accesso alle istanze VM di Compute Engine, alle istanze Memorystore e a qualsiasi altra risorsa con un indirizzo IP interno.

Prima di iniziare

Crea un connettore di accesso VPC serverless

Per inviare richieste alla tua rete VPC e ricevere le risposte corrispondenti senza utilizzare la rete Internet pubblica, devi utilizzare un connettore di accesso VPC serverless.

Puoi creare un connettore utilizzando Google Cloud Console, Google Cloud CLI o Terrarraform:

console

  1. Assicurati che l'API Serverless VPC Access sia abilitata per il tuo progetto.

    Abilita API

  2. Vai alla pagina di panoramica dell'accesso VPC serverless.

    Vai all'accesso VPC serverless

  3. Fai clic su Crea connettore.

  4. Nel campo Name (Nome), inserisci un nome per il connettore. Questo deve essere conforme alla convenzione di denominazione di Compute Engine, con la restrizione aggiuntiva che sia inferiore a 21 caratteri, con i trattini (-) che contano come due caratteri.

  5. Nel campo Regione, seleziona un'area geografica per il connettore. Deve corrispondere all'area geografica del servizio serverless.

    Se il servizio si trova nella regione us-central o europe-west, utilizza us-central1 o europe-west1.

  6. Nel campo Rete, seleziona la rete VPC a cui collegare il connettore.

  7. Fai clic sul menu a discesa Subnet:

    • Se utilizzi il VPC condiviso, che richiede l'uso della tua subnet, 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 bilanciamento del carico HTTP(S) interno.
      • Per verificare che la subnet non sia utilizzata per Private Service Connect o bilanciamento del carico HTTP(S) interno, controlla che la subnet purpose sia PRIVATE eseguendo il comando seguente nell'interfaccia a riga di comando gcloud:
        gcloud compute networks subnets describe SUBNET_NAME
        
        Sostituisci:
        • SUBNET_NAME: il nome della subnet
    • Se non stai utilizzando un VPC condiviso e preferisci che il connettore crei una subnet anziché crearne una in modo esplicito, seleziona Intervallo IP personalizzato dal menu a discesa, poi nel campo Intervallo IP inserisci il primo indirizzo in un intervallo IP interno CIDR CIDR non prenotato. Questo intervallo IP non deve sovrapporsi ad alcuna prenotazione di indirizzi IP esistente nella tua rete VPC. Ad esempio, 10.8.0.0 (/28) funzionerà nella maggior parte dei nuovi progetti.

  8. (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à.

    1. Imposta il numero minimo e massimo di istanze per il connettore o utilizza i valori predefiniti, che sono 2 (min) e 10 (max). Il connettore fa lo scale out al massimo specificato se l'utilizzo del traffico lo richiede, ma il connettore non esegue lo scale down quando il traffico diminuisce. Devi utilizzare valori compresi tra 2 e 10.
    2. Nel menu a discesa Tipo di istanza, scegli il tipo di macchina da utilizzare per il connettore oppure utilizza l'impostazione predefinita di e2-micro. Osserva la barra laterale dei costi sulla destra quando scegli il tipo di istanza, che mostra la larghezza di banda e le stime dei costi.
  9. Fai clic su Crea.

  10. Quando è pronto per l'uso, verrà visualizzato un segno di spunta verde accanto al nome del connettore.

gcloud

  1. Aggiorna gcloud componenti alla versione più recente:

    gcloud components update
    
  2. Assicurati che l'API Serverless VPC Access sia abilitata per il tuo progetto:

    gcloud services enable vpcaccess.googleapis.com
    
  3. Se utilizzi una rete VPC condivisa, che richiede l'uso della tua subnet, crea un connettore con il comando seguente:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --region REGION \
    --subnet SUBNET \
    # If you are not using Shared VPC, omit the following line.
    --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. Questo deve essere conforme alla convenzione di denominazione di Compute Engine, con la restrizione aggiuntiva che prevede che sia inferiore a 21 caratteri con i trattini (-) che contano come due caratteri.
    • REGION: un'area geografica per il connettore; deve corrispondere all'area geografica del tuo servizio serverless. Se il servizio si trova nella regione us-central o europe-west, utilizza us-central1 o europe-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 bilanciamento del carico HTTP(S) interno.
      • Per verificare che la subnet non sia utilizzata per Private Service Connect o bilanciamento del carico HTTP(S) interno, controlla che la subnet purpose sia PRIVATE eseguendo il comando seguente nell'interfaccia a riga di comando gcloud:
        gcloud compute networks subnets describe SUBNET_NAME
        
        Sostituisci:
        • SUBNET_NAME: il nome della subnet
    • HOST_PROJECT_ID: ID del progetto host; fornisci questo solo se stai utilizzando un VPC condiviso
    • MIN: numero minimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra 2 e 9. Il valore predefinito è 2. Per ulteriori informazioni sulla scalabilità dei connettori, consulta Velocità effettiva e scalabilità.
    • MAX: numero massimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra 3 e 10. Il valore predefinito è 10. Se il traffico lo richiede, il connettore fa lo scale out alle istanze [MAX], ma non esegue lo scale down. Per ulteriori informazioni sulla scalabilità dei connettori, consulta Velocità effettiva e scalabilità.
    • MACHINE_TYPE: f1-micro, e2-micro o e2-standard-4. Per informazioni sulla velocità effettiva del connettore, inclusi tipo di macchina e scalabilità, consulta Velocità effettiva e scalabilità.

    Per maggiori dettagli e argomenti facoltativi, consulta il riferimento gcloud.

  4. Se non utilizzi il VPC condiviso e vuoi fornire un intervallo IP personalizzato anziché utilizzare una subnet, crea un connettore con il comando seguente:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --network VPC_NETWORK \
    --region REGION \
    --range IP_RANGE
    

    Sostituisci quanto segue:

    • CONNECTOR_NAME: un nome per il connettore. Questo deve essere conforme alla convenzione di denominazione di Compute Engine, con la restrizione aggiuntiva che prevede che sia inferiore a 21 caratteri con i trattini (-) che vengono conteggiati come due caratteri.
    • VPC_NETWORK: la rete VPC a cui collegare il connettore.
    • REGION: un'area geografica per il connettore. Deve corrispondere all'area geografica del tuo servizio serverless. Se il servizio si trova nella regione us-central o europe-west, utilizza us-central1 o europe-west1.
    • IP_RANGE: è richiesta una rete IP interna non prenotata e /28 di spazio non allocato. Il valore fornito è la rete in notazione CIDR (10.8.0.0/28). Questo intervallo IP non deve sovrapporsi ad alcuna prenotazione degli indirizzi IP esistente nella rete VPC. Ad esempio, 10.8.0.0/28 funziona nella maggior parte dei nuovi progetti.

    Per maggiori dettagli e argomenti facoltativi come i controlli della velocità effettiva, consulta il riferimento gcloud.

  5. Verifica che il connettore sia in 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; è il nome che hai specificato nel passaggio precedente.
    • REGION: regione del connettore, ovvero quella specificata nel passaggio precedente.

    L'output deve contenere la riga state: READY.

Terraform

Puoi usare una risorsa Terraform per abilitare l'API vpcaccess.googleapis.com.

resource "google_project_service" "vpcaccess-api" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

Puoi utilizzare i moduli Terraform per creare una rete VPC e una subnet, quindi creare il connettore.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 3.3.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

Configurare il servizio per l'utilizzo di un connettore

Dopo aver creato un connettore di accesso VPC serverless, devi configurare ogni servizio nell'app App Engine che vuoi connettere alla rete VPC.

Per specificare un connettore per un servizio nella tua app:

  1. Aggiungi il campo vpc_access_connector al file app.yaml del tuo servizio:

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Dove PROJECT_ID è l'ID progetto Cloud, REGION è l'area geografica in cui si trova il connettore e CONNECTOR_NAME è il nome del connettore.

  2. Esegui il deployment del servizio:

    gcloud app deploy
    

Dopo aver eseguito il deployment, il servizio può inviare richieste agli indirizzi IP interni per accedere alle risorse nella rete VPC.

Limita l'accesso alle risorse VPC

Puoi limitare l'accesso del connettore alla rete VPC utilizzando le regole del firewall.

Quando ti connetti a una rete VPC condivisa con connettori nei progetti di servizio, le regole firewall non vengono create automaticamente. Un utente con il ruolo Amministratore di rete nel progetto host imposta regole firewall quando configura il progetto host.

Quando ti connetti a una rete VPC autonoma o a una rete VPC condivisa con un connettore nel progetto host, viene creata automaticamente una regola firewall implicita con priorità 1000 sulla rete VPC per consentire il traffico in entrata dalla subnet o dall'intervallo IP personalizzato del connettore a tutte le destinazioni nella rete VPC. La regola firewall implicita non è visibile nella console Google Cloud ed esiste solo finché esiste il connettore associato. Se non vuoi che il tuo connettore possa raggiungere tutte le destinazioni nella rete VPC, puoi limitarne l'accesso.

Puoi limitare l'accesso al connettore creando regole in entrata nella risorsa di destinazione o creando regole in uscita sul connettore VPC.

Limitare l'accesso utilizzando le regole in entrata

Scegli tag di rete o intervalli CIDR per controllare il traffico in entrata nella rete VPC.

Tag di rete

I seguenti passaggi mostrano come creare regole in entrata che limitano l'accesso di un connettore alla rete VPC in base ai tag di rete del connettore.

  1. Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti ruoli di Identity and Access Management (IAM):

  2. Nega il traffico dei connettori sulla rete VPC.

    Crea una regola firewall in entrata con priorità inferiore a 1000 nella rete VPC per rifiutare il traffico in entrata dal tag di rete del connettore. Questa sostituisce la regola firewall implicita che l'accesso VPC serverless crea sulla tua 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. Devi specificare uno o più valori di ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per saperne di più, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi i connettori creati in futuro) o 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: l'area geografica del connettore che vuoi limitare
        • CONNECTOR_NAME: il nome del connettore che vuoi limitare

      Per scoprire di più sui tag di rete del connettore, consulta Tag di rete.

    • VPC_NETWORK: il nome della rete VPC

    • PRIORITY: un numero intero compreso tra 1 e 999 inclusi. Ad esempio, 990.

  3. Consenti il traffico del connettore verso la risorsa che dovrebbe ricevere il traffico del connettore.

    Utilizza i flag allow e target-tags per creare una regola firewall in entrata che abbia come target la risorsa nella tua rete VPC a cui vuoi che il connettore VPC possa accedere. Imposta la priorità di questa regola su un valore inferiore a quello della regola specificata 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. Devi specificare uno o più valori di ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per saperne di più, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi i connettori creati in futuro) o 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: l'area geografica del connettore che vuoi limitare
        • CONNECTOR_NAME: il nome del connettore che vuoi limitare

      Per scoprire di più sui tag di rete del connettore, consulta Tag di rete.

    • VPC_NETWORK: il nome della rete VPC

    • RESOURCE_TAG: il tag di rete per la risorsa VPC a cui vuoi che il connettore VPC acceda

    • PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola creata nel passaggio precedente su 990, prova 980.

Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione per gcloud compute firewall-rules create.

Intervallo CIDR

I seguenti passaggi mostrano come creare regole in entrata che limitano l'accesso di un connettore alla rete VPC in base all'intervallo CIDR del connettore.

  1. Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti ruoli di Identity and Access Management (IAM):

  2. Nega il traffico dei connettori sulla rete VPC.

    Crea una regola firewall in entrata con priorità inferiore a 1000 nella rete VPC per rifiutare il traffico in entrata dall'intervallo CIDR del connettore. Questa sostituisce la regola firewall implicita che l'accesso VPC serverless crea sulla tua rete VPC per impostazione predefinita.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=<_1, 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.
    • 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 1 e 999. Ad esempio, 990.
  3. Consenti il traffico del connettore verso la risorsa che dovrebbe ricevere il traffico del connettore.

    Utilizza i flag allow e target-tags per creare una regola firewall in entrata che abbia come target la risorsa nella tua rete VPC a cui vuoi che il connettore VPC possa accedere. Imposta la priorità di questa regola su un valore inferiore a quello della regola specificata 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. Devi specificare uno o più valori di ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per saperne di più, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR del connettore a 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 il connettore VPC acceda
    • PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola creata nel passaggio precedente su 990, prova 980.

Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione di gcloud compute firewall-rules create.

Limitare l'accesso utilizzando le regole in uscita

I seguenti passaggi mostrano come creare regole in uscita per limitare l'accesso al connettore.

  1. Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti ruoli di Identity and Access Management (IAM):

  2. Nega il traffico in uscita dal connettore.

    Crea una regola firewall in uscita sul connettore di accesso VPC serverless per impedire l'invio del traffico in uscita.

    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. Devi specificare uno o più valori di ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per saperne di più, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_NETWORK_TAG: tag di rete del connettore VPC universale se vuoi che la regola venga applicata a tutti i connettori VPC esistenti e a qualsiasi connettore VPC effettuato in futuro. Oppure, 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 1 e 999. Ad esempio, 990.
  3. Consenti il traffico in uscita quando la destinazione è nell'intervallo CIDR a cui vuoi che il connettore acceda.

    Utilizza i flag allow e destination-ranges per creare una regola firewall che consenta il traffico in uscita dal connettore per un intervallo di destinazione 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 specificata 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. Devi specificare uno o più valori di ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per saperne di più, consulta la documentazione per il flag allow.
    • RESOURCE_CIDR_RANGE: l'intervallo CIDR del connettore di cui stai limitando l'accesso
    • VPC_NETWORK: il nome della rete VPC
    • VPC_CONNECTOR_NETWORK_TAG: tag di rete del connettore VPC universale se vuoi che la regola venga applicata a tutti i connettori VPC esistenti e a qualsiasi connettore VPC effettuato in futuro. Oppure, il tag di rete del connettore VPC univoco se vuoi controllare un connettore specifico. Se hai utilizzato il tag di rete unico nel passaggio precedente, utilizza il tag di rete unico.
    • PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola creata nel passaggio precedente su 990, prova 980.

Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione per gcloud compute firewall-rules create.

Gestisci il connettore

Controllare il traffico in uscita da un servizio

Per impostazione predefinita, solo le richieste agli indirizzi IP interni e ai nomi DNS interni vengono indirizzate tramite un connettore di accesso VPC serverless. Puoi specificare l'impostazione per il traffico in uscita per il tuo servizio nel file app.yaml.

Le impostazioni per il traffico in uscita non sono compatibili con il servizio di recupero dell'URL. L'utilizzo della libreria urlfetch ignora le impostazioni di traffico in uscita e le richieste non verranno instradate tramite un connettore di accesso VPC serverless.

Per configurare il comportamento in uscita del tuo servizio App Engine:

  1. Aggiungi l'attributo egress_setting al campo vpc_access_connector del file app.yaml del tuo servizio:

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
      egress_setting: EGRESS_SETTING
    

    Sostituisci:

    • PROJECT_ID con il tuo ID progetto Cloud
    • REGION nella regione in cui si trova il connettore
    • CONNECTOR_NAME con il nome del connettore
    • EGRESS_SETTING con una delle seguenti opzioni:
      • private-ranges-only Impostazione predefinita. Solo le richieste a RFC 1918 e RFC 6598 intervalli di indirizzi IP o nomi DNS interni vengono instradati alla rete VPC. Tutte le altre richieste vengono indirizzate direttamente a Internet.
      • all-traffic Tutte le richieste in uscita dal tuo servizio vengono instradate alla tua rete VPC. Le richieste sono quindi soggette alle regole firewall, DNS e routing della rete VPC. Tieni presente che il routing di tutte le richieste in uscita verso la tua rete VPC aumenta la quantità di traffico in uscita gestita dal connettore di accesso VPC serverless e può richiedere addebiti.
  2. Esegui il deployment del servizio:

    gcloud app deploy
    

Disconnetti un servizio da una rete VPC

Per disconnettere un servizio da una rete VPC, rimuovi il campo vpc_access_connector dal file app.yaml ed esegui nuovamente il deployment del servizio.

I connettori continuano a essere addebitati anche se non hanno traffico e vengono scollegati. Per i dettagli, consulta i prezzi. Se non hai più bisogno del connettore, assicurati di eliminarlo per evitare che la fatturazione continui.

Eliminare un connettore

Prima di eliminare un connettore, accertati che non ci siano ancora servizi connessi.

Per gli utenti VPC condivisi che configurano i connettori nel progetto host del VPC condiviso, puoi utilizzare il comando gcloud compute networks vpc-access connectors describe per elencare i progetti in cui sono presenti servizi che utilizzano un determinato connettore.

Per eliminare un connettore, utilizza Google Cloud Console o Google Cloud CLI:

console

  1. Vai alla pagina di riepilogo dell'accesso VPC serverless in Google Cloud Console:

    Vai all'accesso VPC serverless

  2. Seleziona il connettore da eliminare.

  3. Fai clic su Elimina.

gcloud

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

Risolvere i problemi

Autorizzazioni account di servizio

Per eseguire operazioni nel progetto Cloud, l'accesso VPC serverless utilizza l'account di servizio Agente di servizio VPC Accesso 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 ha il ruolo di Agente di servizio VPC di accesso serverless (roles/vpcaccess.serviceAgent). Le operazioni di accesso VPC serverless potrebbero non riuscire se modifichi le autorizzazioni di questo account.

Errori

Se la creazione di un connettore genera un errore, prova quanto segue:

  • Specifica un intervallo IP interno RFC 1918 che non si sovrapponga alle prenotazioni di indirizzi IP esistenti nella rete VPC.
  • Concedi al tuo progetto l'autorizzazione per utilizzare le immagini VM di Compute Engine dal progetto con ID serverless-vpc-access-images. Consulta la pagina Impostare i vincoli di accesso alle immagini per informazioni su come aggiornare i criteri dell'organizzazione di conseguenza.

Se hai specificato un connettore ma non riesci ancora ad accedere alle risorse nella rete VPC:

  • Assicurati che non ci siano regole firewall sulla rete VPC con una priorità precedente a 1000 che negano il traffico in entrata dall'intervallo IP del connettore.

Passaggi successivi