Il controllo dell'accesso determina chi è autorizzato ad accedere a servizi e risorse in un progetto Google Cloud. In App Engine esistono alcuni casi d'uso distinti per configurare il controllo dell'accesso:
Concedere l'accesso ai membri del team al tuo progetto Google Cloud in modo che possano configurare i servizi ed eseguire il deployment delle app.
Concedere all'app l'accesso ai servizi Google Cloud, ad esempio Cloud spazio di archiviazione. Tutti i servizi Cloud richiedono l'autenticazione e l'autorizzazione per ogni chiamata all'API, incluse le chiamate dall'app App Engine.
Concedere agli utenti l'accesso alle risorse in un progetto Google Cloud. Sebbene questo caso d'uso non sia comune, potrebbero verificarsi casi in cui la tua app necessita di per richiedere l'accesso a una risorsa Cloud per conto di un utente. Ad esempio, la tua app potrebbe dover accedere ai dati di proprietà dei tuoi utenti.
Questa pagina fornisce una panoramica della configurazione del controllo dell'accesso in ciascun caso d'uso.
Per informazioni di base su come la piattaforma Google Cloud gestisce il controllo dell'accesso, consulta la panoramica di Identity and Access Management (IAM).
Concessione dell'accesso ai membri del team
Per concedere a uno sviluppatore l'accesso al tuo progetto Google Cloud, crea uno o entrambi i seguenti elementi:
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:
- Console Google Cloud
- Google Cloud CLI
- IDE e strumenti di compilazione che utilizzano gcloud CLI per testare ed eseguire il deployment delle app App Engine
Un account di servizio, che deve rappresentare un'applicazione o un processo anziché una persona. Utilizza gli account di servizio nelle processi di compilazione, test e deployment automatizzati, soprattutto gli 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
Creazione di 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 di accedere anche ad altri servizi Cloud, seleziona i ruoli che e concedere l'accesso ad altri servizi Cloud.
Fai clic su Salva.
Ora l'utente può accedere alla console Google Cloud e autorizzare la CLI gcloud.
Puoi anche creare account utente da gcloud, dall'API REST o dalle librerie client.
Creazione di un account di servizio
Apri la pagina Account di servizio nella console Google Cloud.
Seleziona il progetto e fai clic su Apri.
Fai clic su Crea account di servizio.
Inserisci un nome per l'account di servizio. Deve essere un nome facile da usare per la visualizzazione.
Fai clic su Crea.
Seleziona i ruoli che concedono l'accesso alle funzionalità di App Engine.
Se l'account di servizio ha bisogno di 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 degli account di servizio esistenti.
Se necessario, se devi utilizzare il tuo account di servizio al di fuori di Google Cloud, segui le istruzioni per creare una chiave dell'account di servizio.
Passaggi successivi
- Se usi l'account di servizio nella build e nel deployment automatizzati processi, autorizza gcloud CLI con un servizio Google Cloud.
- 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 Google Cloud o esegui attività, puoi specificare un account di servizio gestito dall'utente in App Engine.
Concessione dell'accesso alla tua app ai servizi Cloud
Ogni chiamata a un servizio Cloud deve essere autenticata e autorizzata, ad esempio: da un'app App Engine ad altri servizi Cloud come Cloud spazio di archiviazione.
Per impostazione predefinita, le chiamate dalla tua app App Engine ai servizi nella stessa progetto sono autorizzati. Ecco come funziona il flusso predefinito:
Per avviare le chiamate a un servizio Cloud, la tua app crea un oggetto client, contenente le credenziali e altri dati con cui l'app deve interagire il servizio. Se non specifichi le credenziali nel costruttore del client, il client le cerca 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
predefinita
Account di servizio App Engine.
Questo account di servizio viene creato da Google quando crei un'app App Engine e vengono concesse autorizzazioni complete per gestire e utilizzare tutti i servizi Cloud in un progetto Google Cloud.
Puoi eseguire l'override di questo flusso predefinito in uno dei seguenti modi:
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
. Se questa variabile è impostata, i servizi cloud utilizzano le credenziali specificate dalla variabile anziché l'account di servizio predefinito.Specifica le credenziali quando esegui l'inizializzazione dell'oggetto
Client
per un servizio cloud. Ad esempio, se la tua app chiama un servizio Cloud in un progetto diverso, potresti dover passare credenziali manualmente.
- Memorizza le tue credenziali in una posizione sicura, ad esempio Firestore in modalità Datastore (Datastore), e recuperale in fase di esecuzione.
- Mantieni le credenziali nel codice, ma criptale con un keystore, ad esempio Cloud KMS.
Per conoscere i vantaggi di ciascun approccio, vedi Scelta di una soluzione di gestione dei secret.
Concessione dell'accesso alle risorse Cloud agli utenti
Se vuoi che la tua app legga i dati utente di un altro servizio Google, dovrai configurare OAuth 2.0 per applicazioni server web. Ad esempio, se vuoi estrarre l'input di un utente i dati di Google Drive e trasferirli nell'app, usa OAuth 2.0 per il server web Applicazioni per condividere dati specifici conservando altri dati, come i nomi utente e password, private.
Delega dell'autorità a livello di dominio Google Workspace
Se hai un dominio Google Workspace (precedentemente noto come G Suite), un amministratore di il dominio può autorizzare un'applicazione ad accedere ai dati utente 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 utilizzerà 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 è talvolta indicata come "delega dell'autorità a livello di dominio" a un account di servizio. Questa operazione utilizza ancora OAuth 2.0 e richiede un dominio Google Workspace amministratore di autorizzare a livello di dominio l'autorità a utilizzare il servizio Google Cloud.
Specifica di un account di servizio
App Engine consente di utilizzare due tipi di account di servizio:
Il service account predefinito di App Engine è l'identità predefinita per tutte le versioni dell'app App Engine se non è specificato un service account gestito dall'utente.
A seconda della configurazione dei criteri dell'organizzazione, l'account di servizio predefinito potrebbe automaticamente il ruolo Editor progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli applicando il vincolo
iam.automaticIamGrantsForDefaultServiceAccounts
delle norme 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, quindi concedere personalmente questi ruoli.
Se l'account di servizio predefinito ha già il ruolo Editor, ti consigliamo di sostituire il ruolo Editor con ruoli meno permissivi. Per modificare in modo sicuro i ruoli dell'account di servizio, utilizza il Simulatore di criteri per vedere l'impatto dei la modifica e quindi concedere e revocare ruoli appropriati.
L'account di servizio gestito dall'utente è un account di servizio creato in Identity and Access Management (IAM). Puoi specificare un account di servizio gestito dall'utente per una versione, che verrà utilizzato quando accedi ad altri servizi App Engine ed esegui attività per quella versione.