Networking privato e Cloud Run

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

Per sfruttare al massimo questi contenuti, dovresti 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 su Google Cloud con controlli perimetrali per prevenire l'esfiltrazione di dati. La tua rete privata potrebbe avere le seguenti proprietà:

  • Potresti avere varie risorse, ad esempio VM, che risiedono su una o più reti VPC.
  • Queste VM potrebbero appartenere a molti progetti diversi e potrebbero essere collegate tra loro da 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 Controlli di servizio VPC per ridurre il rischio di esfiltrazione di dati.
  • Potresti avere più reti private, una per ciascuno dei vari ambienti diversi, ad esempio una per la produzione, una per la gestione temporanea e una per lo sviluppo.

A differenza delle VM, i servizi Cloud Run non sono associati a una particolare rete VPC per impostazione predefinita. Questa pagina spiega come incorporare i servizi Cloud Run nella tua rete privata.

Narrazione di networking serverless

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

Questo punto di partenza introduce i seguenti scenari Cloud Run di base-avanzata:

  • Distribuisci in sicurezza un'app "Hello World!" che utilizza un dominio personalizzato
  • Sviluppa applicazioni e microservizi aziendali
  • Accedi a database e file system pubblicamente o privatamente
  • Entrare in contatto con fornitori SaaS
  • Applicare i controlli di sicurezza

Consulta l'elenco dei moduli Terraform corrispondenti.

Ricevi richieste dalla tua rete privata

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

  • Provenienza della richiesta.
  • Indica se il servizio Cloud Run consente solo le richieste provenienti 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 da altri cloud.

Ricevi richieste da altri servizi Cloud Run, App Engine e Cloud Functions

Quando il servizio Cloud Run di destinazione riceve traffico da altri servizi Cloud Run, App Engine o Cloud Functions e utilizza l'impostazione in entrata "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 Cloud Functions, segui questi passaggi:

  1. Configura il servizio di origine 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 il servizio di origine per inviare tutto il traffico attraverso la rete VPC e abilita l'accesso privato Google sulla subnet associata al traffico VPC diretto in uscita o al connettore.
    • Configura Private Service Connect o un bilanciatore del carico delle applicazioni interno a fronte del servizio Cloud Run di destinazione. Con questa configurazione, puoi accedere a Cloud Run utilizzando indirizzi IP interni, quindi le richieste vengono instradate tramite la rete VPC.
    • Abilita l'accesso privato Google sulla subnet associata al servizio di origine e configura il DNS per risolvere run.app URL 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.

Richieste di ricezione da reti VPC

Per impostazione predefinita, solo le risorse VPC che hanno 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 del traffico verso Cloud Run:

  1. Il percorso più diretto è abilitare l'accesso privato Google sulle subnet che ospitano le tue risorse VPC. Una volta abilitate, le risorse sulle subnet possono accedere ai servizi Cloud Run all'URL run.app predefinito. Il traffico dal tuo VPC a Cloud Run rimane nella rete 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 è necessario esporre il servizio Cloud Run (insieme ad altre API di Google) come indirizzo IP interno nella rete VPC, considera Private Service Connect. Una volta abilitate, le risorse VPC possono accedere ai 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 l'utilizzo di un bilanciatore del carico delle applicazioni interno. Con questo approccio, le risorse VPC accedono ai servizi Cloud Run mediante l'URL associato al bilanciatore del carico delle applicazioni interno.
  4. Se vuoi esporre il tuo servizio ai client interni come servizio gestito e vuoi controllare a quali progetti possono accedere, puoi ospitarlo con un bilanciatore del carico delle applicazioni interno e pubblicarlo utilizzando Private Service Connect. I progetti che devono utilizzare il servizio possono anche accedere tramite Private Service Connect.

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

Considerazioni speciali per il VPC condiviso

Se utilizzi i controlli in entrata 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 viene 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 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 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 in entrata standard.

    • Per scollegare un servizio Cloud Run dalla rete VPC condiviso, riesegui il deployment senza accesso alla rete VPC o con il servizio configurato per inviare traffico a un'altra rete VPC.

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

  • Hai posizionato l'host del 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 dei Controlli di servizio VPC (VPC SC).

Considerazioni speciali per altri VPC esterni al progetto

Se utilizzi i controlli in entrata 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 viene riconosciuto come "interno", tranne che nelle seguenti situazioni:

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

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

Ricevi richieste da altri servizi Google Cloud

Le richieste a Cloud Run da servizi Google Cloud come Pub/Sub rimangono nella rete Google.

Se hai configurato i controlli in entrata di Cloud Run per consentire solo il traffico "interno", occorre fare alcune considerazioni speciali:

  • Le richieste provenienti da Cloud Scheduler, Cloud Tasks, Eventarc, Pub/Sub, monitor sintetici (inclusi i controlli di uptime) e Workflows nello stesso perimetro del progetto o dei Controlli di servizio VPC sono riconosciute come "interne".
  • Le richieste da Cloud Run, App Engine e Cloud Functions 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 Ricevi richieste da altri servizi Cloud Run, App Engine e Cloud Functions.
  • Se il servizio Google Cloud che hai scelto non è in grado di accedere ai servizi Cloud Run con traffico in entrata impostato su internal, tieni presente che molti supportano l'autenticazione in Cloud Run, ad esempio Pub/Sub (supporta sia internal sia l'autenticazione), Gateway API e Dialogflow CX. A seconda delle esigenze di sicurezza, potrebbe essere sufficiente che il servizio Cloud Run di destinazione richieda l'autenticazione anziché il traffico in entrata "interno".
  • Le richieste dei servizi Google Cloud non menzionati sopra non sono riconosciute come interne e non possono essere ricevute dai servizi Cloud Run in cui il traffico in entrata è impostato su internal o internal-and-cloud-load-balancing.

Ricevi richieste da on-prem o da altri cloud

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

  1. Configurazione di base: per fare in modo che le richieste provenienti da risorse on-premise e da altri cloud possano attraversare la tua rete privata, configura l'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 host on-premise. L'aggiunta di Private Service Connect per host on-premise consente di esporre il servizio Cloud Run alla rete VPC come indirizzo IP interno. Private Service Connect prevede 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. Oltre i confini amministrativi: se vuoi esporre il tuo servizio ai client interni come servizio gestito e vuoi essere in grado di controllare a quali progetti possono accedere, puoi pubblicarlo utilizzando Private Service Connect. Per utilizzarlo, consulta Utilizzo di Private Service Connect da host on-premise (richiede un bilanciatore del carico delle applicazioni interno).

Richiedi che le richieste provengano dalla tua rete privata

Per impedire il traffico in entrata da origini esterne, puoi specificare un'impostazione 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 progetto e dal perimetro dei Controlli di servizio VPC. Esistono alcune limitazioni a questa impostazione a seconda della provenienza delle richieste. Per scoprire di più su queste limitazioni e su come gestirle, consulta la sezione Ricevere richieste dalla tua rete privata.

Puoi specificare l'impostazione di traffico in entrata per ciascun servizio Cloud Run o imporre l'utilizzo della tua impostazione di traffico in entrata preferita per tutti i servizi Cloud Run della tua organizzazione.

Invia richieste alla tua rete privata

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

Invia richieste alla tua rete VPC

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

Quando sono configurati i connettori VPC diretto in uscita o Accesso VPC serverless, 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 dalla rete VPC.

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

Con le richieste instradate tramite connettori VPC diretto in uscita o Accesso VPC serverless, le risposte vengono restituite utilizzando il percorso attraverso il quale è passata la richiesta. Le richieste dal tuo VPC a Cloud Run vengono abilitate utilizzando altre tecnologie e non vengono instradate tramite accesso VPC serverless o VPC diretto in uscita e le risposte a queste richieste vengono restituite utilizzando lo stesso percorso. Per ulteriori informazioni sull'invio di richieste dal tuo VPC a Cloud Run, consulta la sezione Ricevi richieste dalle reti VPC.

Invio di richieste a una rete VPC esterna al progetto

Per inviare richieste a una rete VPC esterna al progetto:

  1. Per gli utenti del VPC condiviso, consulta Connettersi 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 progetto.
    • VPC in peering:per l'invio a un VPC connesso in peering a un VPC che utilizza il traffico in uscita dalla rete VPC, non sono necessarie ulteriori configurazioni. Tuttavia, le VM nella subnet in uscita dalla rete VPC che ospita 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 che non sono connesse in peering al VPC del progetto, configura Private Service Connect dopo aver impostato il traffico in uscita dalla rete VPC.

Invia richieste ad altri servizi Cloud Run e servizi 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 ai Controlli di servizio VPC.

Per le richieste ai servizi Cloud Run con impostazioni restrittive di traffico in entrata, è necessaria un'ulteriore configurazione. Vedi Ricevi richieste da altri servizi Cloud Run, App Engine e Cloud Functions.

Invia richieste a risorse on-premise e altri cloud

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

  1. Assicurati che la tua rete VPC sia configurata per instradare privatamente il traffico alla destinazione, ad esempio attraverso un tunnel VPN.
  2. Configura il tuo servizio per inviare richieste alla tua rete VPC.
  3. Quindi richiedi tutte le richieste per andare alla tua rete VPC.

Richiedi tutte le richieste per andare alla tua rete VPC

Per fare in modo che tutte le richieste del tuo servizio Cloud Run accedano alla rete VPC, specifica l'impostazione di traffico in uscita della rete VPC "tutto il traffico". Puoi specificare l'impostazione di traffico in uscita per ogni servizio Cloud Run che utilizza il traffico in uscita dalla rete VPC oppure puoi imporre l'utilizzo dell'impostazione di traffico in uscita preferita per tutti i servizi Cloud Run nel progetto, nella cartella o nell'organizzazione.

Ciò è 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 a risorse on-premise e altri cloud tramite la tua rete privata.

Se il servizio Cloud Run effettua richieste a destinazioni finali al di fuori della rete VPC, l'invio di tutte le richieste alla rete VPC aumenta l'utilizzo della larghezza di banda sul connettore di accesso VPC serverless (se configurato) e potrebbe aumentare i costi di conseguenza. Lo scale out dei connettori di accesso VPC serverless viene fatto automaticamente quando il traffico aumenta, ma non lofare lo scale inn se il traffico diminuisce. Esamina i pricing per comprendere i costi.

Controlli aggiuntivi

  • Controlli del perimetro: per ridurre il rischio di esfiltrazione di dati per un gruppo di risorse, posizionale all'interno di un perimetro sensibile al contesto utilizzando Controlli di servizio VPC.
  • Controlli granulari: per controllare l'accesso al 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 Terraform per configurare i servizi Cloud Run in una rete privata.