Proteggi la funzione Cloud Run
Questa pagina fornisce una panoramica generale dei modi in cui puoi controllare le interazioni con le risorse Cloud Run Functions.
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 dipiazzate 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 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 si chiama (Authentication
).
Una volta autenticata l'identità del richiedente, è possibile valutare il suo livello di accesso e le autorizzazioni che gli sono state concesse. Questo passaggio è chiamato (Authorization
).
Autenticazione
Le funzioni Cloud Run supportano due diversi tipi di identità, chiamate anche principali:
- 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 per un account utente è in genere una password, mentre per un account di servizio è in genere 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. Per limitare i potenziali danni che potrebbero verificarsi in caso di fuga di dati delle credenziali, in Google Cloud questa credenziale di base viene sostituita da una credenziale a breve termine basata su di essa, un token, che ha una durata limitata e viene creato dinamicamente nell'ambito della sequenza di richieste. Il token viene trasmesso con la richiesta e serve ad 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 utilizzati per autenticare le chiamate al codice creato dagli sviluppatori, ad esempio se una funzione chiama un'altra funzione. I token stessi vengono creati utilizzando il framework OAuth 2 e la relativa estensione Open Identity Connect, ma la sequenza è complessa e soggetta a errori, pertanto è vivamente consigliato l'utilizzo delle librerie client Cloud per gestire il processo.
Autorizzazione
Una volta confermata l'identità della persona richiedente, è necessario valutare cosa è autorizzata a 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 nell'insieme di ruoli corrisponde in genere a una singola chiamata API REST esposta dal servizio richiesto. Per ulteriori informazioni su questa procedura, consulta Autorizzare l'accesso tramite IAM.
Controllo dell'accesso basato sulla 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. Per impostazione predefinita, una funzione non può accedere agli ambienti di funzionamento di altre funzioni.
Aggiornamenti dell'ambiente di esecuzione
Google rende disponibili patch di sicurezza e aggiornamenti di manutenzione dopo un periodo di test della 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): 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 la verifica della stabilità e dell'affidabilità, il runtime aggiornato viene implementato in tutte le funzioni, con un aggiornamento senza tempi di riposo. Gli aggiornamenti di sicurezza automatici sono disponibili con le funzioni Cloud Run (1ª generazione.) 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 specificato. Gli aggiornamenti sul deployment sono disponibili sia per le funzioni Cloud Run (1ª generazione.) 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.