访问权限控制

您可以在项目级别与其他 Earth Engine 用户共享启用了 Earth Engine 的项目的资产或计算配额。您可以与其他用户或用户群组共享 Earth Engine 资产或计算资源。如果您想与一组用户共享,请创建一个新的 Google 群组,并记下该群组的电子邮件地址(可通过群组页面上的“关于”链接获取)。本页介绍了如何向个人或群组授予对资源的访问权限,以及执行不同活动所需的角色和权限

设置 Earth Engine 服务用量

如需在 Cloud 项目中使用 Earth Engine API,必须在项目中启用该 API,并且用户必须至少拥有 Earth Engine Resource Viewer 角色中的权限(详细了解预定义的 Earth Engine IAM 角色)。此外,用户必须对项目至少拥有 serviceusage.services.use 权限。您可以通过项目 OwnerEditor 角色,或通过特定的 Service Usage Consumer 角色提供该权限。如果用户对所选项目没有所需的 Earth Engine 权限和服务使用权限,系统会抛出错误。

设置资源权限

设置资产级权限

您可以通过多种方式在资产一级更新权限。

  • 使用代码编辑器中的素材资源管理器。
  • 使用 Earth Engine 命令行。
  • 使用客户端库,例如 ee.data.setAssetAcl()
  • 或者直接调用 REST API

设置项目级素材资源权限

在项目级共享会同时为启用了 Earth Engine 的 Cloud 项目中的所有资源设置权限。

您可以在项目的 IAM 管理页面上分配适当的 Identity and Access Management (IAM) 角色,以便在项目级分享资源。您可以使用预定义的 Earth Engine IAM 角色来共享 Earth Engine 资产和资源。如需更笼统地了解 IAM 角色,请参阅了解角色

当其他用户尝试访问您的某项素材资源时,系统会先在素材资源一级检查权限。如果未在素材资源一级设置权限或检查失败(即无访问权限),系统会在项目一级检查权限。

设置项目级权限

如需在项目级层设置权限,请向用户或用户群组分配项目 IAM 角色:

  1. 在 Google Cloud 控制台中打开 IAM 页面
    打开 IAM 页面
    或者,将光标悬停在 Code Editor 的 Assets 标签页上方的项目名称上,然后点击 图标。
  2. 点击选择项目,然后选择您的项目(如果您是从 Code Editor 打开的 IAM 页面,则应该已经在该页面中)。
  3. 点击顶部的添加,然后将个人或群组电子邮件地址添加为新成员,或点击项目中现有成员旁边的 图标。
  4. 角色下拉菜单中,搜索要授予的 Earth Engine 资源角色。如需了解详情,请参阅 Earth Engine 预定义 IAM 角色
  5. 点击保存按钮。

VPC Service Controls

Earth Engine 支持 VPC Service Controls,这项 Google Cloud 安全功能可帮助用户保护其资源并降低数据渗漏风险。向 VPC 服务边界添加资源有助于更好地控制数据读写操作。

详细了解 VPC-SC 功能和配置

限制

为资源启用 VPC Service Controls 会带来一些限制,我们提供了一些权宜解决方法:

限制 替代方案示例
不支持 Code Editor,VPC Service Controls 不允许将其与服务边界内的资源和客户端搭配使用。 Earth Engine Python API geemap搭配使用。
旧版资源不受 VPC Service Controls 的保护。 使用 存储在 Cloud 项目中的素材资源
VPC Service Controls 不支持 导出到 Google 云端硬盘
服务边界内的资源和客户端不支持 Earth Engine 应用 没有可行的方法。

只有专业版和高级版定价方案支持将 Earth Engine 与安全的 VPC 服务边界内的资源搭配使用。如果尝试将 Earth Engine API 与与基本版定价方案关联的 VPC-SC 安全项目搭配使用,则会导致错误。如需详细了解 Earth Engine 的价格,请参阅官方文档

如需详细了解 VPC Service Controls 及其限制,请参阅支持的产品和限制

角色与权限

以下部分介绍了执行活动和访问 Earth Engine 资源所需的权限和角色。如需详细了解 Cloud 项目权限角色,请参阅 Google Cloud 文档。

预定义的 Earth Engine IAM 角色

Earth Engine 提供了预定义角色,可让您对项目中的 Earth Engine 资源进行不同程度的控制。这些角色包括:

角色 名称 说明
roles/earthengine.viewer Earth Engine Resource Viewer 提供查看和列出素材资源和任务的权限。
roles/earthengine.writer Earth Engine Resource Writer 提供读取、创建、修改和删除素材资源、导入图片和表格、读取和更新任务、执行 Interactive 计算以及创建长时间运行的导出任务的权限。
roles/earthengine.admin Earth Engine 管理员 为所有 Earth Engine 资源提供权限,包括更改 Earth Engine 资产的访问控制设置。
roles/earthengine.appsPublisher Earth Engine Apps Publisher 提供创建服务账号以与 Earth Engine 应用搭配使用的权限。还会授予修改和删除 Cloud 项目下的项目自有应用的权限。

请注意,如果预定义的 Earth Engine 角色不符合您的需求,您可以设置原始自定义角色。您可以在 IAM 角色页面中查看与每个角色关联的一组权限,只需过滤到特定角色并点击该角色即可。

对 Earth Engine API 的完整访问权限

如需向用户授予对 Earth Engine 服务的完全访问权限(无论是直接通过 REST API、通过代码编辑器还是通过客户端库),用户需要有权执行以下操作:

  • 执行 Earth Engine 表达式
  • 运行批量计算(导出)
  • 获取交互式结果(在线地图、缩略图、图表等)
  • 创建/删除 Earth Engine 资产
  • 通过客户端库使用 OAuth 身份验证连接到 Earth Engine
需要权限
  • 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
建议的角色
  • Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) 和以下任一角色:
    • Earth Engine Resource Viewer (roles/earthengine.viewer),或
    • Earth Engine Resource Writer (roles/earthengine.writer),或
    • Earth Engine Resource Admin (roles/earthengine.admin)
  • 对于通过笔记本环境访问 Earth Engine 并使用笔记本身份验证器的用户,还需要安装 OAuth Config Editor (roles/oauthconfig.editor)。如需了解详情,请参阅 Colab 或 JupyterLab 笔记本身份验证
备注 Google Cloud 要求 Service Usage Consumer 角色在调用 API 时将该项目用作活动项目,如果没有对项目 X 的此权限,ee.Initialize(project=X) 将会失败。此外,您还可以在 Cloud 控制台中选择此项目,以显示您对资源的使用情况。

仅分享资源

向用户授予一个预定义的 Earth Engine IAM 角色,并授予执行所需活动所需的最小权限。请注意,如果用户没有必要的 serviceusage 权限,将无法使用项目资源。

项目管理

列出和显示可用项目

使用 Code Editor 浏览可用项目时,就会发生这种情况。

需要权限
  • resourcemanager.projects.get
  • resourcemanager.folders.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get(不常见)
建议的角色
  • Viewer (roles/viewer) 或
    相关项目的 Earth Engine Resource Viewer (roles/earthengine.viewer) 或
    浏览器 (roles/browser,建议用于高级组织用例)
  • 相关文件夹的 Folder Viewer (roles/resourcemanager.folderViewer)

选择要在代码编辑器中使用的项目

需要权限
  • resourcemanager.projects.get
  • serviceusage.services.get
如果之前未设置项目

首次通过代码编辑器选择项目时,系统会初始化该项目以便与 Earth Engine 搭配使用。如果您之前未执行此操作,则需要拥有这些角色才能成功完成设置。

  • resourcemanager.projects.update
  • serviceusage.services.enable
建议的角色
  • Viewer (roles/viewer) 或
  • Earth Engine Resource Viewer (roles/earthengine.viewer) 和 Service Usage Consumer (roles/serviceusage.serviceUsageConsumer)
其他角色(如果之前未设置项目)
  • Editor (roles/editor) 或
  • Project Mover (roles/resourcemanager.projectMover) AND
    Project IAM Admin (roles/resourcemanager.projectIamAdmin) AND
    Service Usage Admin (roles/serviceusage.serviceUsageAdmin)

通过代码编辑器创建项目

需要权限
  • resourcemanager.projects.get
  • resourcemanager.projects.create
  • resourcemanager.projects.update
  • serviceusage.services.get
  • serviceusage.services.enable
建议的角色
  • Editor (roles/editor) 或
  • Project Mover (roles/resourcemanager.projectMover) AND
    Project Creator (roles/resourcemanager.projectCreator) AND
    Service Usage Admin (roles/serviceusage.serviceUsageAdmin)
备注 贵组织可能不会向您授予编辑者角色,因此您可能需要更精细的角色。需要有 Project Mover 权限才能覆盖 projects.update 权限。

商业项目注册

以下权限与注册项目以供付费使用有关。

需要权限
结算账号 如果结算账号已有 Earth Engine 方案,则无需拥有结算账号权限。如果不是这样,那么:
  • billing.accounts.get(用于创建新的“受限”方案)
  • billing.subscriptions.create(用于创建新的基本版或专业版方案)
Cloud 项目
  • earthengine.computations.create
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
建议的角色
结算账号 如果结算账号已有 Earth Engine 方案,则无需拥有结算账号权限。如果不是这样,那么:
  • Billing Account User (roles/billing.user),用于创建新的“受限”方案
  • Billing Account Administrator (roles/billing.admin),用于创建新的基本版或专业版方案
Cloud 项目
  • Earth Engine Resource Writer (roles/earthengine.writer)
  • Service Usage Admin (roles/serviceusage.serviceUsageAdmin)

商业 Earth Engine 方案管理

以下权限与管理 Earth Engine 价格方案有关。

结算账号
所需的权限
  • billing.subscriptions.create(用于更改 Earth Engine 方案)
  • billing.subscriptions.list(用于查看当前的 Earth Engine 方案)
结算账号的建议角色
  • Billing Account Viewer (roles/billing.viewer),用于查看当前的 Earth Engine 方案
  • 结算账号管理员 (roles/billing.admin),用于更改 Earth Engine 方案

批量任务管理

以下权限与配置批处理任务并发的每个项目限制有关。此功能仅适用于 Earth Engine 的商业用户。

查看项目级批量任务限制


对 Cloud 账号所需的权限
earthengine.config.get

设置项目级批量任务限制


对 Cloud 账号所需的权限
earthengine.config.update
注意:此权限还包括查看结算账号中配置的方案级限制。
结算账号
所需的权限
billing.subscriptions.list

应用管理

显示应用信息

所需权限
  • iam.serviceAccounts.get
  • iam.serviceAccounts.getIamPolicy,如果应用受限(不常见)
建议的角色 Viewer (roles/viewer) 或
Earth Engine Apps Publisher (roles/earthengine.appsPublisher)

发布/更新应用

需要权限
  • iam.serviceAccounts.get
  • iam.serviceAccounts.create
  • iam.serviceAccounts.enable
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy
  • iam.serviceAccounts.disable,如果应用从一个项目移至另一个项目(不常见)
建议的角色 Earth Engine Apps Publisher (roles/earthengine.appsPublisher) 或
Service Account Admin (roles/iam.serviceAccountAdmin)
备注
  • 此外,Earth Engine 应用服务账号会通过提供 OAuth 访问令牌向 Earth Engine 服务器标识自己。 因此,在应用创建过程中,系统会在服务账号上将某些身份添加为 Service Account Token Creator (roles/iam.serviceAccountTokenCreator)。
  • 对于公开 Earth Engine 应用,授予该角色的身份是 earth-engine-public-apps@appspot.gserviceaccount.com;对于受限应用,该身份是应用创建者配置的访问权限限制 Google 群组。

删除应用

需要权限 iam.serviceAccounts.disable
建议的角色 Earth Engine Apps Publisher (roles/earthengine.appsPublisher) 或
Service Account Admin (roles/iam.serviceAccountAdmin)