Private networking e Cloud Run

Questa pagina illustra le opzioni di configurazione per includere le risorse Cloud Run nella 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, le risorse Cloud Run non sono associate per impostazione predefinita a una rete VPC specifica. Questa pagina spiega come incorporare le risorse 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
  • Contattare 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 rete privata richiede una configurazione in base alle seguenti condizioni:

  • La provenienza della richiesta.
  • Indica se la risorsa 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 altre risorse Cloud Run o App Engine

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

Per ricevere richieste da altre risorse Cloud Run o App Engine, segui questi passaggi:

  1. Configura la risorsa source in modo da utilizzare il traffico VPC diretto in uscita o un connettore.

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

    • Configura la risorsa sorgente 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 delle applicazioni interno per la risorsa 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 sottorete associata alla risorsa 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 con indirizzi IP esterni o che utilizzano Cloud NAT possono accedere direttamente a internet e aGoogle Cloud servizi come Pub/Sub e Cloud Run. Per altre risorse, sono disponibili alcune opzioni per attivare il percorso di traffico per Cloud Run:

  • Il percorso più diretto è abilitare l'accesso privato Google sulle subnet che ospitano le risorse. Quando l'accesso privato Google è attivo, le risorse nelle subnet possono accedere alle risorse Cloud Run all'URL run.app predefinito. Il traffico dalla rete VPC a Cloud Run rimane nella rete di Google. In questo caso, l'intervallo IP per le richieste inviate alla risorsa Cloud Run è0.0.0.0/32. Ciò significa che nelle voci del log delle richieste, l'attributo remoteIp del HttpRequest sarà 0.0.0.0.
  • Se vuoi che la risorsa Cloud Run (insieme ad altre API di Google) sia accessibile tramite un indirizzo IP interno nella rete VPC, ti consigliamo di creare un endpoint Private Service Connect e di configurare una zona DNS privata per run.app. Con questa configurazione, le risorse nella rete VPC possono accedere alle risorse Cloud Run all'URL run.app predefinito tramite l'indirizzo IP dell'endpoint Private Service Connect.
  • 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 nella rete VPC accedono alle tue risorse Cloud Run utilizzando l'URL associato al bilanciatore del carico delle applicazioni interno.
  • 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. I progetti che devono utilizzare il servizio possono accedervi utilizzando un endpoint Private Service Connect o un backend Private Service Connect.

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

Considerazioni speciali per VPC condiviso

Quando utilizzi l'impostazione internal con i controlli di ingresso di Cloud Run per imporre che tutto il traffico debba provenire dalla tua rete privata, il traffico VPC condiviso viene riconosciuto come "interno" solo nelle seguenti situazioni:

  • La risorsa Cloud Run è in esecuzione nel progetto host VPC condiviso.

  • Ingresso VPC condiviso: la risorsa Cloud Run è collegata a una rete VPC condivisa. In questo scenario, tieni presente le seguenti considerazioni:

    • Solo le revisioni dei servizi 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 una risorsa Cloud Run dalla rete VPC condiviso, esegui nuovamente il deployment senza accesso alla rete VPC o con la risorsa configurata per inviare traffico a un'altra rete VPC.

  • 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 reti VPC esterne al progetto

Quando utilizzi l'impostazione internal con i controlli di accesso di Cloud Run per imporre che tutto il traffico debba provenire dalla tua rete privata, il traffico proveniente da altre reti VPC esterne 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.
  • La risorsa Cloud Run viene pubblicata come servizio gestito utilizzando Private Service Connect (richiede un bilanciatore del carico delle applicazioni interno) e viene accessa dall'altra rete VPC.

Il peering con una rete VPC esterna al tuo progetto non consente di riconoscere il traffico come "interno".

Ricevere richieste da altri Google Cloud servizi

Le richieste a Cloud Run da Google Cloud servizi 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 BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, monitor sintetici (inclusi i controlli di uptime) e Workflows nello stesso progetto o perimetro dei Controlli di servizio VPC sono riconosciute come "interne".
  • Le richieste inviate da Cloud Run o App Engine 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 o App Engine.
  • Se il Google Cloud servizio scelto non è in grado di accedere alle risorse Cloud Run con l'ingress impostato su internal, tieni presente che molti servizi supportano l'autenticazione a Cloud Run, ad esempio Pub/Sub (supporta sia internal che l'autenticazione), API Gateway e Dialogflow CX (supporta sia internal che l'autenticazione). A seconda delle tue esigenze di sicurezza, potrebbe essere sufficiente che la risorsa Cloud Run di destinazione richieda l'autenticazione anziché l'ingresso "interno".
  • Le richieste provenienti da Google Cloud servizi non menzionati in precedenza non sono riconosciute come interne e non possono essere ricevute dalle risorse Cloud Run per le quali l'ingresso è impostato su internal o internal-and-cloud-load-balancing.

Ricevere richieste da risorse on-premise o da altri cloud

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

Richiedi che le richieste provengano dalla tua rete privata

Per impedire il traffico in entrata (ingress) da origini esterne, specifica 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 risorsa Cloud Run o imporre l'uso dell'impostazione di ingresso che preferisci per tutte le risorse Cloud Run della tua organizzazione.

  • Per specificare l'impostazione di ingresso per ogni risorsa Cloud Run: consulta Impostazione di ingresso.
  • Per applicare una determinata impostazione di ingresso per tutte le risorse Cloud Run nel progetto, nella cartella o nell'organizzazione: configura il vincolo run.allowedIngress dei criteri dell'organizzazione. Per scoprire come, consulta Personalizzare le norme per le limitazioni degli elenchi.

Inviare richieste alla tua rete privata

Se la risorsa Cloud Run deve accedere a una risorsa sulla tua rete privata, devi 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 VPC diretta e i connettori VPC. Esamina i prezzi per comprendere i costi.

Quando sono configurati i connettori 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 o l'uscita VPC diretta, le risposte vengono restituite utilizzando il percorso seguito dalla richiesta. Le richieste da una rete VPC a Cloud Run sono abilitate tramite l'utilizzo di altre tecnologie e non vengono instradate tramite connettori o 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 rete VPC a Cloud Run, consulta 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 di VPC condiviso, consulta Connettersi a una rete VPC.
  2. Per altre reti VPC, configura l'uscita VPC diretta o un connettore per connetterti a una VPC nel tuo progetto.
    • Reti VPC con peering: per inviare a un VPC con peering con un VPC che utilizza l'uscita della rete VPC, non è richiesta alcuna configurazione aggiuntiva. Tuttavia, le VM nella subnet che ospita l'uscita della rete VPC devono essere in grado di raggiungere la rete VPC di destinazione.
    • Altre reti VPC: per le reti VPC al di fuori del progetto che non fanno parte dello stesso ambiente VPC condiviso o non sono in peering con la rete VPC del progetto, configura Private Service Connect dopo aver configurato il traffico in uscita dalla rete VPC.

Inviare richieste ad altre risorse e altri servizi Google Cloud Cloud Run

Le richieste da una risorsa Cloud Run a un'altra o ad altri Google Cloud servizi rimangono all'interno della rete interna di Google e sono soggette ai controlli di servizio VPC.

Per le richieste alle risorse Cloud Run con impostazioni di ingresso restrittive, è necessaria una configurazione aggiuntiva. Consulta Ricevere richieste da altre risorse Cloud Run o App Engine.

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. Richiedi che tutte le richieste vadano alla tua rete VPC.

Richiedi che tutte le richieste vengano inviate alla tua rete VPC

Per richiedere che tutte le richieste della risorsa Cloud Run vengano inviate alla rete VPC, specifica l'all-traffic impostazione di uscita della rete VPC. Puoi specificare l'impostazione di uscita per ogni risorsa Cloud Run che utilizza l'uscita della rete VPC oppure puoi applicare l'uso della impostazione di uscita che preferisci per tutte le risorse 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 la tua risorsa Cloud Run.
  2. Vuoi applicare regole firewall per tutto il traffico in uscita da una risorsa Cloud Run.
  3. Vuoi inviare richieste a risorse on-premise e ad altri cloud tramite la tua rete privata.

Se la risorsa Cloud Run invia richieste a destinazioni finali al di fuori della rete VPC, l'obbligo di indirizzare tutte le richieste alla rete VPC aumenta l'utilizzo della larghezza di banda sui connettori di accesso VPC serverless configurati e potrebbe aumentare i costi di conseguenza. I connettori eseguono automaticamente lo scale out quando il traffico aumenta, ma non fare lo scale in 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 al traffico da una risorsa specifica all'interno della tua rete privata, ad esempio una risorsa Cloud Run o una macchina virtuale Compute Engine, 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 le risorse Cloud Run in una rete privata.