Private networking e Cloud Run

Questa pagina illustra le opzioni di configurazione per includere i servizi Cloud Run nella tua rete privata.

Per trarre il massimo vantaggio da questi contenuti, dovresti avere familiarità con i seguenti concetti:

Per proteggere il traffico di rete per i propri servizi e le proprie applicazioni, molte organizzazioni utilizzano una rete privata su Google Cloud con controlli perimetrali per impedire l'esfiltrazione di dati. La tua rete privata potrebbe avere le seguenti proprietà:

  • Potresti avere una serie di risorse, ad esempio VM, in una o più reti VPC.
  • Queste VM potrebbero appartenere a molti progetti diversi e essere collegate tra loro con un VPC condiviso.
  • Potresti avere carichi di lavoro on-premise o su altri cloud collegati a questo ambiente utilizzando Cloud VPN o Cloud Interconnect.
  • Potresti aver attivato un perimetro dei Controlli di servizio VPC per ridurre il rischio di esfiltrazione di dati.
  • Potresti avere più reti private, una per ciascuno di diversi ambienti, ad esempio una per la produzione, una per la gestione temporanea e una per lo sviluppo.

A differenza delle VM, per impostazione predefinita i servizi Cloud Run non sono associati a una determinata rete VPC. In questa pagina viene spiegato come integrare i servizi Cloud Run nella tua rete privata.

Narrativa sulla rete serverless

Per esplorare una serie di configurazioni aziendali comuni per le reti pubbliche e private, consulta la nostra documentazione sulla rete serverless.

Questo punto di partenza introduce i seguenti scenari Cloud Run, da quelli di base a quelli avanzati:

  • Eseguire il deployment in sicurezza di un'app "Hello, World!" che utilizza un dominio personalizzato
  • Sviluppare applicazioni aziendali e microservizi
  • Accedere a database e file system pubblicamente o privatamente
  • Connettiti con i fornitori SaaS
  • Applicare i controlli di sicurezza

Consulta l'elenco dei moduli Terraform corrispondenti.

Ricevere richieste dalla tua rete privata

La ricezione di richieste dalla tua rete privata richiede la configurazione in base alle seguenti condizioni:

  • La località da cui proviene la richiesta.
  • Indica se il servizio Cloud Run consente solo richieste dalla tua rete privata.

Ad esempio, la ricezione di richieste da reti VPC potrebbe richiedere una configurazione diversa rispetto alla ricezione di richieste da risorse on-premise e altri cloud.

Ricevere richieste da altri servizi Cloud Run, App Engine e funzioni Cloud Run

Quando il servizio Cloud Run di destinazione riceve traffico da altri servizi Cloud Run, App Engine o funzioni Cloud Run e utilizza l'impostazione di ingresso "interno" o "interno e bilanciamento del carico", il traffico deve utilizzare la rete VPC per essere considerato interno.

Per ricevere richieste da altri servizi Cloud Run, App Engine o funzioni Cloud Run, svolgi i seguenti passaggi:

  1. Configura il servizio di origine in modo che utilizzi l'uscita VPC diretta o un connettore.

  2. Assicurati che il traffico verso Cloud Run venga instradato tramite la rete VPC utilizzando una delle seguenti opzioni:

    • Configura il servizio di origine in modo che invii tutto il traffico tramite la rete VPC e abilita l'accesso privato Google nella subnet associata all'uscita diretta VPC o al connettore.
    • Configura Private Service Connect o un bilanciatore del carico di applicazioni interno per il servizio Cloud Run di destinazione. Con questa configurazione, accedi a Cloud Run utilizzando indirizzi IP interni, quindi le richieste vengono instradate tramite la rete VPC.
    • Attiva l'accesso privato Google nella subnet associata al servizio di origine e configura il DNS per risolvere gli URL run.app negli intervalli private.googleapis.com (199.36.153.8/30) o restricted.googleapis.com (199.36.153.4/30). Le richieste a questi intervalli vengono instradate tramite la rete VPC.

Ricevere richieste dalle reti VPC

Per impostazione predefinita, solo le risorse VPC con indirizzi IP pubblici o che utilizzano Cloud NAT possono accedere direttamente a internet e ai servizi Google Cloud come Pub/Sub e Cloud Run. Per altre risorse VPC, sono disponibili alcune opzioni per abilitare il percorso di traffico verso Cloud Run:

  1. Il percorso più diretto è abilitare l'accesso privato Google sulle subnet che ospitano le risorse VPC. Una volta attivate, le risorse nelle sottoreti possono accedere ai tuoi servizi Cloud Run all'URL run.app predefinito. Il traffico dalla tua VPC a Cloud Run rimane nella rete di Google. In questo caso, l'intervallo IP per le richieste inviate al servizio Cloud Run è 0.0.0.0/32. Ciò significa che nelle voci di log delle richieste, l'attributo remoteIp di HttpRequest sarà 0.0.0.0.
  2. Se devi esporre il tuo servizio Cloud Run (insieme ad altre API Google) come indirizzo IP interno nella tua rete VPC, valuta la possibilità di utilizzare Private Service Connect. Una volta attivate, le risorse VPC possono accedere ai tuoi servizi Cloud Run all'URL run.app predefinito utilizzando l'indirizzo IP interno.
  3. Se hai bisogno di funzionalità e controlli di bilanciamento del carico, valuta la possibilità di utilizzare un bilanciatore del carico delle applicazioni interno. Con questo approccio, le risorse VPC accedono ai tuoi servizi Cloud Run utilizzando l'URL associato all'Application Load Balancer interno.
  4. Se vuoi esporre il tuo servizio ai clienti interni come servizio gestito ed essere in grado di controllare i progetti che possono accedervi, puoi ospitarlo con un bilanciatore del carico delle applicazioni interno e pubblicarlo utilizzando Private Service Connect. Anche i progetti che devono utilizzare il servizio possono accedere utilizzando Private Service Connect.

Le risposte vengono restituite utilizzando lo stesso percorso seguito dalla richiesta.

Considerazioni speciali per la VPC condiviso

Se utilizzi i controlli di ingresso di Cloud Run per imporre che tutto il traffico provenga dalla tua rete privata (utilizzando l'impostazione internal), tieni presente che il traffico VPC condiviso è riconosciuto come "interno" solo nelle seguenti situazioni:

  • Il servizio Cloud Run è in esecuzione nel progetto host VPC condiviso.

  • Ingresso VPC condiviso: Il servizio Cloud Run è collegato a una rete VPC condivisa. In questo scenario, tieni presente le seguenti considerazioni:

    • Solo le revisioni del servizio che hanno configurato il traffico VPC diretto in uscita o che hanno configurato un connettore di accesso VPC serverless per inviare traffico alla rete VPC condiviso accetteranno anche il traffico proveniente dalla stessa rete VPC condiviso.

    • Le richieste utilizzano percorsi diversi in base alla direzione del traffico. Le richieste inviate da Cloud Run alla rete VPC condiviso vengono instradate tramite il traffico VPC diretto in uscita o il connettore. Tuttavia, le richieste inviate dalla rete VPC condiviso a Cloud Run utilizzano il percorso di ingresso standard.

    • Per scollegare un servizio Cloud Run dalla rete VPC condiviso, esegui nuovamente il deployment senza accesso alla rete VPC o con il servizio configurato per inviare il traffico a una rete VPC diversa.

  • Utilizzi un bilanciatore del carico delle applicazioni interno per eseguire il proxy del traffico.

  • Hai posizionato l'host VPC condiviso e tutti i progetti di servizio all'interno dello stesso perimetro dei Controlli di servizio VPC. Per configurare i Controlli di servizio VPC, consulta Utilizzo di Controlli di servizio VPC.

Considerazioni speciali per altre VPC esterne al tuo progetto

Se utilizzi i controlli di ingresso di Cloud Run per imporre che tutto il traffico debba provenire dalla tua rete privata (utilizzando l'impostazione internal), tieni presente che il traffico proveniente da altri VPC esterni al tuo progetto non è riconosciuto come "interno", tranne nelle seguenti situazioni:

  • Controlli di servizio VPC è configurato per consentire il traffico con run.googleapis.com come servizio con limitazioni e l'accesso privato Google è abilitato per la subnet di origine.
  • Il servizio Cloud Run viene pubblicato come servizio gestito utilizzando Private Service Connect (richiede un bilanciatore del carico delle applicazioni interno) e viene acceso dall'altra rete VPC.

Il peering di un VPC esterno al progetto non consente di riconoscere il traffico come "interno".

Ricevere richieste da altri servizi Google Cloud

Le richieste a Cloud Run da servizi Google Cloud come Pub/Sub rimangono all'interno della rete di Google.

Esistono alcune considerazioni speciali se hai configurato i controlli di ingresso di Cloud Run per consentire solo il traffico "interno":

  • Le richieste provenienti da Cloud Scheduler, Cloud Tasks, Eventarc, Pub/Sub, monitori sintetici (inclusi i controlli di uptime) e Workflows nello stesso progetto o perimetro dei controlli di servizio VPC sono riconosciute come "interne".
  • Le richieste provenienti da Cloud Run, App Engine e dalle funzioni Cloud Run inviate dall'interno dello stesso progetto o dello stesso perimetro dei Controlli di servizio VPC richiedono tutte una configurazione aggiuntiva prima di essere riconosciute come "interne". Per maggiori dettagli, consulta la sezione Ricevere richieste da altri servizi Cloud Run, App Engine e Cloud Run Functions.
  • Se il servizio Google Cloud scelto non è in grado di accedere ai servizi Cloud Run con l'ingresso impostato su internal, tieni presente che molti supportano l'autenticazione a Cloud Run, ad esempio Pub/Sub (supporta sia internal sia l'autenticazione), API Gateway e Dialogflow CX. A seconda delle tue esigenze di sicurezza, potrebbe essere sufficiente che il servizio Cloud Run di destinazione richieda l'autenticazione anziché l'ingresso "interno".
  • Le richieste provenienti da servizi Google Cloud non menzionati sopra non sono riconosciute come interne e non possono essere ricevute dai servizi Cloud Run per i quali l'ingresso è impostato su internal o internal-and-cloud-load-balancing.

Ricevere richieste da on-prem o altri cloud

Esistono diversi modi per ricevere richieste in privato dalle risorse on-premise e da altri cloud.

  1. Configurazione di base: per consentire alle richieste provenienti dalle risorse on-premise e da altri cloud di attraversare la tua rete privata, configura Accesso privato Google per gli host on-premise.
  2. Esponi il servizio Cloud Run con un indirizzo IP interno: per chiamare i servizi Cloud Run utilizzando un indirizzo IP interno, configura Private Service Connect per gli host on-premise. L'aggiunta di Private Service Connect per gli host on-premise ti consente di esporre il servizio Cloud Run alla rete VPC come indirizzo IP interno. Private Service Connect comporta costi.
  3. Con funzionalità di bilanciamento del carico: se hai bisogno di funzionalità e controlli di bilanciamento del carico, utilizza un bilanciatore del carico delle applicazioni interno.
  4. Tra i confini amministrativi: se vuoi esporre il tuo servizio ai client interni come servizio gestito ed essere in grado di controllare i progetti che possono accedervi, puoi pubblicarlo utilizzando Private Service Connect. Per utilizzarlo, consulta Utilizzare Private Service Connect da host on-premise (è necessario un bilanciatore del carico di applicazioni interno).

Richiedere che le richieste provengano dalla tua rete privata

Per impedire il traffico in entrata (ingress) da origini esterne, puoi specificare un'impostazione di ingresso restrittiva. L'impostazione di ingresso più restrittiva è internal. Se Ingress è impostato su internal, il servizio consente solo le richieste provenienti dal tuo progetto, dalle reti VPC condiviso a cui è collegato il tuo progetto e dal perimetro di Controlli di servizio VPC. Questa impostazione presenta alcune limitazioni a seconda della provenienza delle richieste. Per conoscere queste limitazioni e come gestirle, consulta la sezione Ricevere richieste dalla tua rete privata.

Puoi specificare l'impostazione di ingresso per ogni servizio Cloud Run o imporre l'uso dell'impostazione di ingresso che preferisci per tutti i servizi Cloud Run della tua organizzazione.

Inviare richieste alla tua rete privata

Se il servizio Cloud Run deve accedere a una risorsa sulla tua rete privata, puoi configurare un percorso per le richieste private alla tua rete. La configurazione dipende dalla destinazione finale della richiesta.

Invia richieste alla tua rete VPC

Per inviare richieste a una rete VPC, devi configurare il traffico VPC diretto in uscita o un connettore di accesso VPC serverless. Confronta l'uscita diretta VPC e i connettori VPC. Esamina i prezzi per comprendere i costi.

Quando sono configurati i connettori di accesso VPC serverless o il traffico VPC diretto in uscita, per impostazione predefinita si applicano le seguenti considerazioni:

  • Tutte le query DNS vengono inviate al server DNS configurato per la rete VPC associata alla configurazione di uscita della rete VPC.

  • Le richieste agli indirizzi IP interni vengono inoltrate alla rete VPC utilizzando l'uscita VPC diretta o un connettore. Le richieste alle destinazioni pubbliche continuano a essere inoltrate direttamente a internet, a meno che l'impostazione di uscita non sia configurata diversamente.

Quando le richieste vengono instradate utilizzando i connettori di accesso VPC serverless o il traffico VPC diretto in uscita, le risposte vengono restituite utilizzando il percorso percorso dalla richiesta. Le richieste dal tuo VPC a Cloud Run sono abilitate tramite l'utilizzo di altre tecnologie e non vengono instradate tramite l'accesso VPC serverless o il traffico VPC diretto in uscita. Le risposte a queste richieste vengono restituite utilizzando lo stesso percorso. Per scoprire di più sull'invio di richieste dalla tua VPC a Cloud Run, consulta la sezione Ricevere richieste dalle reti VPC.

Invio di richieste a una rete VPC esterna al tuo progetto

Per inviare richieste a una rete VPC esterna al tuo progetto:

  1. Per gli utenti VPC condiviso, consulta Connessione a una rete VPC condivisa.
  2. Per altri VPC, configura il traffico VPC diretto in uscita o un connettore di accesso VPC serverless per connetterti a un VPC nel tuo progetto.
    • VPC con peering:per inviare a un VPC con peering con un VPC che utilizza l'uscita della rete VPC, non è necessaria alcuna configurazione aggiuntiva. Tuttavia, le VM nella subnet che ospitano l'egress della rete VPC devono essere in grado di raggiungere la rete VPC di destinazione.
    • Altri VPC: per le reti VPC esterne al progetto che non fanno parte dello stesso ambiente VPC condiviso o non sono in peering con il VPC del progetto, configura Private Service Connect dopo aver configurato il traffico in uscita della rete VPC.

Inviare richieste ad altri servizi Cloud Run e Google Cloud

Le richieste da un servizio Cloud Run a un altro o ad altri servizi Google Cloud rimangono all'interno della rete interna di Google e sono soggette a Controlli di servizio VPC.

Per le richieste ai servizi Cloud Run con impostazioni di ingresso restrittive, è necessaria una configurazione aggiuntiva. Consulta Ricevere richieste da altri servizi Cloud Run, App Engine e funzioni Cloud Run.

Invia richieste a risorse on-premise e ad altri cloud

Per inviare richieste alle risorse on-premise e ad altri cloud tramite la tua rete privata, devi:

  1. Assicurati che la rete VPC sia configurata per instradare privatamente il traffico alla destinazione, ad esempio tramite un tunnel VPN.
  2. Configura il servizio in modo da inviare richieste alla tua rete VPC.
  3. Poi, richiedi che tutte le richieste vengano inoltrate alla tua rete VPC.

Richiedi che tutte le richieste vengano inviate alla tua rete VPC

Per richiedere che tutte le richieste del servizio Cloud Run vengano indirizzate alla rete VPC, specifica l'impostazione di uscita "all-traffic" della rete VPC. Puoi specificare l'impostazione di uscita per ogni servizio Cloud Run che utilizza l'uscita della rete VPC oppure puoi applicare l'utilizzo della impostazione di uscita preferita per tutti i servizi Cloud Run nel tuo progetto, nella tua cartella o nella tua organizzazione.

Questa opzione è utile nelle seguenti situazioni:

  1. Vuoi configurare un indirizzo IP in uscita statico per il tuo servizio Cloud Run.
  2. Vuoi applicare regole firewall per tutto il traffico in uscita da un servizio Cloud Run.
  3. Vuoi inviare richieste alle risorse on-premise e ad altri cloud tramite la tua rete privata.

Se il servizio Cloud Run invia richieste a destinazioni finali al di fuori della rete VPC, l'obbligo di inviare tutte le richieste alla rete VPC aumenta l'utilizzo della larghezza di banda sul connettore accesso VPC serverless (se configurato) e potrebbe aumentare i costi di conseguenza. I connettori di accesso VPC serverless eseguono automaticamente lo scale out quando il traffico aumenta, ma non fare lo scale in fanno se il traffico diminuisce. Esamina i prezzi per comprendere i costi.

Controlli aggiuntivi

  • Controlli perimetrali: per ridurre il rischio di esfiltrazione di dati per un gruppo di risorse, inseriscile in un perimetro basato sul contesto utilizzando i Controlli di servizio VPC.
  • Controlli granulari: per controllare l'accesso per il traffico da una risorsa specifica all'interno della tua rete privata, ad esempio un servizio Cloud Run o una macchina virtuale Compute Engine specifici, utilizza gli account di servizio per controllare le autorizzazioni e l'autenticazione.

Passaggi successivi

Se utilizzi Terraform, è disponibile il codice di esempio di Terraform per configurare i servizi Cloud Run in una rete privata.