Contrôler l'accès aux ressources

Vous pouvez partager les éléments ou le quota de calcul de votre projet compatible avec Earth Engine avec d'autres utilisateurs d'Earth Engine au niveau du projet. Les éléments ou les ressources de calcul Earth Engine peuvent être partagés avec un autre utilisateur ou un groupe d'utilisateurs. Si vous souhaitez partager l'accès avec un groupe d'utilisateurs, créez un groupe Google et notez son adresse e-mail (disponible via le lien "À propos" sur la page du groupe). Cette page explique comment accorder l'accès aux ressources à un utilisateur ou à un groupe, ainsi que les rôles et autorisations requis pour différentes activités.

Définir l'utilisation du service Earth Engine

Pour utiliser l'API Earth Engine sur un projet Cloud, l'API doit être activée sur le projet, et l'utilisateur doit disposer au moins des autorisations du rôle Lecteur de ressources Earth Engine (en savoir plus sur les rôles IAM Earth Engine prédéfinis). De plus, l'utilisateur doit disposer au moins de l'autorisation serviceusage.services.use sur le projet. Cette autorisation peut être accordée via les rôles Propriétaire ou Éditeur du projet, ou via le rôle spécifique Consommateur Service Usage. Une erreur sera générée si l'utilisateur ne dispose pas des autorisations Earth Engine et Service Usage requises sur le projet sélectionné.

Définir les autorisations associées aux éléments

Définir des autorisations au niveau des éléments

Plusieurs options sont disponibles pour mettre à jour les autorisations au niveau de l'asset.

  • Utilisez le gestionnaire d'assets dans l'éditeur de code.
  • Utilisez la ligne de commande Earth Engine.
  • Utilisez une bibliothèque cliente, par exemple ee.data.setAssetAcl().
  • Vous pouvez également appeler l'API REST directement.

Définir des autorisations d'éléments au niveau du projet

Le partage au niveau du projet définit les autorisations sur tous les éléments de votre projet Cloud compatible avec Earth Engine en une seule fois.

Vous pouvez partager des éléments au niveau du projet en attribuant le rôle Identity and Access Management (IAM) approprié sur la page d'administration IAM de votre projet. Il existe des rôles IAM Earth Engine prédéfinis pour partager des éléments et des ressources Earth Engine. Pour une présentation plus générale des rôles IAM, consultez Comprendre les rôles.

Lorsqu'un autre utilisateur tente d'accéder à l'un de vos éléments, les autorisations sont d'abord vérifiées au niveau de l'élément. Si les autorisations n'ont pas été définies au niveau de l'élément ou si la vérification échoue (c'est-à-dire qu'il n'y a pas d'accès), les autorisations sont vérifiées au niveau du projet.

Définir des autorisations au niveau du projet

Pour définir des autorisations au niveau du projet, attribuez un rôle IAM de projet à un utilisateur ou à un groupe d'utilisateurs :

  1. Ouvrez la page IAM dans la console Google Cloud
    Ouvrir la page IAM
    Vous pouvez également pointer sur le nom de votre projet dans l'onglet Assets (Éléments) de l'éditeur de code, puis cliquer sur l'icône .
  2. Cliquez sur Sélectionner un projet, puis choisissez votre projet (vous devriez déjà y être si vous avez ouvert la page IAM depuis l'éditeur de code).
  3. Cliquez sur AJOUTER en haut de la page, puis ajoutez l'adresse e-mail de la personne ou du groupe en tant que nouveau membre, ou cliquez sur l'icône à côté du membre existant dans le projet.
  4. Dans le menu déroulant Rôle, recherchez le rôle Ressource Earth Engine que vous souhaitez attribuer. Pour en savoir plus, consultez Rôles IAM Earth Engine prédéfinis.
  5. Cliquez sur le bouton ENREGISTRER.

VPC Service Controls

Earth Engine est compatible avec VPC Service Controls, une fonctionnalité de sécurité Google Cloud qui aide les utilisateurs à sécuriser leurs ressources et à limiter le risque d'exfiltration de données. L'ajout de ressources à un périmètre de service VPC permet de mieux contrôler les opérations de lecture et d'écriture des données.

En savoir plus sur les fonctionnalités et la configuration de VPC-SC

Limites

L'activation de VPC Service Controls pour vos ressources s'accompagne de quelques limites, pour lesquelles nous avons fourni des exemples de solutions de contournement :

Limite Exemple d'alternative
L'éditeur de code n'est pas compatible, et VPC Service Controls n'autorise pas son utilisation avec des ressources et des clients situés dans un périmètre de service. Utilisez l' API Python Earth Engine avec la bibliothèque geemap.
Les anciens composants ne sont pas protégés par VPC Service Controls. Utilisez des assets stockés dans des projets cloud.
L'exportation vers Google Drive n'est pas compatible avec VPC Service Controls.
Les applications Earth Engine ne sont pas compatibles avec les ressources et les clients situés dans un périmètre de service. Aucune solution de contournement n'est disponible.

L'utilisation d'Earth Engine avec des ressources situées dans un périmètre de service VPC sécurisé n'est disponible que pour les forfaits Professional et Premium. Si vous essayez d'utiliser l'API Earth Engine avec un projet sécurisé par VPC-SC associé à un forfait Basic, une erreur se produira. Pour en savoir plus sur les tarifs d'Earth Engine, consultez la documentation officielle.

Pour en savoir plus sur VPC Service Controls et ses limites, consultez Produits compatibles et limites.

Rôles et autorisations

Les sections suivantes décrivent les autorisations et les rôles requis pour effectuer des activités et accéder aux ressources Earth Engine. Consultez la documentation Google Cloud pour en savoir plus sur les autorisations et les rôles des projets Cloud.

Rôles IAM Earth Engine prédéfinis

Earth Engine fournit des rôles prédéfinis qui permettent de contrôler à différents degrés les ressources Earth Engine d'un projet. Ces rôles sont les suivants :

Rôle Titre Description
roles/earthengine.viewer Lecteur de ressources Earth Engine Fournit l'autorisation d'afficher et de lister les éléments et les tâches.
roles/earthengine.writer Rédacteur de ressources Earth Engine Fournit l'autorisation de lire, créer, modifier et supprimer des éléments, d'importer des images et des tables, de lire et de mettre à jour des tâches, d'effectuer des calculs interactifs et de créer des tâches d'exportation de longue durée.
roles/earthengine.admin Administrateur Earth Engine Fournit des autorisations pour toutes les ressources Earth Engine, y compris la modification des contrôles d'accès pour les éléments Earth Engine.
roles/earthengine.appsPublisher Éditeur d'applications Earth Engine Fournit l'autorisation de créer un compte de service à utiliser avec une application Earth Engine. Accorde également l'autorisation de modifier et de supprimer des applications appartenant au projet dans le projet Cloud.

Notez que vous pouvez définir un rôle primitif ou personnalisé si les rôles Earth Engine prédéfinis ne répondent pas à vos besoins. Vous pouvez afficher l'ensemble des autorisations associées à chaque rôle sur la page "Rôles IAM" en filtrant sur un rôle spécifique et en cliquant dessus.

Activer l'API Earth Engine

Pour activer l'API Earth Engine sur un projet Cloud, l'utilisateur doit disposer du rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin) ou d'un autre rôle incluant l'autorisation serviceusage.services.enable (comme Propriétaire du projet ou Éditeur).

Autorisations nécessaires
  • serviceusage.services.enable
  • serviceusage.services.get
Rôles suggérés
  • Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin) OU
  • Propriétaire (roles/owner) OU
  • Éditeur (roles/editor)

Accès complet à l'API Earth Engine

Pour accorder aux utilisateurs un accès complet au service Earth Engine, directement via l'API REST, l'éditeur de code ou une bibliothèque cliente, ils doivent être autorisés à effectuer des opérations telles que :

  • Exécution d'expressions Earth Engine…
  • Exécuter des calculs par lot (exportations)
  • Obtenir des résultats interactifs (cartes en ligne, vignettes, graphiques, etc.)
  • Créer/Supprimer des éléments Earth Engine
  • Utiliser l'authentification OAuth via une bibliothèque cliente pour se connecter à Earth Engine
Autorisations nécessaires
  • clientauthconfig.clients.listWithSecrets
  • earthengine.assets.get
  • earthengine.assets.getIamPolicy
  • earthengine.assets.list
  • earthengine.computations.create
  • earthengine.operations.get
  • earthengine.operations.list
  • monitoring.timeSeries.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.operations.get
  • serviceusage.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • serviceusage.services.use
Rôles suggérés
  • Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer) ET l'un des rôles suivants :
    • Lecteur de ressources Earth Engine (roles/earthengine.viewer) OU
    • Rédacteur de ressources Earth Engine (roles/earthengine.writer) OU
    • Administrateur de ressources Earth Engine (roles/earthengine.admin)
  • Le rôle Éditeur de configuration OAuth (roles/oauthconfig.editor) est également requis pour les utilisateurs qui accèdent à Earth Engine via un environnement de notebook et utilisent l'authentificateur de notebook. Pour en savoir plus, consultez Authentification des notebooks Colab ou JupyterLab.
Remarques Google Cloud nécessite le rôle Consommateur Service Usage pour utiliser le projet en tant que projet actif lors de l'appel d'API, et ee.Initialize(project=X) échouera sans cette autorisation sur le projet X. Vous pouvez également sélectionner ce projet dans la console Cloud pour afficher votre utilisation des ressources.

Partage d'assets uniquement

Accordez à l'utilisateur l'un des rôles IAM Earth Engine prédéfinis avec les autorisations minimales nécessaires pour effectuer l'activité requise. Notez que les utilisateurs ne pourront pas consommer les ressources du projet sans les autorisations serviceusage nécessaires.

Gestion de projets

Lister et afficher les projets disponibles

Cela se produit lorsque vous utilisez l'éditeur de code pour parcourir les projets disponibles.

Autorisations nécessaires
  • resourcemanager.projects.get
  • resourcemanager.folders.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get (peu courant)
Rôles suggérés
  • Lecteur (roles/viewer) OU
    Lecteur de ressources Earth Engine (roles/earthengine.viewer) sur les projets concernés OU
    Navigateur (roles/browser, recommandé pour les cas d'organisation avancés)
  • Lecteur de dossier (roles/resourcemanager.folderViewer) sur les dossiers concernés

Sélectionnez un projet à utiliser dans l'éditeur de code

Autorisations nécessaires
  • resourcemanager.projects.get
  • serviceusage.services.get
Si le projet n'a pas été configuré précédemment

Lorsque vous sélectionnez un projet pour la première fois dans l'éditeur de code, il est initialisé pour être utilisé avec Earth Engine. Si cela n'a pas été fait auparavant, vous aurez besoin de ces rôles pour que la configuration réussisse.

  • resourcemanager.projects.update ET
  • serviceusage.services.enable
Rôles suggérés
  • Lecteur (roles/viewer) OU
  • Lecteur de ressources Earth Engine (roles/earthengine.viewer) ET
    Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer)
Rôles supplémentaires (si le projet n'a pas été configuré précédemment)
  • Éditeur (roles/editor) OU
  • Outil de déplacement de projet (roles/resourcemanager.projectMover) ET
    Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin) ET
    Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin)

Créer un projet via l'éditeur de code

Autorisations nécessaires
  • resourcemanager.projects.get
  • resourcemanager.projects.create
  • resourcemanager.projects.update
  • serviceusage.services.get
  • serviceusage.services.enable
Rôles suggérés
  • Éditeur (roles/editor) OU
  • Déplaceur de projet (roles/resourcemanager.projectMover) ET
    Créateur de projet (roles/resourcemanager.projectCreator) ET
    Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin)
Remarques Il est possible que votre organisation ne vous accorde pas le rôle d'éditeur. Dans ce cas, des rôles plus précis peuvent être nécessaires. Le rôle Outil de déplacement de projet est nécessaire pour couvrir l'autorisation projects.update.

Sélection du niveau non commercial

Les autorisations et les rôles suggérés suivants concernent la configuration du niveau non commercial.

Sélection du niveau
Autorisations nécessaires
  • earthengine.config.update
Rôles suggérés
  • Rédacteur de ressources Earth Engine (roles/earthengine.writer)
Associer un compte de facturation à un projet

Le niveau "Contributeur" nécessite un compte de facturation valide associé au projet. Pour en savoir plus sur les autorisations et les rôles de facturation, consultez la page Accès à Cloud Billing.

Autorisations nécessaires
Compte de facturation
  • billing.resourceAssociations.create
Projet Cloud
  • resourcemanager.projects.createBillingAssignment
Rôles suggérés
Compte de facturation
  • Utilisateur de compte de facturation (roles/billing.user)
Projet Cloud
  • Gestionnaire de la facturation du projet (roles/billing.projectManager)

Enregistrement de projet commercial

Les autorisations suivantes concernent l'enregistrement de projets pour une utilisation payante.

Autorisations nécessaires
Compte de facturation
  • billing.accounts.get
  • billing.subscriptions.list
Notez en outre les points suivants :
  • billing.subscriptions.create (pour créer un forfait Basic ou Professional)
Projet Cloud
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
Rôles suggérés
Compte de facturation
  • Lecteur de compte de facturation (roles/billing.viewer), pour créer un forfait limité
  • Administrateur de compte de facturation (roles/billing.admin), pour créer un forfait Basic ou Professional
Projet Cloud
  • Rédacteur de ressources Earth Engine (roles/earthengine.writer)
  • Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin)

Gestion des forfaits Earth Engine commerciaux

Les autorisations suivantes concernent la gestion des forfaits Earth Engine.

Autorisations requises
sur le compte de facturation
  • billing.accounts.get
  • billing.subscriptions.list
Notez en outre les points suivants :
  • billing.subscriptions.create (pour passer d'un forfait Limited à un forfait Basic ou Professional)
  • billing.subscriptions.update (pour passer d'un forfait Basic à un forfait Professional, ou inversement, ou pour passer d'un forfait Basic ou Professional à un forfait Limited)
Rôles suggérés
sur le compte de facturation
  • Lecteur de compte de facturation (roles/billing.viewer), pour afficher le forfait Earth Engine actuel
  • Administrateur de compte de facturation (roles/billing.admin), pour modifier un forfait Earth Engine

Gestion des tâches par lot

Les autorisations suivantes concernent la configuration des limites par projet sur la simultanéité des tâches par lot. Cette fonctionnalité n'est disponible que pour les utilisateurs commerciaux d'Earth Engine.

Afficher les limites des tâches par lot au niveau du projet

Autorisations requises
sur le compte Cloud
earthengine.config.get

Définir des limites de tâches par lot au niveau du projet

Autorisations requises
sur le compte Cloud
earthengine.config.update
Remarque : Cette autorisation permet également d'afficher les limites au niveau du forfait configurées sur le compte de facturation.
Autorisations requises
sur le compte de facturation
billing.subscriptions.list

Gestion des applications

Afficher les informations sur l'application

Autorisations nécessaires
  • iam.serviceAccounts.get
  • iam.serviceAccounts.getIamPolicy, si l'application est limitée (moins courant)
Rôles suggérés Lecteur (roles/viewer) OU
Éditeur d'applications Earth Engine (roles/earthengine.appsPublisher)

Publier/Mettre à jour l'application

Autorisations nécessaires
  • iam.serviceAccounts.get
  • iam.serviceAccounts.create
  • iam.serviceAccounts.enable
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy
  • iam.serviceAccounts.disable, si l'application est déplacée d'un projet à un autre (rare)
Rôles suggérés Éditeur d'applications Earth Engine (roles/earthengine.appsPublisher) OU
Administrateur de compte de service (roles/iam.serviceAccountAdmin)
Remarques
  • De plus, les comptes de service des applications Earth Engine s'identifient auprès des serveurs Earth Engine en présentant un jeton d'accès OAuth. Par conséquent, certaines identités sont ajoutées lors de la création de l'application en tant que créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator) sur les comptes de service.
  • Dans le cas d'une application Earth Engine publique, l'identité à laquelle ce rôle est attribué est earth-engine-public-apps@appspot.gserviceaccount.com. Dans le cas d'applications restreintes, l'identité est le groupe Google de restriction d'accès configuré par le créateur de l'application.

Supprimer une application

Autorisations nécessaires iam.serviceAccounts.disable
Rôles suggérés Éditeur d'applications Earth Engine (roles/earthengine.appsPublisher) OU
Administrateur de compte de service (roles/iam.serviceAccountAdmin)