您可以在项目级层与其他 Earth Engine 用户共享已启用 Earth Engine 的项目的资产或计算配额。您可以与其他用户或用户群组共享 Earth Engine 资产或计算资源。如果您想与一组用户共享,请创建新的 Google 群组,并记下其电子邮件地址(可从群组页面上的“关于”链接中获取)。本页介绍了如何为个人或群组提供资源访问权限,以及不同活动所需的角色和权限。
设置 Earth Engine 服务使用情况
如需在 Cloud 项目中使用 Earth Engine API,必须在该项目中启用该 API,并且用户必须至少拥有 Earth Engine Resource Viewer 角色中的权限(详细了解预定义的 Earth Engine IAM 角色)。此外,用户必须至少拥有项目的 serviceusage.services.use 权限。可以通过项目所有者或编辑者角色,或者通过特定的服务使用方角色来提供该权限。如果用户对所选项目没有所需的 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 角色:
- 在 Google Cloud 控制台中打开 IAM 页面
打开 IAM 页面
或者,将指针悬停在代码编辑器的资源标签页中的项目名称上,然后点击 图标。 - 点击选择项目,然后选择您的项目(如果您是从代码编辑器打开 IAM 页面的,则应该已经位于该页面中)。
- 点击顶部的添加,然后添加个人或群组电子邮件地址作为新成员,或者点击项目中的现有成员旁边的 图标。
- 在角色下拉菜单中,搜索要授予的 Earth Engine 资源角色。如需了解详情,请参阅预定义的 Earth Engine IAM 角色。
- 点击保存按钮。
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 资源所需的权限和角色。如需详细了解 Cloud 项目权限和角色,请参阅 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 管理员 | 提供对所有 Earth Engine 资源的权限,包括更改 Earth Engine 资产的访问权限控制。 |
roles/earthengine.appsPublisher |
Earth Engine Apps Publisher | 提供创建服务账号以用于 Earth Engine 应用的权限。还授予在 Cloud 项目下修改和删除项目自有应用的权限。 |
请注意,如果预定义的 Earth Engine 角色无法满足您的需求,您可以设置原初或自定义角色。您可以在 IAM 角色页面中查看与每个角色相关联的权限组合,方法是过滤到特定角色,然后点击该角色。
拥有对 Earth Engine API 的完全访问权限
为了让用户能够通过 REST API 直接访问 Earth Engine 服务,或者通过代码编辑器或客户端库访问 Earth Engine 服务,用户需要获得执行以下操作的权限:
- 执行 Earth Engine 表达式
- 运行批量计算(导出)
- 获取互动式结果(在线地图、缩略图、图表等)
- 创建/删除 Earth Engine 资产
- 使用客户端库通过 OAuth 身份验证连接到 Earth Engine
| 需要权限 |
|
| 建议的角色 |
|
| 备注 |
Google Cloud 要求在调用 API 时使用项目作为有效项目,因此需要 Service Usage Consumer 角色,否则在项目 X 上没有此权限的情况下,ee.Initialize(project=X) |
仅限素材资源共享
向用户授予具有最低权限的预定义 Earth Engine IAM 角色,以便用户执行所需活动。请注意,如果没有必要的 serviceusage 权限,用户将无法使用项目资源。
项目管理
列出并显示可用项目
当使用代码编辑器浏览可用项目时,会发生这种情况。
| 需要权限 |
|
| 建议的角色 |
|
选择要在代码编辑器中使用的项目
| 需要权限 |
如果项目之前未设置过首次通过代码编辑器选择项目时,系统会初始化该项目以供 Earth Engine 使用。如果之前未执行此操作,您将需要这些角色才能成功完成设置。
|
| 建议的角色 |
其他角色(如果项目之前未设置)
|
通过代码编辑器创建项目
| 需要权限 |
|
| 建议的角色 |
|
| 备注 |
您的组织可能不会授予您编辑者角色,因此可能需要更精细的角色。需要 Project Mover 来涵盖 projects.update 权限。
|
非商业层级选择
以下权限和建议的角色与非商业层级配置相关。
层级选择
| 需要权限 |
|
| 建议的角色 |
|
添加结算账号
Contributor 层级要求项目具有有效的结算账号。
| 需要权限 |
|
| 建议的角色 |
|
商业项目注册
以下权限与注册项目以供付费使用有关。
| 需要权限 | |
|---|---|
| 结算账号 |
|
| Cloud 项目 |
|
| 建议的角色 | |
| 结算账号 |
|
| Cloud 项目 |
|
商业 Earth Engine 方案管理
以下权限与管理 Earth Engine 价格方案有关。
|
结算账号所需的权限 |
|
|
结算账号的建议角色 |
|
批量任务管理
以下权限与针对批处理任务并发性的项目级限制的配置有关。 此功能仅适用于 Earth Engine 的商业用户。
查看项目级批量任务限制
|
Cloud 账号所需的权限 |
earthengine.config.get
|
设置项目级批量任务限制
|
Cloud 账号所需的权限 |
earthengine.config.update注意:此权限还包括查看结算账号中配置的方案级限额。 |
|
结算账号所需的权限 |
billing.subscriptions.list
|
应用管理
显示应用信息
| 所需权限 |
|
| 建议的角色 |
查看器 (roles/viewer) 或Earth Engine Apps Publisher ( roles/earthengine.appsPublisher)
|
发布/更新应用
| 需要权限 |
|
| 建议的角色 |
Earth Engine Apps Publisher (roles/earthengine.appsPublisher) 或Service Account Admin ( roles/iam.serviceAccountAdmin)
|
| 备注 |
|
删除应用
| 需要权限 | iam.serviceAccounts.disable |
| 建议的角色 |
Earth Engine Apps Publisher (roles/earthengine.appsPublisher) 或Service Account Admin ( roles/iam.serviceAccountAdmin)
|