Contrôle des accès

Vous pouvez partager les composants ou le quota de calcul de votre projet compatible avec Earth Engine avec d'autres utilisateurs Earth Engine au niveau du projet. Les composants ou le calcul Earth Engine peuvent être partagés avec un autre utilisateur ou un groupe d'utilisateurs. Si vous souhaitez partager 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 à des 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 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 d'au moins l'autorisation serviceusage.services.use sur le projet. Cette autorisation peut être fournie via les rôles Propriétaire ou Éditeur du projet, ou via le rôle spécifique Consommateur Service Usage. Une erreur s'affiche si l'utilisateur ne dispose pas des autorisations Earth Engine et d'utilisation des services requises pour le projet sélectionné.

Définir des autorisations pour les éléments

Définir des autorisations au niveau des composants

Plusieurs options permettent de mettre à jour les autorisations au niveau des composants.

  • 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 directement l'API REST.

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

Le partage au niveau du projet définit des autorisations pour tous les composants de votre projet Cloud compatible avec Earth Engine en même temps.

Vous pouvez partager des composants au niveau du projet en attribuant le rôle IAM (Identity and Access Management) approprié sur la page d'administration IAM de votre projet. Il existe des rôles IAM Earth Engine prédéfinis pour partager les éléments et les ressources Earth Engine. Pour obtenir 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 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'aucun accès n'est accordé), 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
    Ouvrez la page IAM
    Ou maintenez le pointeur sur le nom de votre projet dans l'onglet Composants de l'éditeur de code, puis cliquez 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 accorder. Pour en savoir plus, consultez la page 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. Ajouter des 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 comporte quelques limites, pour lesquelles nous avons fourni des exemples de solutions de contournement:

Limite Exemple d'alternative
Code Editor n'est pas compatible et VPC Service Controls ne permet pas de l'utiliser avec les ressources et les 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 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 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 de base, une erreur s'affiche. 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 la page 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 les ressources Earth Engine d'un projet à différents degrés. Voici ces rôles:

Rôle Titre Description
roles/earthengine.viewer Lecteur de ressources Earth Engine Fournit l'autorisation d'afficher et de lister les composants et les tâches.
roles/earthengine.writer Rédacteur de ressources Earth Engine Fournit l'autorisation de lire, de créer, de modifier et de supprimer des composants, d'importer des images et des tableaux, 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 une autorisation pour toutes les ressources Earth Engine, y compris la modification des contrôles d'accès aux é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 les applications appartenant au projet dans le projet Cloud.

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

Accès complet à l'API Earth Engine

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

  • Exécuter des expressions Earth Engine
  • Exécuter des calculs par lots (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 d'utilisation du service (roles/serviceusage.serviceUsageConsumer) ET l'un des éléments 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 utilisent l'Authentificateur de notebook. Pour en savoir plus, consultez la section Authentification des notebooks Colab ou JupyterLab.
Remarques Google Cloud nécessite le rôle Client du service pour utiliser le projet comme projet actif lors de l'appel d'API. ee.Initialize(project=X) échouera sans cette autorisation sur le projet X. Vous pouvez également sélectionner ce projet dans Cloud Console pour afficher votre utilisation des ressources.

Partage de composants uniquement

Accordez à l'utilisateur l'un des rôles IAM Earth Engine prédéfinis avec les autorisations minimales requises pour effectuer l'activité nécessaire. Notez que les utilisateurs ne pourront pas utiliser 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é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 ce n'a pas été fait auparavant, vous aurez besoin de ces rôles pour que la configuration aboutisse.

  • 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
  • Project Mover (roles/resourcemanager.projectMover) ET
    Project IAM Admin (roles/resourcemanager.projectIamAdmin) ET
    Service Usage Admin (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 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 attribue pas le rôle Éditeur. Il se peut donc que vous ayez besoin de rôles plus précis. Project Mover est nécessaire pour couvrir l'autorisation projects.update.

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
En outre :
  • 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 de base ou professionnel
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.subscriptions.create (pour modifier un forfait Earth Engine)
  • billing.subscriptions.list (pour afficher le forfait Earth Engine actuel)
Rôles suggérés
au niveau du 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 inclut également l'affichage des 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 des 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 (peu courant)
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 d'application Earth Engine s'identifient aux 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é accordée à ce rôle est earth-engine-public-apps@appspot.gserviceaccount.com. Dans le cas d'applications limitées, 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)