控制对资源的访问权限

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

设置 Earth Engine 服务用量

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

设置资产权限

设置资产级权限

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

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

设置项目级资产权限

在项目级层进行共享可一次性设置已启用 Earth Engine 的云项目中所有资源的权限。

您可以在项目的 IAM 管理页面上分配适当的 Identity and Access Management (IAM) 角色,从而在项目级层共享资产。预定义的 Earth Engine IAM 角色用于共享 Earth Engine 资产和资源。如需大致了解 IAM 角色,请参阅了解角色。

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

设置项目级权限

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

  1. 在 Google Cloud 控制台中打开 IAM 页面
    打开 IAM 页面
    或者,在代码编辑器的资产标签页上,将指针悬停在项目名称上,然后点击 图标。
  2. 点击选择项目,然后选择您的项目(如果您是从代码编辑器打开 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 会带来一些限制,我们提供了示例解决方法:

限制 备选方案示例
代码编辑器不受支持,VPC Service Controls 不允许在服务边界内使用该编辑器访问资源或客户端。 将 Earth Engine Python API 与 geemap 库搭配使用。
VPC Service Controls 不会保护 旧版资产。 使用 存储在云项目中的素材资源。
VPC Service Controls 不支持将内容 导出到 Google 云端硬盘。
服务边界内的资源和客户端不支持 Earth Engine 应用。 没有可用的解决方法。

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

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

角色与权限

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

预定义的 Earth Engine IAM 角色

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

角色 职位 说明
roles/earthengine.viewer Earth Engine Resource Viewer 提供查看和列出资产和任务的权限。
roles/earthengine.writer Earth Engine Resource Writer 提供以下权限:读取、创建、修改和删除资产;导入图片和表格;读取和更新任务;执行交互式计算;创建长时间运行的导出任务。
roles/earthengine.admin Earth Engine Admin 提供对所有 Earth Engine 资源的权限,包括更改 Earth Engine 资源的访问权限控制。
roles/earthengine.appsPublisher Earth Engine Apps Publisher 提供创建服务账号以用于 Earth Engine 应用的权限。还授予修改和删除云项目下项目拥有的应用的权限。

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

启用 Earth Engine API

如需在云项目中启用 Earth Engine API,用户需要拥有 Service Usage Admin (roles/serviceusage.serviceUsageAdmin) 角色,或包含 serviceusage.services.enable 权限的其他角色(例如 Project Owner 或 Editor)。

需要权限
  • serviceusage.services.enable
  • serviceusage.services.get
建议的角色
  • Service Usage Admin (roles/serviceusage.serviceUsageAdmin) 或
  • Owner (roles/owner) 或
  • Editor (roles/editor)

拥有对 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 权限,用户将无法使用项目资源。

项目管理

列出并显示可用项目

使用代码编辑器浏览可用项目时,会出现这种情况。

需要权限
  • resourcemanager.projects.get
  • resourcemanager.folders.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get(不常见)
建议的角色
  • 相关项目的查看者 (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) 和
    Project IAM Admin (roles/resourcemanager.projectIamAdmin) 和
    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) 和
    Project Creator (roles/resourcemanager.projectCreator) 和
    Service Usage Admin (roles/serviceusage.serviceUsageAdmin)
备注 您的组织可能不会向您授予 Editor 角色,因此可能需要更精细的角色。需要 Project Mover 角色才能涵盖 projects.update 权限。

非商业层级选择

以下权限和建议的角色与非商业层级配置相关。

层级选择
需要权限
  • earthengine.config.update
建议的角色
  • Earth Engine Resource Writer (roles/earthengine.writer)
将结算账号与项目相关联

Contributor 层级需要一个与项目关联的有效结算账号。如需详细了解结算权限和角色,请参阅 Cloud Billing 访问权限页面。

需要权限
结算账号
  • billing.resourceAssociations.create
Cloud 项目
  • resourcemanager.projects.createBillingAssignment
建议的角色
结算账号
  • Billing Account User (roles/billing.user)
Cloud 项目
  • Project Billing Manager (roles/billing.projectManager)

商业项目注册

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

需要权限
结算账号
  • billing.accounts.get
  • billing.subscriptions.list
此外:
  • billing.subscriptions.create(用于创建新的基本方案或专业方案)
Cloud 项目
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
建议的角色
结算账号
  • Billing Account Viewer (roles/billing.viewer),用于创建新的限量方案
  • 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.accounts.get
  • billing.subscriptions.list
此外:
  • billing.subscriptions.create(用于从 Limited 方案升级到 Basic 或 Professional 方案)
  • billing.subscriptions.update(用于在基本版和专业版方案之间切换,或将基本版或专业版方案降级为有限方案)
结算账号的建议角色
  • Billing Account Viewer (roles/billing.viewer),用于查看当前的 Earth Engine 方案
  • Billing Account Administrator (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)