Un account di servizio è un account associato a un'applicazione anziché a un utente finale. Potresti dover utilizzare un account di servizio per autenticarti in Earth Engine se stai sviluppando un'app o utilizzi l'API REST. Scopri di più sull'autenticazione con gli account di servizio.
Crea un account di servizio
Innanzitutto, crea un progetto Google Cloud, se non l'hai ancora fatto.
Per gestire gli account di servizio per il tuo progetto Cloud, vai al menu della console Cloud (Account di servizio. Scegli il progetto, se richiesto.
) e seleziona IAM e amministrazione >Per creare un nuovo account di servizio, fai clic sul link + CREA ACCOUNT DI SERVIZIO.
Se hai creato un progetto App Engine, potresti già avere un account di servizio predefinito (account di servizio predefinito di App Engine) per quel progetto. Se stai configurando un progetto App Engine, per il Ruolo dell'account di servizio, scegli Progetto > Editor.
Crea una chiave privata per l'account di servizio
Dopo aver creato un account di servizio, fai clic sul menu dell'account (
), quindi su Crea chiave > JSON. Scarica il file della chiave JSON.Tieni al sicuro il file della chiave
Il file della chiave è un file speciale che consente ai programmi di accedere alle API di Google per conto del tuo account di servizio. Assicurati che non sia possibile per nessuno ottenere accesso non autorizzato, in quanto potrebbe accedere alle API di Google per tuo conto. Non conservare mai la chiave privata in un luogo pubblico, come una cartella condivisa o un repository di origine. Se smarrisci la chiave privata, puoi revocare facilmente l'accesso a un account di servizio e crearne uno nuovo utilizzando la console Cloud. Per informazioni dettagliate, consulta questa guida.
Registra l'account di servizio per utilizzare Earth Engine
Tutti gli account di servizio vengono creati all'interno di un progetto Cloud, che può essere lo stesso progetto utilizzato per l'app App Engine o la VM Cloud. Assicurati che il progetto Cloud sia registrato per accedere a Earth Engine e che l'API Earth Engine sia abilitata nel progetto. Tutti gli account di servizio del progetto con le autorizzazioni corrette avranno accesso a Earth Engine e non è necessario registrarli separatamente.
Tieni presente che non è più possibile registrare singoli account di servizio. Deve essere registrato il progetto Cloud stesso.
Utilizzare un account di servizio con una chiave privata
Per autenticarti in Earth Engine utilizzando un account di servizio:
- Crea e scarica un file della chiave privata JSON (
.private-key.json
) per l'account di servizio. - Prova il seguente codice Python da dove hai inserito il file
.private-key.json
:import ee service_account = 'my-service-account@...gserviceaccount.com' credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json') ee.Initialize(credentials)
Se riesci a eseguire l'inizializzazione senza errori, il tuo account di servizio è pronto per l'uso.
Cosa devo fare se ricevo un errore invalid_grant?
OAuth2 può essere molto sensibile al disallineamento del clock. Se hai la certezza di aver impostato tutto correttamente e il tuo contatto Google ha verificato che l'account di servizio sia stato approvato, controlla se l'orologio del computer è sincronizzato con l'ora di rete.
Per i sistemi Ubuntu, la chiamata per sincronizzare l'orologio del computer è:
ntpdate ntp.ubuntu.com
Per i sistemi che utilizzano OS X, apri Preferenze di sistema > Data e ora > Data e ora (di nuovo) e seleziona Imposta data e ora automaticamente.
Utilizzare un account di servizio predefinito
Se utilizzi un account di servizio predefinito, devi prima modificare gli ambiti di accesso della VM per l'account di servizio Compute Engine in "Consenti accesso completo a tutte le API Cloud". Se utilizzi account di servizio predefiniti in Dataflow o App Engine, questo passaggio non è necessario.Per eseguire l'autenticazione in Earth Engine utilizzando un account di servizio predefinito, utilizza il seguente codice:
from google.auth import compute_engine import ee credentials = compute_engine.Credentials(scopes=['https://www.googleapis.com/auth/earthengine']) ee.Initialize(credentials)
Configurare l'accesso all'API REST
Se l'account di servizio deve eseguire calcoli utilizzando l'API REST, devi concedergli l'autorizzazione a livello di progetto, in particolare il ruolo Visualizzatore risorse Earth Engine. A seconda della configurazione del progetto, potrebbe essere necessario anche assegnare all'account di servizio il ruolo Consumatore di utilizzo del servizio. Per ulteriori informazioni sulle autorizzazioni del progetto richieste per utilizzare Earth Engine, consulta la pagina Controllo dell'accesso.