Protezione di Cloud Functions
Questa pagina fornisce una panoramica generale dei modi in cui puoi controllare le interazioni con le risorse Cloud Functions.
Controllo dell'accesso
I metodi per controllare l'accesso a Cloud Functions sono due:
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, ad esempio una password o una chiavetta hardware. Per impostazione predefinita, il deployment delle funzioni viene eseguito come privato e richiede tali credenziali, anche se è possibile eseguire il deployment di una funzione pubblica, ovvero non richiederne una.
Nel primo passaggio viene convalidata la credenziale per assicurare che il richiedente sia l'autore della dichiarazione, che offra la giusta combinazione di nome e secret. Questo passaggio è denominato Authentication
.
Una volta autenticata l'identità del richiedente, è possibile valutare il suo livello di accesso e le autorizzazioni concesse. Questo passaggio è denominato Authorization
.
Autenticazione
Cloud Functions supporta due tipi diversi di identità, chiamate anche entità:
- Account di servizio: sono account speciali che servono come identità di utenti diversi, come una funzione o un'applicazione o una VM. Consentono di autenticare queste persone che non sono persone.
- Account utente: questi account rappresentano persone come singoli proprietari di Account Google o come parte di un'entità controllata da Google, ad esempio un gruppo Google.
Per gli account di servizio e gli account utente, la parte del nome delle credenziali di solito è 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 degli utenti e le chiavi degli account di servizio stessi sono molto efficaci: possono fornire un accesso ampio a dati e funzionalità e rimangono valide finché non vengono revocate o modificate attivamente. Pertanto, per limitare il potenziale danno che potrebbe verificarsi se la credenziale viene divulgata, in Google Cloud questa credenziali principali viene sostituita da una credenziale a breve termine basata su di essa, un token, con una durata limitata e creata in tempo reale nell'ambito della sequenza di richieste. Il token viene trasmesso con la richiesta e serve ad autenticare in modo sicuro l'account.
In Cloud Functions sono utilizzati due tipi di token: token di accesso e token di 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. Vengono creati utilizzando il framework OAuth 2 e la relativa estensione, Open Identity Connect, ma la sequenza è complessa e soggetta a errori, mentre l'utilizzo di librerie client di Cloud per gestire il processo è altamente consigliato.
binaria
Una volta confermata l'identità dell'entità richiedente, ciò che il richiedente è autorizzato a fare deve essere valutato. Questa valutazione si basa sulle autorizzazioni a cui è stato concesso l'account autenticato durante la configurazione. A tale scopo, Cloud Functions utilizza Identity and Access Management (IAM). I ruoli, che sono insiemi di singole autorizzazioni raggruppate per praticità, vengono assegnati all'account, direttamente o tramite una configurazione chiamata norma. Ogni autorizzazione singola nel set di ruoli corrisponde in genere a una singola chiamata API REST esposta dal servizio richiesto. Per ulteriori informazioni su questo processo, consulta Autorizzazione dell'accesso tramite IAM.
Controllo degli accessi basato sulla rete
Puoi anche limitare l'accesso specificando impostazioni di rete per le singole funzioni. Ciò consente di controllare con precisione la rete in entrata e in uscita da e verso le funzioni.
Isolamento e sandbox
Internamente, le istanze delle funzioni vengono isolate tra loro utilizzando la piattaforma di sandbox gVisor. Una funzione non è progettata per accedere ad altri ambienti operativi.