您可以在项目级别与其他 Earth Engine 用户共享启用了 Earth Engine 的项目的资产或计算配额。您可以与其他用户或用户群组共享 Earth Engine 资产或计算资源。如果您想与一组用户共享,请创建一个新的 Google 群组,并记下该群组的电子邮件地址(可通过群组页面上的“关于”链接获取)。本页介绍了如何向个人或群组授予对资源的访问权限,以及执行不同活动所需的角色和权限。
设置 Earth Engine 服务用量
如需在 Cloud 项目中使用 Earth Engine API,必须在项目中启用该 API,并且用户必须至少拥有 Earth Engine Resource Viewer 角色中的权限(详细了解预定义的 Earth Engine IAM 角色)。此外,用户必须对项目至少拥有 serviceusage.services.use
权限。您可以通过项目 Owner 或 Editor 角色,或通过特定的 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 角色:
- 在 Google Cloud 控制台中打开 IAM 页面
打开 IAM 页面
或者,将光标悬停在 Code Editor 的 Assets 标签页上方的项目名称上,然后点击 图标。 - 点击选择项目,然后选择您的项目(如果您是从 Code Editor 打开的 IAM 页面,则应该已经在该页面中)。
- 点击顶部的添加,然后将个人或群组电子邮件地址添加为新成员,或点击项目中现有成员旁边的 图标。
- 在角色下拉菜单中,搜索要授予的 Earth Engine 资源角色。如需了解详情,请参阅 Earth Engine 预定义 IAM 角色。
- 点击保存按钮。
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
需要权限 |
|
建议的角色 |
|
备注 |
Google Cloud 要求 Service Usage Consumer 角色在调用 API 时将该项目用作活动项目,如果没有对项目 X 的此权限,ee.Initialize(project=X) |
仅分享资源
向用户授予一个预定义的 Earth Engine IAM 角色,并授予执行所需活动所需的最小权限。请注意,如果用户没有必要的 serviceusage
权限,将无法使用项目资源。
项目管理
列出和显示可用项目
使用 Code Editor 浏览可用项目时,就会发生这种情况。
需要权限 |
|
建议的角色 |
|
选择要在代码编辑器中使用的项目
需要权限 |
如果之前未设置项目首次通过代码编辑器选择项目时,系统会初始化该项目以便与 Earth Engine 搭配使用。如果您之前未执行此操作,则需要拥有这些角色才能成功完成设置。
|
建议的角色 |
其他角色(如果之前未设置项目)
|
通过代码编辑器创建项目
需要权限 |
|
建议的角色 |
|
备注 |
贵组织可能不会向您授予编辑者角色,因此您可能需要更精细的角色。需要有 Project Mover 权限才能覆盖 projects.update 权限。
|
商业项目注册
以下权限与注册项目以供付费使用有关。
需要权限 | |
---|---|
结算账号 | 如果结算账号已有 Earth Engine 方案,则无需拥有结算账号权限。如果不是这样,那么:
|
Cloud 项目 |
|
建议的角色 | |
结算账号 | 如果结算账号已有 Earth Engine 方案,则无需拥有结算账号权限。如果不是这样,那么:
|
Cloud 项目 |
|
商业 Earth Engine 方案管理
以下权限与管理 Earth Engine 价格方案有关。
结算账号 所需的权限 |
|
结算账号的建议角色 |
|
批量任务管理
以下权限与配置批处理任务并发的每个项目限制有关。此功能仅适用于 Earth Engine 的商业用户。
查看项目级批量任务限制
对 Cloud 账号所需的权限 |
earthengine.config.get
|
设置项目级批量任务限制
对 Cloud 账号所需的权限 |
earthengine.config.update 注意:此权限还包括查看结算账号中配置的方案级限制。 |
结算账号 所需的权限 |
billing.subscriptions.list
|
应用管理
显示应用信息
所需权限 |
|
建议的角色 |
Viewer (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 )
|