Private networking e Cloud Run

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

Per sfruttare al meglio questi contenuti, devi avere una certa familiarità con i seguenti concetti:

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

  • Potresti avere una serie di risorse, ad esempio VM, su una o più reti VPC.
  • Queste VM potrebbero appartenere a molti progetti diversi e potrebbero essere collegate tra loro con un VPC condiviso.
  • Potresti avere carichi di lavoro on-premise o carichi di lavoro su altri cloud connessi a questo ambiente utilizzando Cloud VPN o Cloud Interconnect.
  • Potresti aver abilitato un perimetro dei Controlli di servizio VPC per ridurre il rischio di esfiltrazione di dati.
  • Potresti avere più reti private, una per ciascuno dei 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 a nessuna rete VPC specifica per impostazione predefinita. Questa pagina spiega come incorporare le risorse Cloud Run nella tua rete privata.

Narrativa sul networking serverless

Per esplorare una serie di configurazioni aziendali comuni per il networking pubblico e privato, leggi la nostra narrativa sul networking serverless.

Questo punto di partenza introduce i seguenti scenari Cloud Run di base e avanzati:

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

Consulta l'elenco dei moduli Terraform corrispondenti.

Ricevere richieste dalla rete privata

La ricezione di richieste dalla rete privata richiede una configurazione basata sulle seguenti condizioni:

  • Da dove proviene la richiesta.
  • Se la risorsa Cloud Run consente solo le richieste dalla rete privata.

Ad esempio, la ricezione di richieste dalle 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 traffico in entrata "interno" o "interno 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:

  1. Configura la risorsa di origine in modo che utilizzi il traffico in uscita VPC diretto 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 di origine in modo che instradi tutto il traffico tramite la rete VPC e abilita l'accesso privato Google nella subnet associata al traffico in uscita VPC diretto o al connettore.
    • Configura Private Service Connect o un bilanciatore del carico delle applicazioni interno per il front-end della 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.
    • Abilita l'accesso privato Google nella subnet associata alla risorsa di origine e configura il DNS in modo che risolva 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 che hanno indirizzi IP esterni o utilizzano Cloud NAT possono accedere direttamente a internet e a Google Cloud servizi come Pub/Sub e Cloud Run. Per le altre risorse, esistono alcune opzioni per abilitare il percorso del traffico verso Cloud Run:

  • Il percorso più diretto consiste nell'abilitare l'accesso privato Google nelle subnet che ospitano le risorse. Quando l'accesso privato Google è abilitato, 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 di log delle richieste, l'remoteIp attributo di 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 tua rete VPC, valuta la possibilità di creare un endpoint Private Service Connect e 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 risorse Cloud Run utilizzando l'URL associato al bilanciatore del carico delle applicazioni interno.
  • Se vuoi esporre il tuo servizio ai client interni come servizio gestito e controllare i progetti che possono accedervi, puoi ospitarlo con un bilanciatore del carico delle applicazioni interno e pubblicare il servizio 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 della richiesta.

Considerazioni speciali per il VPC condiviso

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

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

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

    • Solo le revisioni del servizio o le istanze Cloud Run che hanno configurato il traffico in uscita VPC diretto o che hanno configurato un connettore di accesso VPC serverless per inviare traffico alla rete VPC condiviso accetteranno anche il traffico 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 dal traffico in uscita VPC diretto o dal connettore. Tuttavia, le richieste inviate dalla rete VPC condiviso a Cloud Run utilizzano il percorso di traffico in entrata 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 una rete VPC diversa.

  • Stai utilizzando un bilanciatore del carico delle applicazioni interno per il proxy del traffico.

  • Hai inserito l'host del VPC condiviso e tutti i progetti di servizio nello stesso perimetro dei Controlli di servizio VPC. Per configurare i Controlli di servizio VPC, consulta Utilizzo dei Controlli di servizio VPC.

Considerazioni speciali per altre reti VPC esterne al tuo progetto

Quando utilizzi l'impostazione internal con i controlli di traffico in entrata di Cloud Run per applicare che tutto il traffico deve provenire dalla tua rete privata, il traffico proveniente da altre reti VPC esterne al tuo progetto non viene riconosciuto come "interno", tranne nelle seguenti situazioni:

  • I Controlli di servizio VPC sono configurati per consentire il traffico con run.googleapis.com come servizio limitato 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 acceduta 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 traffico in entrata di Cloud Run in modo da 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 vengono riconosciute come "interne".
  • Le richieste provenienti da Cloud Run o App Engine inviate dallo stesso progetto o perimetro dei Controlli di servizio VPC richiedono 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 servizio scelto Google Cloud non è in grado di accedere alle risorse Cloud Run con il traffico in entrata impostato su internal, tieni presente che molti servizi supportano l'autenticazione a Cloud Run, ad esempio Pub/Sub (supporta sia internal sia l'autenticazione), API Gateway e Dialogflow CX (supporta sia internal sia l'autenticazione). A seconda delle tue esigenze di sicurezza, potrebbe essere sufficiente che la risorsa Cloud Run di destinazione richieda l'autenticazione anziché il traffico in entrata "interno".
  • Le richieste provenienti da Google Cloud servizi non menzionati in precedenza non vengono riconosciute come interne e non possono essere ricevute dalle risorse Cloud Run con il traffico in entrata impostato su internal o internal-and-cloud-load-balancing.

Ricevere richieste da risorse on-premise o altri cloud

Esistono diversi modi per ricevere privatamente richieste da risorse on-premise e altri cloud.

Richiedere che le richieste provengano dalla rete privata

Per impedire il traffico in entrata da origini esterne, devi specificare un' impostazione di traffico in entrata restrittiva. L'impostazione di traffico in entrata più restrittiva è internal. Con il traffico in entrata 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 dei Controlli di servizio VPC. Esistono alcune limitazioni con questa impostazione a seconda della provenienza delle richieste. Per scoprire di più su queste limitazioni e su come aggirarle, consulta la sezione Ricevere richieste dalla rete privata.

Puoi specificare l'impostazione di traffico in entrata per ogni risorsa Cloud Run, o applicare l'utilizzo dell'impostazione di traffico in entrata preferita per tutte le risorse Cloud Run nella tua organizzazione.

  • Per specificare l'impostazione di traffico in entrata per ogni risorsa Cloud Run: consulta Impostare il traffico in entrata.
  • Per applicare una determinata impostazione di traffico in entrata per tutte le risorse Cloud Run nel tuo progetto, nella tua cartella o nella tua organizzazione: configura il vincolo dei criteri dell'organizzazione run.allowedIngress. Per scoprire come, consulta Personalizzare le policy per i vincoli di elenco.

Inviare richieste alla rete privata

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

Inviare richieste alla rete VPC

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

Quando il traffico in uscita VPC diretto o i connettori sono configurati, 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 del traffico in uscita della rete VPC.

  • Le richieste agli indirizzi IP interni vengono instradate alla rete VPC utilizzando il traffico in uscita VPC diretto o un connettore. Le richieste alle destinazioni pubbliche continuano a essere instradate direttamente a internet, a meno che l'impostazione del traffico in uscita non sia configurata diversamente.

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

Inviare richieste ad altre risorse e Google Cloud servizi 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 traffico in entrata restrittive, è necessaria una configurazione aggiuntiva. Consulta Ricevere richieste da altre risorse Cloud Run o App Engine.

Inviare richieste a risorse on-premise e altri cloud

Per inviare richieste a risorse on-premise e 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 che invii richieste alla rete VPC.
  3. Richiedi che tutte le richieste vengano inviate alla rete VPC.

Richiedere che tutte le richieste vengano inviate alla rete VPC

Per richiedere che tutte le richieste provenienti dalla risorsa Cloud Run vengano inviate a alla rete VPC, specifica l'impostazione del traffico in uscita della rete VPC all-traffic traffico in uscita. Puoi specificare l'impostazione del traffico in uscita per ogni risorsa Cloud Run che utilizza il traffico in uscita della rete VPC oppure puoi applicare l'utilizzo dell'impostazione del traffico in uscita preferita 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 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 altri cloud tramite la tua rete privata.

Se la risorsa Cloud Run invia richieste a destinazioni finali esterne alla rete VPC, richiedere che tutte le richieste vengano inviate 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 lo fare lo scale in se il traffico diminuisce. Consulta i prezzi per comprendere i costi.

Controlli aggiuntivi

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

Passaggi successivi

Per scoprire di più sulla fornitura di bassa latenza e throughput elevato utilizzando un percorso di rete diretto, consulta Traffico in uscita VPC diretto con una rete VPC.