Contrôler l'accès aux ressources

Vous pouvez partager les ressources ou le quota de calcul de votre projet compatible avec Earth Engine avec d'autres utilisateurs Earth Engine au niveau du projet. Les ressources ou le calcul Earth Engine peuvent être partagés avec un autre utilisateur ou un groupe d'utilisateurs. Si vous souhaitez partager des fichiers 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 fournir un accès aux ressources, que ce soit pour une personne ou un groupe, et décrit 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 dans un projet Cloud, l'API doit être activée dans 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 minimum de l'autorisation serviceusage.services.use sur le projet. Cette autorisation peut être accordée par le biais des rôles Propriétaire ou Éditeur du projet, ou par le biais du 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 d'utilisation des services requises sur le projet sélectionné.

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

Définir des autorisations au niveau des composants

Il existe plusieurs options pour mettre à jour les autorisations au niveau de l'élément.

  • Utilisez le gestionnaire d'éléments 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 directement l'API REST.

Définir des autorisations pour les composants au niveau du projet

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

Vous pouvez partager des composants 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 obtenir un aperçu plus général des rôles IAM, consultez Comprendre les rôles.

Lorsqu'un autre utilisateur tente d'accéder à l'un de vos composants, les autorisations sont d'abord vérifiées au niveau du composant. Si les autorisations n'ont pas été définies au niveau de l'asset ou si la vérification échoue (c'est-à-dire qu'il n'y a pas d'accès), les autorisations seront 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 Actifs de l'éditeur de code, puis cliquer sur l'icône .
  2. Cliquez sur Sélectionner un projet et 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. Vous pouvez également cliquer 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 les risques 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 de 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 présente quelques limites. Nous avons fourni des exemples de solutions de contournement :

Limite Exemple d'alternative
L'éditeur de code n'est pas compatible. De plus, VPC Service Controls n'autorise pas l'utilisation de l'éditeur de code avec des ressources et des clients à l'intérieur d'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 les composants 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 à l'intérieur d'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 prédéfinis Earth Engine

Earth Engine fournit des rôles prédéfinis qui permettent différents degrés de contrôle sur 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 Permet d'afficher et de lister les composants et les tâches.
roles/earthengine.writer Rédacteur de ressources Earth Engine Autorise la lecture, la création, la modification et la suppression de composants, l'importation d'images et de tableaux, la lecture et la mise à jour de tâches, l'exécution de calculs interactifs et la création de tâches d'exportation de longue durée.
roles/earthengine.admin Administrateur Earth Engine Fournit l'autorisation pour toutes les ressources Earth Engine, y compris la modification des contrôles d'accès aux composants Earth Engine.
roles/earthengine.appsPublisher Éditeur d'applications Earth Engine Autorise la création d'un compte de service à utiliser avec une application Earth Engine. Autorise également la modification et la suppression 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 consulter l'ensemble des autorisations associées à chaque rôle sur la page Rôles IAM. Pour ce faire, filtrez les résultats sur un rôle spécifique, puis cliquez dessus.

Accès complet à l'API Earth Engine

Pour accorder aux utilisateurs un accès complet au service Earth Engine, que ce soit 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écuter des expressions Earth Engine
  • Exécuter des calculs par lot (exportations)
  • Obtenir des résultats interactifs (cartes en ligne, miniatures, graphiques, etc.)
  • Créer ou 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 de 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)
  • L'Éditeur de configuration OAuth (roles/oauthconfig.editor) est également requis pour les utilisateurs qui accèdent à Earth Engine via un environnement de notebook et qui utilisent Notebook Authenticator. Pour en savoir plus, consultez Authentification des notebooks Colab ou JupyterLab.
Remarques Google Cloud exige le rôle Client de l'utilisation du service pour utiliser le projet comme projet actif lors de l'appel des API. ee.Initialize(project=X) échouera sans cette autorisation sur le projet X. Vous pouvez ensuite sélectionner ce projet dans la console Cloud pour afficher votre utilisation des ressources.

Partage d'éléments uniquement

Accordez à l'utilisateur l'un des rôles IAM prédéfinis Earth Engine 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 avancés d'organisation)
  • Lecteur de dossier (roles/resourcemanager.folderViewer) sur les dossiers concernés

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

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

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 vous ne l'avez pas encore fait, 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 encore été configuré)
  • Éditeur (roles/editor) OU
  • Responsable du transfert de projet (roles/resourcemanager.projectMover) ET
    Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin) ET
    Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin)

Créer un projet dans 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 projets (roles/resourcemanager.projectMover) ET
    Créateur de projets (roles/resourcemanager.projectCreator) ET
    Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin)
Remarques Il est possible que votre organisation ne vous accorde pas le rôle Éditeur. Vous devrez peut-être utiliser des rôles plus précis. L'outil de transfert de projet est nécessaire pour couvrir l'autorisation projects.update.

Sélection d'un 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)
Ajouter un compte de facturation

Le niveau Contributeur nécessite un compte de facturation valide dans le projet.

Autorisations nécessaires
  • billing.accounts.get
Rôles suggérés
  • Lecteur de compte de facturation (roles/billing.viewer)

Enregistrement de projets commerciaux

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

Autorisations nécessaires
Compte de facturation
  • billing.subscriptions.list
Notez en outre les points suivants :
  • billing.accounts.get (pour créer un forfait limité)
  • billing.subscriptions.create (pour créer un forfait Basic ou Professional)
Projet Cloud
  • earthengine.computations.create
  • 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)

Gérer les forfaits commerciaux Earth Engine

Les autorisations suivantes concernent la gestion des forfaits Earth Engine.

Autorisations requises
sur le compte de facturation
  • billing.subscriptions.create (pour modifier un forfait Earth Engine)
  • billing.subscriptions.list (pour afficher le forfait Earth Engine actuel)
Rôles suggérés
dans 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 pour les tâches par lot au niveau du projet

Autorisations requises
sur le compte Cloud
earthengine.config.update
Remarque : Cette autorisation inclut également la possibilité d'afficher les limites au niveau du forfait configurées dans 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 une 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 (cas 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 Earth Engine App 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 à accès restreint, l'identité est le groupe Google à accès restreint 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)