Proteggi la tua Cloud Function

Questa pagina fornisce una panoramica generale dei modi in cui è possibile controllare le 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 mediante una credenziale. Una credenziale è un qualche tipo di "nome", protetto da un secret noto all'entità o a cui l'entità ha accesso, come una password o una chiavetta hardware. Per impostazione predefinita, le funzioni vengono sottoposte a deployment come private e richiedono questa credenziale, sebbene sia possibile eseguire il deployment di una funzione come public, ovvero senza richiederne una.

Il primo passaggio del processo consiste nel convalidare la credenziale per assicurarsi che il richiedente sia chi dichiara di essere e che presenti la combinazione di nome e secret corretta. Questo passaggio è denominato (Authentication).

Una volta autenticata l'identità del richiedente, è possibile valutare il relativo livello di accesso e le autorizzazioni concesse per l'identità. Questo passaggio è denominato (Authorization).

Autenticazione

Cloud Functions supporta due diversi tipi di identità, chiamate anche entità:

  • Account di servizio: si tratta di account speciali che fungono da identità di una persona, ad esempio una funzione, un'applicazione o una VM. Offrono un modo per autenticare i non individui.
  • Account utente: questi account rappresentano persone, in quanto proprietari di Account Google individuali o come parte di una persona giuridica controllata da Google come un gruppo Google.

Per gli account di servizio e gli 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 si tratta di solito della 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 ampio a dati e funzionalità e rimangono efficaci finché non vengono revocate o modificate attivamente. Quindi, per limitare i potenziali danni che potrebbero verificarsi se la credenziale viene divulgata, in Google Cloud questa credenziale di base viene sostituita da una credenziale a breve termine basata su di essa, un token con una durata limitata e creato all'istante come parte della sequenza di richiesta. Il token viene trasmesso con la richiesta e serve 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 generalmente utilizzati per autenticare le chiamate API, mentre i token ID vengono usati per autenticare le chiamate al codice creato dallo sviluppatore, ad esempio se una funzione chiama un'altra funzione. I token stessi vengono creati utilizzando il framework OAuth 2 e la sua estensione, Open Identity Connect, ma la sequenza è complessa e soggetta a errori e l'utilizzo delle librerie client Cloud per gestire il processo è vivamente consigliato.

Autorizzazione

Una volta confermata l'identità dell'entità richiedente, deve essere valutata l'azione che il richiedente è autorizzato a fare. Questa valutazione si basa sulle autorizzazioni concesse all'account autenticato al momento della configurazione. A questo scopo, Cloud Functions utilizza 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 in genere a una singola chiamata API REST esposta dal servizio richiesto. Per maggiori informazioni su questo processo, consulta Autorizzazione dell'accesso tramite IAM.

Controllo dell'accesso basato sulla rete

Puoi anche limitare l'accesso specificando le impostazioni di rete per le singole funzioni. Ciò consente un controllo ottimizzato dell'ingresso e dell'uscita della rete da e verso le funzioni.

Isolamento e sandbox

Internamente, le istanze delle funzioni sono isolate tra loro tramite la piattaforma di sandboxing gVisor. Per sua natura, una funzione non può accedere agli ambienti operativi di altre funzioni.

Aggiornamenti dell'ambiente di esecuzione

Google mette a disposizione patch di sicurezza e aggiornamenti di manutenzione dopo un periodo di test di stabilità. Cloud Functions potrebbe applicare aggiornamenti ad altri aspetti dell'ambiente di esecuzione, come il sistema operativo o i pacchetti inclusi. Questi aggiornamenti contribuiscono a proteggere l'ambiente di esecuzione della funzione.

Aggiornamenti della sicurezza di Cloud Functions

Puoi scegliere uno dei seguenti criteri per l'aggiornamento della sicurezza:

  • Aggiornamenti automatici (impostazione predefinita): gli aggiornamenti e le patch di sicurezza per l'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 determina un aggiornamento senza tempi di inattività. Gli aggiornamenti automatici della sicurezza sono disponibili con Cloud Functions (1ª generazione.) e Cloud Functions (2nd gen). Per ricevere correzioni di sicurezza a livello di linguaggio, potrebbe essere necessario ricreare funzioni che utilizzano linguaggi compilati come Go o Java.

  • Al momento degli aggiornamenti 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 specificato. 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.