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 che l'entità richiedente identificarsi utilizzando una credenziale. Una credenziale è un "nome" di qualche tipo, protetti da un secret che l'entità conosce o a cui ha accesso, come una password o una chiavetta hardware. Per impostazione predefinita, viene eseguito il deployment delle funzioni privato e richiedono questa credenziale, anche se è possibile eseguire il deployment una funzione come public, ovvero che non ne richiede una.
Il primo passaggio della procedura consiste nella convalida della credenziale per assicurarsi che il richiedente sia chi dice di essere e che presenti la combinazione di nome e segreto corretta. Questo passaggio è denominato (Authentication
).
Una volta autenticata l'identità del richiedente, il suo livello di accesso,
possono essere valutate le autorizzazioni
concesse all'identità. Questo passaggio è chiamato (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 autenticare queste persone giuridiche.
- 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.
Sia per gli account di servizio che per gli account utente, la parte del nome della credenziale è solitamente 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 degli utenti e le chiavi degli account di servizio sono di per sé molto potenti: possono fornire un accesso a dati e funzionalità ad ampio raggio, rimanendo efficaci finché non vengono revocati o modificati 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 Cloud Run: token di accesso e token identificativi. 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 durante la configurazione. Per farlo, le funzioni Cloud Run utilizzano Identity and Access Management (IAM). I ruoli, ovvero insiemi di singole autorizzazioni raggruppate per praticità, vengono assegnati all'account direttamente 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. In questo modo puoi avere un controllo preciso sull'ingresso e sull'uscita della rete verso e dalle tue funzioni.
Isolamento e sandboxing
All'interno, le istanze di funzione sono isolate l'una dall'altra utilizzando la piattaforma di sandboxing 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 di Cloud Run potrebbero applicare aggiornamenti ad altri aspetti l'ambiente di esecuzione, come il sistema operativo o i pacchetti inclusi. Questi aggiornamenti contribuiscono a mantenere l'ambiente di esecuzione della tua funzione.
Aggiornamenti della sicurezza di Cloud Run
Puoi scegliere uno dei seguenti criteri di aggiornamento della sicurezza:
Aggiornamenti automatici (impostazione predefinita): gli aggiornamenti e le patch di sicurezza per l'ambiente di runtime vengono pubblicati nelle 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.
All'aggiornamento del deployment: vengono applicati aggiornamenti e patch di sicurezza. ai runtime solo quando viene eseguito o rieseguito il deployment delle funzioni, a meno che diversamente specificato. 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 il --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.