Panoramica sulla progettazione della sicurezza

Scopri come Cloud Run implementa le best practice di sicurezza per proteggere i tuoi dati e scopri come utilizzare queste funzionalità per soddisfare i tuoi requisiti di sicurezza.

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 costruiti secondo gli stessi standard di sicurezza di altri servizi Google.

Per scoprire di più sul nostro approccio alla sicurezza, leggi il white paper sulla panoramica della sicurezza di Google.

L'architettura di Cloud Run contiene molti diversi componenti di infrastruttura. Il seguente diagramma mostra come questi componenti rispondono alle richieste al tuo servizio e alle chiamate all'API Cloud Run Admin:

Diagramma dei componenti dell'infrastruttura Cloud Run
Figura 1. Diagramma dei componenti dell'infrastruttura Cloud Run.

Richieste al tuo servizio

Quando viene effettuata una richiesta al servizio Cloud Run tramite il tuo dominio personalizzato o direttamente all'URL run.app, 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 Attacchi DoS quando effettua una richiesta all'URL run.app. Cloud Run è un servizio regionale, quindi quando si accede a una richiesta tramite l'URL run.app, il GFE inoltra la richiesta a Cloud Run nella regione appropriata.
  • Bilanciatore del carico Google Cloud: quando configuri Cloud Load Balancing per gestire il tuo dominio personalizzato, viene inclusa 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 il controllo dell'accesso.
  • Proxy HTTP: un componente zonale che esegue il bilanciamento del carico delle richieste HTTP in entrata alle istanze delle applicazioni in sandbox.
  • Pianificatore: seleziona i server app per ospitare le istanze delle tue applicazioni in sandbox.
  • App server:un nodo di computing a livello di zona e multi-tenant che crea e gestisce le sandbox che eseguono le istanze dei 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 del file server per le immagini container importate da registri dei container supportati.
  • Server di 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 di Compute

I componenti di Cloud Run vengono eseguiti su Borg, il sistema di gestione dei container di Google. 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 maggiore compatibilità e prestazioni per i 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 sandboxing costituiti da un livello basato su hardware equivalente a singole VM (virtualizzazione x86) e un livello del kernel software, come mostrato nel seguente diagramma:

Sia in esecuzione
      ambienti, il container utente è isolato dagli altri carichi di lavoro
      due livelli di sandbox.
Figura 2. In entrambi gli ambienti di esecuzione, il contenitore utente è isolato da altri carichi di lavoro tramite due livelli di sandboxing.

Se il tuo servizio utilizza l'infrastruttura di terze parti per la protezione dei contenitori, utilizza l'ambiente di esecuzione di seconda generazione.

Crittografia e archiviazione dei dati

Le istanze Cloud Run sono stateless. L'interruzione di un'istanza ne elimina lo stato. Di conseguenza, tutte le nuove istanze vengono avviate da un ardesia.

Se disponi di dati stateful, puoi gestirli nei seguenti modi:

Inoltre, Cloud Run si integra con molti altri Sistemi Google Cloud per la gestione e l'accesso ai dati nei seguenti modi:

In Google Cloud, tutti i tuoi dati sono criptati quando sono inattivi.

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 nei servizi o nei job Cloud Run per aggiungere un ulteriore livello di limitazione. 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 viene inviato a una rete VPC o a una rete VPC condivisa nel progetto utilizzando l'uscita VPC diretta o un 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.
Diagramma dei componenti dell'infrastruttura Cloud Run
Figura 3. Il traffico in uscita può essere sottoposto a proxy tramite un connettore a una rete VPC. Può passano direttamente a un VPC rete (anteprima).

Controllo del traffico in uscita

Per un maggiore controllo sul traffico in uscita, utilizza l'impostazione di traffico in uscita VPC per indirizzare tutto il traffico alla rete VPC utilizzando i connettori o il traffico in uscita diretto VPC.

Una volta che è sulla rete VPC, puoi usare VPC strumenti per la gestione del traffico, ad esempio:

Gli amministratori dell'organizzazione possono anche applicare il traffico in uscita impostando Impostazioni di traffico VPC in uscita consentite (Cloud Run) dell'elenco.

Traffico in entrata (ingress)

A differenza del traffico in uscita, il traffico in entrata di Cloud Run si trova al livello 7 dell'applicazione (HTTP).

Cloud Run accetta traffico in entrata proveniente dalle seguenti fonti:

  • Rete internet pubblica: le richieste vengono instradate direttamente da origini pubbliche ai tuoi servizi Cloud Run con la possibilità di instradare il traffico tramite un bilanciatore del carico HTTP(S) esterno.

  • Rete VPC: puoi instradare il traffico da una rete VPC ai servizi Cloud Run utilizzando Accesso privato Google, Private Service Connect o un Application Load Balancer interno. Il traffico di questo tipo rimane sempre all'interno della rete di 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 servizi in modo che passino attraverso una rete VPC. Traffico di questo tipo rimane sempre all'interno della rete Google.

Diagramma dei componenti dell'infrastruttura di Cloud Run
Figura 4. Traffico di rete di livello 7 HTTP in entrata (in entrata) verso Cloud Run.

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'URL run.app richiede sempre HTTPS per consentire al traffico di entrare in Cloud Run. L'infrastruttura di servizio frontend di Google termina il protocollo TLS e poi 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 ulteriori informazioni sulla configurazione del traffico di rete VPC per Cloud Run, consulta Ricevere richieste dalle 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 gestiscono solo client interni, puoi configurare l'interfaccia "interno" in modo tale che solo il traffico proveniente dai seguenti le origini interne possono inserire Cloud Run:

  • Le reti VPC nel progetto o nel perimetro dei Controlli di servizio VPC, inclusi i servizi Cloud Run che indirizzano tutto il loro traffico tramite la rete VPC.
  • La rete VPC condivisa che è 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 servizio o il job Cloud Run, Cloud Run utilizza IAM per autorizzare gli utenti e gli account di servizio.

A quali dati può accedere il tuo servizio o job

Per controllare cosa possono raggiungere i carichi di lavoro Cloud Run tramite la rete, puoi forzare tutto il traffico attraverso la rete VPC e applicare le regole firewall VPC, come descritto in precedenza nella sezione Sicurezza di rete.

Se utilizzi l'uscita VPC diretto, puoi associare i tag di rete alla risorsa Cloud Run e fare riferimento ai tag di rete nella regola del firewall. Se utilizzi l'accesso VPC serverless, puoi applicare le regole del caso alle istanze del connettore.

Utilizza IAM per controllare a quali risorse può accedere il tuo servizio o job Cloud Run. 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 account di servizio dedicato in modo da poter concedere solo le autorizzazioni necessarie per il loro 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 l'ingresso dei servizi Cloud Run a livello di rete, consulta Controllo dell'ingresso nella sezione precedente.

I job Cloud Run non gestiscono le richieste e, pertanto, non utilizzano i controlli di ingresso 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 l'autorizzazione a tutti gli utenti per consentire 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 determinati 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 servizio

Se hai configurato un servizio Cloud Run come backend per un bilanciatore del carico Google Cloud, metti al sicuro questo percorso utilizzando i seguenti metodi:

IAM per il tuo job

Utilizza l'autorizzazione run.jobs.run per configurare chi può eseguire il tuo job Cloud Run nei seguenti 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 disporre dell'autorizzazione run.jobs.run sul job.

  • Concedi all'utente che ha eseguito l'accesso l'autorizzazione per eseguire un job dalla console Google Cloud. Se il job viene attivato da un altro servizio, ad esempio Cloud Scheduler, l'account di servizio o il gruppo utilizzato deve disporre dell'autorizzazione run.jobs.run sul job.

Per assicurarsi che solo i membri dell'organizzazione possano eseguire un job Cloud Run, un amministratore dell'organizzazione può impostare il vincolo Condivisione limitata per i domini. 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 approvvigionamento

Immagini di base gestite da Buildpacks 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é funziona su Borg, Cloud Run implementa tutte le stesse misure di sicurezza della catena di approvvigionamento standard di 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 la funzionalità integrata Autorizzazione binaria per garantire che in Cloud Run vengano eseguiti il deployment solo di immagini container attendibili. Scopri di più nella 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.

Sicurezza dell'ambiente di esecuzione

Cloud Run supporta gli aggiornamenti automatici delle immagini di base con i container compatibili. Gli aggiornamenti della sicurezza vengono applicati senza tempi di inattività nel servizio eseguendo un rebase sull'immagine base del container.

I servizi che vengono distribuiti dall'origine, che includono Cloud Run utilizzano i buildpack di Google Cloud compatibile con gli aggiornamenti di sicurezza automatici.

Il deployment dei servizi in cui sono abilitati gli aggiornamenti automatici della sicurezza viene eseguito utilizzando Immagini di base fornite da Google. Google gestisce queste immagini di base e fornisce patch di routine dopo un periodo di test della stabilità. In situazioni di emergenza che coinvolgono vulnerabilità di sicurezza critiche, possiamo rendere disponibili nel giro di poche ore.

Per scoprire di più sugli aggiornamenti della sicurezza dell'ambiente di esecuzione, scopri come configurare gli aggiornamenti della sicurezza.

Passaggi successivi

Per una procedura dettagliata completa su come configurare la rete, consulta la Guida al networking serverless di Cloud Run.