Comptes de service

Un compte de service est un compte associé à une application plutôt qu'à un utilisateur final. Vous devrez peut-être utiliser un compte de service pour vous authentifier auprès d'Earth Engine si vous développez une application ou si vous utilisez l'API REST. En savoir plus sur l'authentification avec des comptes de service

Créer un compte de service

Commencez par créer un projet Google Cloud si vous ne l'avez pas déjà fait.

Vous pouvez gérer les comptes de service de votre projet Cloud en accédant au menu Cloud Console () et en sélectionnant IAM et administration > Comptes de service. (Choisissez le projet si vous y êtes invité.)

Pour créer un compte de service, cliquez sur le + CRÉER UN COMPTE DE SERVICE lien.

Si vous avez créé un projet App Engine, vous disposez peut-être déjà d'un compte de service par défaut (compte de service App Engine par défaut) pour ce projet. Si vous configurez un projet App Engine, pour le rôle du compte de service Rôle, sélectionnez Projet > Éditeur.

Configurer le compte de service pour utiliser Earth Engine

Tous les comptes de service sont créés dans un projet Cloud, qui peut être le même que celui utilisé pour votre application App Engine ou votre VM Cloud. Assurez-vous que le projet Cloud est enregistré pour accéder à Earth Engine et que l'API Earth Engine est activée dans le projet. Tous les comptes de service du projet disposant des autorisations appropriées auront accès à Earth Engine.

S'authentifier auprès d'Earth Engine à l'aide des identifiants par défaut de l'application

Les identifiants par défaut de l'application (ADC, Application Default Credentials) sont la méthode recommandée pour s'authentifier dans des environnements sans surveillance (comme Cloud Run ou Compute Engine) sans gérer manuellement les clés privées.

import google.auth
import ee

credentials, project_id = google.auth.default()
ee.Initialize(credentials, project='my-ee-project')

S'authentifier avec une clé privée

Si votre application doit s'authentifier à l'aide d'une clé privée de compte de service (non recommandé pour les environnements de production où ADC peut être utilisé) :

  1. Créez une clé privée pour le compte de service :
    • Accédez à la page Comptes de service dans Cloud Console.
    • Cliquez sur le menu du compte (), puis sur Créer une clé > JSON.
    • Téléchargez le fichier de clé JSON.
  2. Conservez votre fichier de clé en lieu sûr. Le fichier de clé est un fichier spécial qui permet aux programmes d'accéder aux API Google au nom de votre compte de service. Ne stockez jamais votre clé privée dans un lieu public place. Si vous égarez votre clé privée, vous pouvez révoquer l'accès à un compte de service et créer un à l'aide de Cloud Console. Pour en savoir plus, consultez Créer et supprimer des clés de compte de service.
  3. Testez le code Python suivant à partir de l'emplacement où vous avez placé le .private-key.json fichier :
    import ee
    service_account = 'my-service-account@...gserviceaccount.com'
    credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json')
    ee.Initialize(credentials)

Si vous parvenez à initialiser sans erreur, votre compte de service est prêt à être utilisé.

Utiliser un compte de service par défaut sur Compute Engine

Si vous utilisez un compte de service par défaut, vous devez d'abord modifier les niveaux d'accès de la VM pour le compte de service Compute Engine afin d'autoriser l'accès complet à toutes les API Cloud". (Si vous utilisez des comptes de service par défaut dans Dataflow ou App Engine, cette étape n'est pas nécessaire.)

Pour vous authentifier auprès d'Earth Engine à l'aide d'un compte de service par défaut, utilisez le code suivant :

from google.auth import compute_engine
import ee
credentials = compute_engine.Credentials(scopes=['https://www.googleapis.com/auth/earthengine'])
ee.Initialize(credentials)

Configurer l'accès à l'API REST

Si le compte de service doit effectuer des calculs à l'aide de l'API REST, vous devez lui accorder une autorisation au niveau du projet, en particulier le rôle Lecteur de ressources Earth Engine. En fonction de la configuration de votre projet, vous devrez peut-être également attribuer au compte de service le rôle Consommateur de l'utilisation du service. Pour en savoir plus sur les autorisations de projet requises pour utiliser Earth Engine, consultez la page Contrôle des accès.

Dépannage

Erreur : invalid_grant

OAuth2 peut être très sensible au décalage de l'horloge. Si vous êtes certain d'avoir tout configuré correctement, vérifiez si l'horloge de votre ordinateur est synchronisée avec l'heure du réseau.

Erreur : "Les champs d'application fournis ne sont pas autorisés" lors de l'exportation vers Cloud Storage

Si cette erreur s'affiche lors de l'exécution dans une tâche Cloud Run, ne définissez pas l'argument scopes lors de la création d'identifiants (par exemple, dans google.auth.default(scopes=...)). La spécification de champs d'application peut interférer avec les autorisations par défaut dans cet environnement.