Se utilizzi l'API Compute Engine per gestire le risorse Compute Engine, puoi autenticare le applicazioni nell'API ottenendo le credenziali da un account di servizio Compute Engine. Gli account di servizio consentono all'applicazione di eseguire l'autenticazione nell'API senza incorporare chiavi secret nel codice dell'applicazione.
Consigliamo gli account di servizio per la maggior parte delle situazioni in cui la tua applicazione deve autorizzare le richieste all'API. Tuttavia, se stai creando strumenti di sviluppo o amministrazione in cui gli utenti ti consentono di accedere alle loro risorse Google Cloud, utilizza un flusso di autorizzazione utente.
Per ottenere le credenziali da un account di servizio, utilizza una libreria client di Compute Engine e le credenziali predefinite dell'applicazione. Questi pacchetti consentono all'applicazione di ottenere le credenziali da una delle varie origini disponibili a seconda di dove viene eseguita l'applicazione.
Applicazioni eseguite su istanze Compute Engine
Se esegui le applicazioni sulle tue istanze Compute Engine, le credenziali predefinite dell'applicazione possono ottenere credenziali tramite gli account di servizio integrati. Per informazioni su come configurare le istanze con questi account di servizio integrati ed eseguire l'applicazione su un'istanza di Compute Engine, consulta l'articolo su come autenticare le applicazioni direttamente con i token di accesso.
Applicazioni che vengono eseguite al di fuori di Google Cloud
Se esegui applicazioni su sistemi esterni a Google Cloud, le tue applicazioni possono utilizzare le credenziali predefinite delle applicazioni per ottenere le credenziali dalle variabili di ambiente su questi sistemi. Per informazioni su come configurare le variabili di ambiente con le credenziali necessarie, consulta Autenticazione come account di servizio.
Applicazioni in fase di sviluppo
Durante lo sviluppo delle tue applicazioni in locale, puoi utilizzare il comando gcloud auth application-default login
per ottenere temporaneamente le credenziali utente per l'applicazione. Questo comando consente di fornire le credenziali utente durante lo sviluppo del codice che normalmente userebbe un account di servizio, ma è necessario eseguire il codice in un ambiente di sviluppo locale.
Le credenziali verranno applicate a tutte le chiamate API che utilizzano la libreria client delle credenziali predefinite dell'applicazione.
Installa l'interfaccia a riga di comando gcloud sui tuoi sistemi di sviluppo.
Fornisci le tue credenziali allo strumento utilizzando il comando
gcloud auth application-default login
.
L'applicazione ottiene le credenziali dallo strumento. Successivamente, puoi eseguire il deployment della tua applicazione in istanze Compute Engine in cui l'applicazione ottiene automaticamente le credenziali dagli account di servizio integrati o in altri sistemi con credenziali specificate nelle variabili di ambiente.
Esempio: autenticazione mediante credenziali predefinite dell'applicazione
In questo esempio viene utilizzata la libreria client di Python per eseguire l'autenticazione ed effettuare una richiesta all'API Cloud Storage per elencare i bucket in un progetto. L'esempio utilizza la procedura seguente:
- Ottieni le credenziali di autenticazione necessarie per l'API Cloud Storage e inizializza il servizio Cloud Storage con il metodo
build()
e le credenziali. - Elenca i bucket in Cloud Storage.
Puoi eseguire questo esempio su un'istanza che ha accesso per gestire i bucket in Cloud Storage, sulla tua macchina locale dopo aver eseguito il comando gcloud beta auth application-default login
o dopo aver impostato una variabile di ambiente per utilizzare le credenziali predefinite dell'applicazione.
Ottenere l'accesso alle risorse Google Cloud di proprietà degli utenti della tua applicazione
Se stai creando strumenti di sviluppo o amministrazione per cui gli utenti ti consentono di accedere alle loro risorse Google Cloud, ottieni l'autorizzazione attraverso una procedura OAuth 2.0 di base. Questo processo richiede agli utenti di concedere l'accesso alle proprie informazioni tramite un flusso di autorizzazione dell'utente. Una volta che l'applicazione ha accesso, può visualizzare o modificare le risorse Compute Engine nel progetto di ogni utente.
Nella richiesta specifica un ambito di accesso che limiti l'accesso solo ai metodi e alle informazioni utente richiesti dall'applicazione. Ad esempio, specifica l'ambito compute.readonly
quando l'applicazione visualizza le risorse Compute Engine esistenti, ma non crea o modifica risorse per gli utenti.
Compute Engine fornisce i seguenti ambiti:
Ambito | Significato |
---|---|
https://www.googleapis.com/auth/compute |
Accesso in lettura/scrittura ai metodi di Compute Engine. |
https://www.googleapis.com/auth/compute.readonly |
Accesso in sola lettura ai metodi di Compute Engine. |
https://www.googleapis.com/auth/cloud-platform |
Visualizzare e gestire i dati nella maggior parte dei servizi Google Cloud nel progetto Google Cloud specificato. |
Per un elenco completo dei servizi e degli ambiti richiesti su Google Cloud, vedi Ambiti OAuth 2.0 per le API Google.