Proteggi la tua Cloud Function

Questa pagina fornisce una panoramica di livello generale su come controllare le interazioni con le tue risorse Cloud Functions.

Controllo degli accessi

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 identificarsi tramite 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 è la convalida della credenziale per garantire che il richiedente è chi dice di essere, che presenta il nome e il segreto corretti combinazione. 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 (Authorization).

Autenticazione

Cloud Functions supporta due diversi tipi di identità, che sono anche denominate principal:

  • Account di servizio: sono account speciali che fungono da identità di una persona diversa, ad esempio una funzione un'applicazione o una VM. Ti offrono un modo per autenticarli non persone.
  • Account utente: questi account rappresentano persone, sia come account Google individuali. titolari di account o come 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 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 questa, 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.

In Cloud Functions vengono utilizzati due tipi di token: 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, Cloud Functions utilizza 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 Autorizzazione dell'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à. Cloud Functions potrebbe 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 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 della sicurezza automatici sono disponibile con Cloud Functions (1ª generazione.) e Cloud 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: 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 Cloud Functions (1ª generazione.) e Cloud Functions (2nd gen).

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 norme relative agli aggiornamenti della sicurezza.