Architettura
Cloud Run viene eseguito su Borg nello stesso ambiente in cui Google esegue il deployment di miliardi di container a settimana, che ospita alcuni dei più grandi siti al mondo, compresi Gmail e YouTube. Poiché i componenti di Cloud Run condividono la stessa infrastruttura, sono realizzati in base agli stessi standard di sicurezza degli altri servizi Google.
Per saperne di più sul nostro approccio alla sicurezza, consulta le White paper sulla panoramica della sicurezza di Google.
L'architettura di Cloud Run contiene molte infrastrutture diverse componenti. Il seguente diagramma mostra come questi componenti rispondono richieste al tuo servizio e chiamate API Cloud Run Admin:
Richieste al tuo servizio
Quando viene effettuata una richiesta al tuo servizio Cloud Run tramite
al tuo dominio personalizzato o direttamente all'URL run.app
, la richiesta viene gestita
i seguenti componenti:
- Google Front End (GFE): il servizio di infrastruttura globale di Google
che termina le connessioni TLS e applica le protezioni contro
Attacchi DoS quando
effettua una richiesta all'URL
run.app
. Cloud Run è un servizio di gestione in modo che, quando si accede a una richiesta tramite l'URLrun.app
, il GFE inoltra a Cloud Run nella regione appropriata. - Bilanciatore del carico Google Cloud: Quando configuri Cloud Load Balancing per la gestione del tuo dominio personalizzato, include la funzionalità GFE menzionata in precedenza. Puoi anche configurare Google Cloud bilanciatori del carico per l'esecuzione di funzioni aggiuntive, come la gestione del traffico e controllo dell'accesso.
- proxy HTTP: componente di zona che bilancia il carico delle richieste HTTP in entrata le istanze delle tue applicazioni con sandbox.
- Strumento di pianificazione:seleziona i server delle app su cui ospitare le istanze della tua sandbox diverse applicazioni.
- App server:un nodo di computing a livello di zona e multi-tenant che crea e gestisce le sandbox che eseguono le istanze del container di ogni applicazione.
- Sandbox: isola il codice utente dal sistema e da altri clienti. Impara nella sezione Sicurezza del calcolo di seguito.
- Archiviazione: espone un'interfaccia file server per le immagini container importate dei registri di container supportati.
- Server metadati:fornisce credenziali e metadati specifici della sandbox.
- Networking in uscita:gestisce il traffico in uscita avviato dalla sandbox.
Chiamate API Cloud Run Admin
Quando viene effettuata una richiesta all'API Cloud Run Admin, la richiesta viene gestita dai seguenti componenti:
- Google Front End (GFE): il servizio di infrastruttura globale di Google che termina le connessioni TLS e applica le protezioni contro gli attacchi DoS.
- Piano di controllo: convalida e scrive le configurazioni dell'applicazione in archiviazione.
- Archiviazione configurazione: archivia le configurazioni delle applicazioni in Spanner e Bigtable per l'accesso da parte di altri componenti, come l'app server, scheduler e di rete.
Sicurezza dei computing
I componenti di Cloud Run vengono eseguiti sul sistema di gestione dei container di Google, Borg. Per i container, Cloud Run offre due ambienti di esecuzione:
Prima generazione: basata sul container gVisor piattaforma di sicurezza, questa opzione ha un piccolo codebase che superficie di attacco. Ogni modifica viene esaminata sulla sicurezza e la maggior parte delle modifiche viene scritta che utilizzano la memoria. Un ulteriore rafforzamento si ottiene utilizzando Modalità Secure Computing (seccomp) il filtro delle chiamate di sistema.
Seconda generazione: basata su microVM Linux, questa opzione offre più informazioni la compatibilità e le prestazioni per carichi di lavoro personalizzati. L'ulteriore protezione è ottenuti usando il filtro delle chiamate di sistema seccomp Sandbox2 degli spazi dei nomi Linux.
Entrambi questi ambienti di esecuzione utilizzano due livelli di sandbox costituiti un livello basato sull'hardware equivalente alle singole VM (virtualizzazione x86) livello di kernel software, come mostrato nel seguente diagramma:
Se il tuo servizio utilizza un'infrastruttura di terze parti per proteggere i container, l'ambiente di esecuzione di seconda generazione.
Crittografia e archiviazione dei dati
Le istanze Cloud Run sono stateless. La chiusura di un l'istanza ignora il proprio stato. Di conseguenza, tutte le nuove istanze vengono avviate da un ardesia.
Se disponi di dati stateful, puoi gestirli nei seguenti modi:
- Archiviare dati stateful in servizi di archiviazione esterni, ad esempio Cloud SQL o Memorystore.
- Eseguire l'integrazione con Secret Manager per archiviazione sicura di dati sensibili come le API chiavi e password.
Inoltre, Cloud Run si integra con molti altri Sistemi Google Cloud per la gestione e l'accesso ai dati nei seguenti modi:
- I dati di configurazione del servizio vengono archiviati in Spanner e Bigtable.
- I dati di monitoraggio e logging vengono inviati a Google Cloud Observability.
- Le immagini container vengono importate dai registri di container supportati e possono essere facoltativamente criptate utilizzando le chiavi di crittografia gestite dal cliente (CMEK).
In Google Cloud, tutti i tuoi dati sono criptati at-rest.
Cloud Run rispetta le iniziative a livello di Google Cloud per Protezione e trasparenza dei dati, inclusa la trasparenza degli accessi e residente dei dati.
Sicurezza della rete
Cloud Run e tutti gli altri servizi Google Cloud criptare tutto il traffico in transito. Puoi incorporare i controlli in entrata e in uscita nel tuo Cloud Run o job per aggiungere un ulteriore livello di restrizione. Organizzazione gli amministratori possono anche imporre il traffico in entrata e in uscita impostando criteri dell'organizzazione.
Traffico in uscita
Il traffico in uscita che esce da Cloud Run viene trattato come Transport Layer 4 (TCP e UDP).
Per impostazione predefinita, il traffico in uscita segue uno dei seguenti percorsi all'uscita da Cloud Run:
- La destinazione di destinazione si trova nella rete VPC: il traffico arriva a una la rete VPC o la rete VPC condiviso nel progetto utilizzando Traffico VPC diretto in uscita o Connettore Accesso VPC serverless. La è una risorsa di regione che si trova direttamente sul VPC in ogni rete.
- La destinazione di destinazione non si trova nella rete VPC: route di traffico direttamente alla destinazione all'interno della rete Google o del pubblico internet.
Controllo del traffico in uscita
Per un ulteriore controllo sul traffico in uscita, utilizza la classe Impostazione del traffico in uscita VPC verso instradare tutto il traffico alla rete VPC utilizzando VPC diretto in uscita o connettori.
Una volta che è sulla rete VPC, puoi usare VPC strumenti per la gestione del traffico, ad esempio:
- Applicare regole firewall al traffico del tuo servizio o modificare il modo in cui il traffico viene instradato.
- Abilita Log di flusso VPC per ispezionare il traffico.
Gli amministratori dell'organizzazione possono anche imporre il traffico in uscita impostando Impostazioni di traffico VPC in uscita consentite (Cloud Run) dell'elenco.
Traffico in entrata (in entrata)
A differenza del traffico in uscita, il traffico in entrata di Cloud Run è al livello dell'applicazione 7 (HTTP).
Cloud Run accetta il traffico in entrata in entrata dai seguenti fonti:
Internet pubblica: le richieste vengono indirizzate direttamente da fonti pubbliche al tuo ai servizi Cloud Run con la possibilità di instradare il traffico attraverso un bilanciatore del carico HTTP(S) esterno.
Rete VPC: puoi instradare il traffico da un VPC la rete ai servizi Cloud Run mediante l'accesso privato Google, Private Service Connect oppure Application Load Balancer interno. Il traffico di questo tipo rimane sempre all'interno della rete Google.
Servizi Google Cloud: il traffico viaggia direttamente verso Cloud Run. da altri servizi Google Cloud, come BigQuery o anche e Cloud Run. In alcuni casi, puoi anche configurare questi da indirizzare attraverso una rete VPC. Traffico di questo tipo rimane sempre all'interno della rete Google.
Il modello di sicurezza di rete di Cloud Run include il seguente traffico in entrata proprietà del traffico:
- Indirizza il traffico all'URL
run.app
: l'URLrun.app
richiede sempre HTTPS per il traffico verso Cloud Run. Gestione frontend di Google che termina TLS e inoltra il traffico a Cloud Run. e al tuo contenitore tramite un canale criptato. - Traffico verso un dominio personalizzato associato al bilanciatore del carico Google Cloud: Per il traffico HTTPS, bilanciatori del carico interni ed esterni di Google Cloud termina TLS e inoltra il traffico a Cloud Run e al container attraverso un canale criptato. I bilanciatori del carico Google Cloud consentono inoltre e applicare funzionalità di sicurezza aggiuntive come IAP, Google Cloud Armor e criteri SSL.
Per saperne di più sulla configurazione del traffico di rete VPC verso Cloud Run, consulta Richieste di ricezione da reti VPC.
Controllo del traffico in entrata
Controlli in entrata di Cloud Run gestire il traffico che entra in Cloud Run per garantire che il traffico arrivi provenienti solo da fonti attendibili.
Per i servizi Cloud Run che servono solo client interni, puoi configurare l'interfaccia "interno" in modo che solo il traffico proveniente dai seguenti le origini interne possono inserire Cloud Run:
- Reti VPC nel tuo progetto o Controlli di servizio VPC perimetrale, inclusi i servizi Cloud Run che instradano il proprio traffico attraverso la rete VPC.
- La rete VPC condivisa a cui è connesso il servizio Cloud Run a cui è collegato.
- Alcuni servizi Google Cloud, come BigQuery, che sono nel progetto o nel perimetro dei Controlli di servizio VPC.
- Traffico proveniente da client on-premise che attraversano la tua rete VPC per raggiungere Cloud Run.
Gli amministratori dell'organizzazione possono anche applicare il traffico in entrata impostando criteri dell'organizzazione.
Per ulteriori informazioni sul controllo del traffico in entrata, consulta Limitazione del traffico in entrata per Cloud Run.
Controllo degli accessi
I controlli dell'accesso vengono utilizzati per limitare chi può accedere ai servizi e ai job di Cloud Run.
Chi può gestire il tuo servizio o job
Per controllare chi gestisce il tuo servizio o job Cloud Run: Cloud Run utilizza IAM per l'autorizzazione di utenti e account di servizio.
A quali dati può accedere il tuo servizio o job
Per controllare ciò che possono raggiungere i carichi di lavoro Cloud Run tramite puoi forzare tutto il traffico attraverso la rete VPC per applicare le regole firewall VPC, come descritto in precedenza Sicurezza di rete.
Se utilizzi il traffico VPC diretto in uscita, puoi collegare i tag di rete Risorsa Cloud Run e fare riferimento ai tag di rete nel firewall personalizzata. Se utilizzi l'accesso VPC serverless, puoi applicare le regole del caso alle istanze del connettore.
Usa IAM per controllare quali risorse in Cloud Run a cui possono accedere un servizio o un job. I servizi e i job utilizzano l'account di servizio predefinito di Compute Engine. per impostazione predefinita. Per i carichi di lavoro sensibili, utilizza un servizio dedicato in modo da poter concedere solo le autorizzazioni necessarie per il carico di lavoro il suo funzionamento. Scopri di più sull'utilizzo dell'identità per servizio per gestire un account di servizio dedicato. Per informazioni su come Cloud Run ricorda agli utenti di creare un account di servizio dedicato, vedi Proteggi i servizi Cloud Run con il motore per suggerimenti.
Chi può richiamare il tuo servizio o eseguire il tuo job
Cloud Run offre diverse opzioni per controllare richiama il tuo servizio o esegue il tuo job.
Controlli Ingress
Per gestire il traffico in entrata dei servizi Cloud Run sul networking consulta Controllo del traffico in entrata nella sezione precedente.
I job Cloud Run non gestiscono le richieste e quindi non utilizzano controlli in entrata durante l'esecuzione dei job.
IAM per il tuo servizio
Cloud Run esegue un controllo IAM su ogni richiesta.
Utilizza la run.routes.invoke
per configurare chi può accedere a Cloud Run
nei seguenti modi:
Concedi l'autorizzazione a selezionare account di servizio o gruppi a cui consentire l'accesso il servizio. Tutte le richieste devono avere un'intestazione di autorizzazione HTTP contenente un Token ID OpenID Connect firmato da Google per uno dei servizi autorizzati .
Concedi a tutti gli utenti l'autorizzazione per consentono l'accesso non autenticato.
Assicurati che solo i membri della tua organizzazione possano richiamare un'istanza Cloud Run servizio, un amministratore dell'organizzazione può impostare Condivisione limitata per il dominio criterio dell'organizzazione. Gli amministratori dell'organizzazione possono anche disattivare dai servizi Cloud Run. Scopri come creare servizi Cloud Run pubblici quando è applicata la condivisione limitata per i domini.
Scopri di più sui casi d'uso comuni per l'autenticazione e come Cloud Run utilizza il controllo dell'accesso con IAM.
Funzionalità di sicurezza del bilanciatore del carico per il tuo servizio
Se hai configurato un servizio Cloud Run come backend di un al bilanciatore del carico Google Cloud, proteggi questo percorso usando quanto segue metodo:
- Blocca il traffico diretto dalla rete internet pubblica all'URL
run.app
in base a impostazione del traffico in entrata in uno degli indirizzi interni le opzioni di CPU e memoria disponibili. - Disattiva l'URL
run.app
predefinito. - Facoltativamente, puoi abilitare le funzionalità di sicurezza sul carico di Google Cloud come Google Cloud Armor, IAP e SSL.
IAM per il tuo job
Utilizza l'autorizzazione run.jobs.run
per
configura chi può eseguire il tuo job Cloud Run
modi:
Concedi l'autorizzazione a selezionare account di servizio o gruppi a cui consentire l'accesso il job. Se il job viene attivato da un altro servizio, ad esempio Cloud Scheduler, l'account di servizio utilizzato deve avere l'autorizzazione
run.jobs.run
su il job.Concedi all'utente che ha eseguito l'accesso l'autorizzazione per eseguire un job da Google Cloud Google Cloud. Se il job viene attivato da un altro servizio, ad esempio Cloud Scheduler, l'account di servizio o il gruppo utilizzato deve avere l'autorizzazione
run.jobs.run
sul lavoro.
per assicurarti che solo i membri della tua organizzazione possano eseguire un Cloud Run job, un amministratore dell'organizzazione può impostare Condivisione limitata per il dominio di blocco. Gli amministratori dell'organizzazione possono anche disattivare dei job Cloud Run.
Controlli di servizio VPC
I servizi Cloud Run possono far parte di un Controlli di servizio VPC in modo da poter sfruttare i Controlli di servizio VPC per limitare l'accesso il rischio di esfiltrazione dei dati. Scopri di più sull'utilizzo dei Controlli di servizio VPC.
Sicurezza della catena di fornitura
Immagini di base gestite da buildpack di Google Cloud
Servizi di cui viene eseguito il deployment dal codice sorgente utilizzando i buildpack di Google Cloud sono basate Immagini di base fornite da Google. Google conserva queste immagini di base e fornisce di routine su base settimanale. In situazioni di emergenza che coinvolgono vulnerabilità critiche di sicurezza, siamo in grado di rendere disponibili le patch nel giro di poche ore.
Sicurezza della catena di fornitura interna di Cloud Run
Poiché viene eseguito su Borg, Cloud Run implementa tutte le stesse sicurezza della catena di fornitura, standard in tutti i servizi Google, come Gmail e YouTube. Scopri di più sulle pratiche della catena di fornitura interna di Google nel BeyondProd e Autorizzazione binaria per Borg i nostri prodotti.
Autorizzazione binaria
Cloud Run supporta integrato Autorizzazione binaria per garantire che solo il container attendibile in Cloud Run. Ulteriori informazioni all'indirizzo Panoramica della configurazione per Cloud Run.
Software Delivery Shield
Con Software Delivery Shield, Gli amministratori cloud possono visualizzare le informazioni di sicurezza relative alla catena di fornitura del dei container di cui è stato eseguito il deployment direttamente da un panel in Google Cloud Google Cloud. Ulteriori informazioni all'indirizzo Visualizza i dettagli di Software Delivery Shield.
Passaggi successivi
Per una procedura dettagliata end-to-end su come configurare il networking, consulta la documentazione di Cloud Run Guida al networking serverless.