Proteggi la funzione Cloud Run

Questa pagina fornisce una panoramica generale dei modi in cui puoi controllare le interazioni con le risorse delle funzioni Cloud Run.

Controllo degli accessi

Esistono due approcci per controllare l'accesso alle funzioni Cloud Run:

Protezione dell'accesso con l'identità

Un modo per controllare l'accesso a una funzione è richiedere all'entità richiedente di identificarsi utilizzando una credenziale. Una credenziale è una sorta di "nome" protetto da un segreto che l'entità conosce o a cui ha accesso, ad esempio una password o un dongle hardware. Per impostazione predefinita, le funzioni vengono dipiattate come private e richiedono una credenziale di questo tipo, anche se è possibile eseguire il deployment di una funzione come pubblica, ovvero senza richiederne una.

Il primo passaggio della procedura è la convalida della credenziale per garantire che il richiedente è chi dice di essere, che presenta il nome e il segreto corretti combinazione. Questo passaggio si chiama (Authentication).

Una volta autenticata l'identità del richiedente, il suo livello di accesso, possono essere valutate le autorizzazioni concesse all'identità. Questo passaggio (Authorization).

Autenticazione

Le funzioni Cloud Run supportano due diversi tipi di identità, che sono anche denominate principal:

  • Account di servizio: si tratta di account speciali che fungono da identità di un'entità non umana, come una funzione, un'applicazione o una VM. Ti offrono un modo per autenticarli non persone.
  • Account utente: questi account rappresentano persone, come singoli titolari di Account Google o come parte di un'entità controllata da Google, come un gruppo Google.

Per entrambi gli account di servizio e account utente, la parte del nome della credenziale in genere è un indirizzo email associato all'account. Il segreto nel caso di un account utente di solito è una password, mentre per un account di servizio è di solito la chiave privata della coppia di chiavi creata insieme all'account.

Tuttavia, le password utente e le chiavi dell'account di servizio sono molto potenti: possono fornire accesso ampi a dati e funzionalità e rimangono efficaci finché non vengono revocate o modificate attivamente. Quindi, per limitare il potenziale danni che potrebbero verificarsi in caso di fuga di credenziali, in Google Cloud questo viene sostituita da una credenziale a breve termine basata su quest'ultima, un token, che ha una durata limitata e viene creato in tempo reale come parte della sequenza di richiesta. Il token viene passato con la richiesta e utilizzato per autenticare in sicurezza l'account.

Esistono due tipi di token utilizzati nelle funzioni di Cloud Run: token di accesso e ID di token. I token di accesso vengono in genere utilizzati per autenticare le chiamate API e i token ID vengono utilizzate per autenticare le chiamate al codice creato dallo sviluppatore, ad esempio, se un funzione chiama un'altra funzione. I token stessi vengono creati il framework OAuth 2 e la sua estensione, Open Identity Connect, ma la sequenza è complessa e soggetta a errori e l'uso delle librerie client di Cloud per gestire il processo è vivamente consigliato.

Autorizzazione

Una volta confermata l'identità dell'entità richiedente, che il richiedente può fare. Questa valutazione si basa sulle autorizzazioni concesse all'account autenticato al momento della configurazione. Per farlo, le funzioni Cloud Run utilizzano Identity and Access Management (IAM). Ruoli, che sono insiemi di autorizzazioni individuali raggruppate per comodità, vengono assegnate all'account, o tramite una configurazione chiamata criterio. Ogni singola autorizzazione nel set di ruoli corrisponde solitamente a un singolo REST Chiamata API esposta dal servizio richiesto. Per ulteriori informazioni su questa procedura, consulta Autorizzare l'accesso tramite IAM.

Controllo dell'accesso basato su rete

Puoi anche limitare l'accesso specificando le impostazioni di rete per le singole funzioni. Ciò consente un controllo perfezionato sulla rete in entrata e in uscita da e verso le tue funzioni.

Isolamento e sandbox

Internamente, le istanze di funzione sono isolate tra loro tramite Piattaforma di sandbox gVisor. In base alla progettazione, una funzione non può per accedere ad altre funzioni e diversi ambienti operativi.

Aggiornamenti dell'ambiente di esecuzione

Google rende disponibili le patch di sicurezza e gli aggiornamenti di manutenzione dopo un periodo di test di stabilità. Le funzioni Cloud Run potrebbero applicare aggiornamenti ad altri aspetti dell'ambiente di esecuzione, come il sistema operativo o i pacchetti inclusi. Questi aggiornamenti contribuiscono a mantenere sicuro l'ambiente di esecuzione della tua funzione.

Aggiornamenti della sicurezza di Cloud Run Functions

Puoi scegliere uno dei seguenti criteri di aggiornamento della sicurezza:

  • Aggiornamenti automatici (impostazione predefinita): aggiornamenti e patch di sicurezza per l'ambiente di runtime vengono pubblicate in nuove versioni dell'immagine di runtime. Dopo un periodo di test per di stabilità e affidabilità, il runtime aggiornato viene implementato in tutte le funzioni con conseguente zero tempi di inattività. Gli aggiornamenti di sicurezza automatici sono disponibili con le funzioni Cloud Run (1ª gen.) e Cloud Run. Per applicare correzioni di sicurezza a livello di linguaggio, potrebbe essere necessario ricostruire le funzioni che utilizzano linguaggi compilati come Go o Java.

  • Aggiornamenti al deployment: gli aggiornamenti e le patch di sicurezza vengono applicati ai runtime solo quando le funzioni vengono implementate o riimplementate, se non diversamente indicato. Gli aggiornamenti sul deployment sono disponibili sia per le funzioni Cloud Run (1ª gen.) sia per le funzioni Cloud Run.

Il criterio di aggiornamento del runtime può essere modificato utilizzando --runtime-update-policy flag nel comando gcloud deploy.

Per scoprire di più sugli aggiornamenti della sicurezza dell'ambiente di esecuzione, consulta i criteri di aggiornamento della sicurezza.