Proteggi la tua Cloud Function

Questa pagina fornisce una panoramica generale delle modalità di controllo delle interazioni con le risorse Cloud Functions.

Controllo dell'accesso

Esistono due approcci per controllare l'accesso a Cloud Functions:

Protezione dell'accesso con l'identità

Un modo per controllare l'accesso a una funzione è richiedere che l'entità richiedente si identifichi utilizzando una credenziale. Una credenziale è un "nome" di qualche tipo, protetto da un secret che l'entità conosce o a cui ha accesso, come una password o una chiavetta hardware. Per impostazione predefinita, il deployment delle funzioni viene eseguito come private e richiedono questa credenziale, anche se è possibile eseguire il deployment di una funzione pubblica, ovvero non richiederne una.

Il primo passaggio del processo consiste nella convalida della credenziale per garantire che il richiedente sia chi dice di essere e che presenti il nome e la combinazione di secret corretti. Questo passaggio è denominato (Authentication).

Una volta autenticata l'identità del richiedente, è possibile valutarne il livello di accesso e le autorizzazioni concesse. Questo passaggio si chiama (Authorization).

Autenticazione

Cloud Functions supporta due diversi tipi di identità, chiamati anche principal:

  • Account di servizio: sono account speciali che fungono da identità di una persona fisica, ad esempio una funzione, un'applicazione o una VM. Ti offrono un modo per autenticare queste non persone.
  • Account utente: questi account rappresentano persone, in qualità di singoli proprietari di Account Google o facenti parte di una persona giuridica controllata da Google come un gruppo Google.

Per entrambi gli account di servizio e account utente, la parte del nome della credenziale di solito è un indirizzo email associato all'account. Il secret per 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 molto potenti: possono fornire un accesso ad ampio raggio a dati e funzionalità e rimangono efficaci finché non vengono revocati o modificati attivamente. Pertanto, per limitare i potenziali danni che potrebbero verificarsi in caso di fuga di credenziali, questa credenziali principale in Google Cloud viene sostituita da una credenziale a breve termine basata su di essa, un token, che ha una durata limitata e viene creato all'istante come parte della sequenza di richiesta. Il token viene passato con la richiesta e utilizzato per autenticare in sicurezza l'account.

In Cloud Functions vengono utilizzati due tipi di token: token di accesso e token ID. I token di accesso vengono in genere utilizzati per autenticare le chiamate API, mentre i token ID vengono utilizzati per autenticare le chiamate al codice creato dallo sviluppatore, ad esempio se una funzione chiama un'altra funzione. I token vengono creati utilizzando il framework OAuth 2 e la sua estensione, Open Identity Connect, ma la sequenza è complessa e soggetta a errori; ti consigliamo vivamente di utilizzare le librerie client di Cloud per gestire il processo.

Autorizzazione

Una volta confermata l'identità dell'entità richiedente, è necessario valutare ciò che il richiedente può fare. Questa valutazione si basa sulle autorizzazioni concesse all'account autenticato al momento della configurazione. Per farlo, Cloud Functions utilizza Identity and Access Management (IAM). I ruoli, ovvero insiemi di singole autorizzazioni raggruppate per comodità, vengono assegnati all'account direttamente o tramite una configurazione denominata criterio. Ogni singola autorizzazione nel set di ruoli corrisponde di solito a una singola chiamata API REST esposta dal servizio richiesto. Per ulteriori informazioni su questa procedura, consulta la pagina Autorizzazione dell'accesso tramite IAM.

Controllo dell'accesso basato su rete

Puoi limitare l'accesso anche specificando le impostazioni di rete per le singole funzioni. Ciò consente un controllo perfezionato della 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 la piattaforma di sandbox gVisor. Una funzione non è in grado di accedere agli ambienti operativi di altre funzioni.

Aggiornamenti dell'ambiente di esecuzione

Google rende disponibili le patch di sicurezza e gli aggiornamenti per la manutenzione dopo un periodo di test di stabilità. Cloud Functions può applicare aggiornamenti ad altri aspetti dell'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 Functions

Puoi scegliere uno dei seguenti criteri di aggiornamento della sicurezza:

  • Aggiornamenti automatici (impostazione predefinita): gli aggiornamenti e le patch di sicurezza dell'ambiente di runtime vengono pubblicati in nuove versioni dell'immagine di runtime. Dopo un periodo di test di stabilità e affidabilità, il runtime aggiornato viene implementato in tutte le funzioni, il che comporta un aggiornamento con tempi di inattività pari a zero. Gli aggiornamenti della sicurezza automatici sono disponibili con Cloud Functions 1ª generazionen.) eCloud Functions (2nd gen)). Per apportare correzioni di sicurezza a livello di linguaggio, potrebbe essere necessario ricreare le funzioni che utilizzano linguaggi compilati come Go o Java.

  • All'aggiornamento del deployment: gli aggiornamenti e le patch di sicurezza vengono applicati ai runtime solo quando viene eseguito o rieseguito il deployment delle funzioni, se non diversamente indicato. Gli aggiornamenti sul deployment sono disponibili sia su Cloud Functions (1ª generazione.) che su Cloud Functions (2nd gen).

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

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