Il controllo dell'accesso determina chi ha l'autorizzazione per accedere a servizi e risorse in un progetto Google Cloud . In App Engine, esistono alcuni casi d'uso separati per la configurazione del controllo dell'accesso'accesso:
Concedere l'accesso ai membri del team al tuo progetto Google Cloud in modo che possano configurare i servizi e implementare le app.
Concedere all'app l'accesso ai servizi Google Cloud, come Cloud Storage. Tutti i servizi cloud richiedono l'autenticazione e l'autorizzazione per ogni chiamata API, incluse le chiamate dalla tua app App Engine.
Concedere ai tuoi utenti l'accesso alle risorse in un progetto Google Cloud . Sebbene questo caso d'uso non sia comune, potrebbero esserci casi in cui la tua app deve richiedere l'accesso a una risorsa cloud per conto di un utente. Ad esempio, la tua app potrebbe dover accedere ai dati appartenenti ai tuoi utenti.
Questa pagina fornisce una panoramica della configurazione del controllo dell'accesso in ogni caso d'uso.
Per informazioni di base su come Google Cloud Platform gestisce il controllo dell'accesso#39;accesso, consulta la panoramica di Identity and Access Management (IAM).
Concedere l'accesso ai membri del team
Per concedere a uno sviluppatore l'accesso al tuo progetto Google Cloud , crea uno o entrambi gli elementi seguenti:
Un account utente, associato a un Account Google e destinato a rappresentare una persona specifica nel tuo progetto.
Un account utente può essere utilizzato per l'autenticazione dai seguenti strumenti:
- Google Cloud console
- Google Cloud CLI
- IDE e strumenti di compilazione che utilizzano gcloud CLI per testare ed eseguire il deployment delle app App Engine
Un service account, che ha lo scopo di rappresentare un'applicazione o un processo anziché una persona. Utilizza gli account di servizio nei processi automatizzati di creazione, test e deployment, soprattutto se più sviluppatori possono eseguire questi processi.
Un account di servizio può essere utilizzato per l'autenticazione dai seguenti strumenti:
- Interfaccia a riga di comando gcloud
- IDE e strumenti di compilazione che utilizzano gli strumenti gcloud CLI per testare ed eseguire il deployment delle app App Engine
Creare un account utente
Apri la pagina IAM nella console Google Cloud .
Fai clic su Seleziona un progetto, scegli un progetto e fai clic su Apri.
Fai clic su Aggiungi.
Inserisci un indirizzo email.
Seleziona i ruoli che concedono l'accesso alle funzionalità di App Engine.
Se l'utente ha bisogno anche dell'accesso ad altri servizi cloud, seleziona ruoli che concedono l'accesso ad altri servizi cloud.
Fai clic su Salva.
Ora l'utente può accedere alla console Google Cloud e autorizzare gcloud CLI.
Puoi anche creare account utente da gcloud, dall'API REST o dalle librerie client.
Creazione di un account di servizio
Apri la pagina Service accounts nella console Google Cloud .
Seleziona il progetto e fai clic su Apri.
Fai clic su Crea account di servizio.
Inserisci un nome per account di servizio. Deve essere un nome semplice da visualizzare.
Fai clic su Crea.
Seleziona i ruoli che concedono l'accesso alle funzionalità di App Engine.
Se il account di servizio deve accedere anche ad altri servizi cloud, seleziona i ruoli che concedono l'accesso ad altri servizi cloud.
Fai clic su Continua.
(Facoltativo) Specifica gli account utente che possono gestire l'account di servizio. Puoi anche specificare gli account utente che possono utilizzare l'account di servizio per accedere indirettamente a tutte le risorse a cui ha accesso l'account di servizio.
Fai clic su Salva.
Viene visualizzato un elenco dei service account esistenti.
Se vuoi utilizzare l'account di servizio al di fuori di Google Cloud, segui le istruzioni per creare una chiave dell'account di servizio.
Passaggi successivi
- Se utilizzi il account di servizio nei processi di build e deployment automatizzati, autorizza gcloud CLI con un service account.
- Se utilizzi l'account di servizio con un IDE, segui le istruzioni fornite dall'IDE.
- Se devi utilizzare un'identità univoca per una versione della tua app App Engine quando accedi ad altri servizi o esegui attività, puoi specificare un service account gestito dall'utente in App Engine. Google Cloud
Concedere alla tua app l'accesso ai servizi cloud
Ogni chiamata a un servizio cloud deve essere autenticata e autorizzata, incluse le chiamate da un'app App Engine ad altri servizi cloud come Cloud Storage.
Per impostazione predefinita, le chiamate dalla tua app App Engine ai servizi nello stesso progetto sono autorizzate. Ecco come funziona il flusso predefinito:
Per avviare chiamate a un servizio cloud, la tua app crea un oggetto client, che contiene le credenziali e altri dati necessari per interagire con il servizio. Se non specifichi le credenziali nel costruttore del client, il client cerca le credenziali nell'ambiente dell'app.
Ecco un esempio di creazione di un client per Cloud Storage:
Go
Java
Node.js
PHP
Python
Ruby
- Per impostazione predefinita, l'ambiente dell'app contiene le credenziali dell'account di servizio App Engine predefinito.
Questo account di servizio viene creato da Google quando crei un'app App Engine e dispone delle autorizzazioni complete per gestire e utilizzare tutti i servizi cloud in un progetto. Google Cloud
Puoi ignorare questo flusso predefinito effettuando una delle seguenti operazioni:
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
. Se questa variabile è impostata, i servizi cloud utilizzano le credenziali specificate dalla variabile anziché iaccount di serviziont predefinito.Specifica le credenziali quando istanzi l'oggetto
Client
per un servizio cloud. Ad esempio, se la tua app chiama un servizio cloud in un progetto diverso, potrebbe essere necessario trasferire le credenziali manualmente.
- Archivia le credenziali in una posizione sicura, ad esempio Firestore in modalità Datastore (Datastore), e recuperale in fase di runtime.
- Conserva le credenziali nel codice, ma criptale con un keystore, ad esempio Cloud KMS.
Per scoprire i vantaggi di ogni approccio, vedi Scegliere una soluzione di gestione dei secret.
Concedere agli utenti l'accesso alle risorse cloud
Se vuoi che la tua app legga i dati utente di un altro servizio Google, devi configurare OAuth 2.0 per applicazioni server web. Ad esempio, se vuoi estrarre i dati di un utente da Google Drive e inserirli nella tua app, utilizza OAuth 2.0 per le applicazioni server web per condividere dati specifici mantenendo privati altri dati, come nomi utente e password.
Delega dell'autorità a livello di dominio Google Workspace
Se hai un dominio Google Workspace (in precedenza G Suite), un amministratore del dominio può autorizzare un'applicazione ad accedere ai dati degli utenti per conto degli utenti nel dominio Google Workspace. Ad esempio, un'applicazione che utilizza l'API Google Calendar per aggiungere eventi ai calendari di tutti gli utenti di un dominio Google Workspace utilizzerebbe un account di servizio per accedere all'API Google Calendar per conto degli utenti.
L'autorizzazione di un account di servizio ad accedere ai dati per conto degli utenti di un dominio viene a volte definita "delega dell'autorità a livello di dominio" a un service account. Viene comunque utilizzato OAuth 2.0 e l'amministratore del dominio Google Workspace deve autorizzare l'autorizzazione a livello di dominio per l'account di servizio.
Specificare un account di servizio
App Engine ti consente di utilizzare due tipi di service account:
Il service account predefinito di App Engine è l'identità predefinita per tutte le versioni della tua app App Engine se non viene specificato un account di servizio gestito dall'utente.
A seconda della configurazione della policy dell'organizzazione, al account di servizio predefinito potrebbe essere concesso automaticamente il ruolo Editor nel tuo progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli applicando il vincolo
iam.automaticIamGrantsForDefaultServiceAccounts
del criterio dell'organizzazione. Se hai creato la tua organizzazione dopo il 3 maggio 2024, questo vincolo viene applicato per impostazione predefinita.Se disattivi la concessione automatica dei ruoli, devi decidere quali ruoli concedere agli account di servizio predefiniti e poi concederli personalmente.
Se l'account di servizio predefinito dispone già del ruolo Editor, ti consigliamo di sostituirlo con ruoli meno permissivi.Per modificare in modo sicuro i ruoli dell'account di servizio, utilizza Policy Simulator per visualizzare l'impatto della modifica, quindi concedi e revoca i ruoli appropriati.
L'account di servizio gestito dall'utente è un service account che crei in Identity and Access Management (IAM). Puoi specificare un account di servizio gestito dall'utente per una versione, che verrà utilizzato per accedere ad altri servizi App Engine ed eseguire attività per quella versione.