控管資源存取權

您可以在專案層級,與其他 Earth Engine 使用者共用已啟用 Earth Engine 的專案資產或運算配額。您可以與其他使用者或使用者群組共用 Earth Engine 資產或運算資源。如要與一群使用者共用,請建立新的 Google 群組,並記下該群組的電子郵件地址 (可透過群組頁面上的「關於」連結取得)。本頁面說明如何為個人或群組提供資源存取權,以及不同活動所需的角色和權限

設定 Earth Engine 服務用量

如要在 Cloud 專案中使用 Earth Engine API,必須在專案中啟用 API,且使用者至少須具備「Earth Engine 資源檢視者」角色中的權限 (進一步瞭解預先定義的 Earth Engine IAM 角色)。此外,使用者必須擁有該專案的至少 serviceusage.services.use 權限。您可以透過專案擁有者編輯者角色,或透過特定的服務使用情形消費者角色授予這項權限。如果使用者在所選專案中沒有必要的 Earth Engine 權限和服務使用權限,系統就會擲回錯誤。

設定資產權限

設定資產層級權限

您有幾種方式可以更新資產層級的權限。

  • 在程式碼編輯器中使用資產管理工具。
  • 使用 Earth Engine 指令列。
  • 使用用戶端程式庫,例如 ee.data.setAssetAcl()
  • 或直接呼叫 REST API

設定專案層級的資產權限

在專案層級共用時,系統會一次設定所有已啟用 Earth Engine 的 Cloud 專案資產權限。

如要在專案層級共用資產,請在專案的 IAM 管理員頁面指派適當的身分與存取權管理 (IAM) 角色。您可以透過預先定義的 Earth Engine IAM 角色,共用 Earth Engine 資產和資源。如要進一步瞭解 IAM 角色,請參閱「瞭解角色」一文。

其他使用者嘗試存取您的資產時,系統會先檢查資產層級的權限。如果未在資產層級設定權限或檢查失敗 (即沒有存取權),系統會在專案層級檢查權限。

設定專案層級權限

如要設定專案層級的權限,請將專案 IAM 角色指派給使用者或使用者群組:

  1. 在 Google Cloud 控制台中開啟「IAM」頁面
    開啟「IAM」頁面
    或者,將指標懸停在 Code Editor 的「資產」分頁標籤上,然後點選 圖示。
  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,因此無法搭配使用,也無法存取服務範圍內的資源和用戶端。 搭配 geemap 程式庫使用 Earth Engine Python API
舊版資產不會受到 VPC Service Controls 保護。 使用 儲存在 Cloud 專案中的資產
VPC Service Controls 不支援 匯出至 Google 雲端硬碟
服務範圍內的資源和用戶端不支援 Earth Engine 應用程式 沒有可用的替代方案。

只有 Professional 和 Premium 價格方案,才能搭配使用 Earth Engine 和受保護的 VPC 服務範圍內資源。如果嘗試搭配使用 Earth Engine API 和與 Basic 價格方案相關聯的 VPC-SC 保護專案,系統會顯示錯誤。如要進一步瞭解 Earth Engine 定價,請參閱官方文件

如要進一步瞭解 VPC Service Controls 及其限制,請參閱「支援的產品和限制」。

角色和權限

以下各節說明執行活動和存取 Earth Engine 資源所需的權限和角色。請參閱 Google Cloud 說明文件,進一步瞭解 Cloud 專案的權限角色

預先定義的 Earth Engine IAM 角色

Earth Engine 提供預先定義的角色,可讓您在專案中對 Earth Engine 資源進行不同程度的控管。這些角色包括:

角色 名稱 說明
roles/earthengine.viewer Earth Engine 資源檢視者 提供查看及列出資產和工作的權限。
roles/earthengine.writer Earth Engine 資源寫入者 提供讀取、建立、修改及刪除資產的權限、匯入圖片和表格、讀取及更新工作、執行互動式運算,以及建立長時間執行的匯出工作。
roles/earthengine.admin Earth Engine 管理員 提供所有 Earth Engine 資源的權限,包括變更 Earth Engine 資產的存取權控管。
roles/earthengine.appsPublisher Earth Engine 應用程式發布者 授予權限,可建立服務帳戶以搭配 Earth Engine 應用程式使用。此外,也授予權限,可編輯及刪除 Cloud 專案中專案擁有的應用程式。

請注意,如果預先定義的 Earth Engine 角色不符合您的需求,您可以設定原始自訂角色。如要查看與每個角色相關聯的權限組合,請前往 IAM 角色頁面,篩選特定角色並點選該角色。

具備 Earth Engine API 的完整存取權

如要讓使用者透過 REST API 直接存取 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
建議角色
  • 服務使用情形消費者 (roles/serviceusage.serviceUsageConsumer) 且符合下列任一條件:
    • Earth Engine 資源檢視者 (roles/earthengine.viewer) 或
    • Earth Engine 資源寫入者 (roles/earthengine.writer) 或
    • Earth Engine 資源管理員 (roles/earthengine.admin)
  • 如果使用者透過筆記本環境存取 Earth Engine,並使用 Notebook Authenticator,則還需要 OAuth 設定編輯者 (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 資源檢視者 (roles/earthengine.viewer) 或
    瀏覽器 (roles/browser,建議用於進階機構案例)
  • 相關資料夾的「資料夾檢視者」 (roles/resourcemanager.folderViewer)

選取要在程式碼編輯器中使用的專案

必須授予權限
  • resourcemanager.projects.get
  • serviceusage.services.get
如果先前未設定專案

首次透過程式碼編輯器選取專案時,系統會初始化專案,以供 Earth Engine 使用。如果先前未執行這項操作,您需要這些角色才能順利完成設定。

  • resourcemanager.projects.update
  • serviceusage.services.enable
建議角色
  • 檢視者 (roles/viewer) 或
  • Earth Engine 資源檢視者 (roles/earthengine.viewer) 和
    服務使用情形消費者 (roles/serviceusage.serviceUsageConsumer)
其他角色 (如果專案先前未設定)
  • 編輯者 (roles/editor) 或
  • 專案移轉者 (roles/resourcemanager.projectMover)「且」
    專案 IAM 管理員 (roles/resourcemanager.projectIamAdmin)「且」
    服務使用情形管理員 (roles/serviceusage.serviceUsageAdmin)

透過程式碼編輯器建立專案

必須授予權限
  • resourcemanager.projects.get
  • resourcemanager.projects.create
  • resourcemanager.projects.update
  • serviceusage.services.get
  • serviceusage.services.enable
建議角色
  • 編輯者 (roles/editor) 或
  • 專案移轉者 (roles/resourcemanager.projectMover)「且」
    專案建立者 (roles/resourcemanager.projectCreator)「且」
    服務使用情形管理員 (roles/serviceusage.serviceUsageAdmin)
附註 貴機構可能不會授予您「編輯者」角色,因此可能需要更精細的角色。需要專案移動者角色,才能涵蓋 projects.update 權限。

選取非商業用途級別

下列權限和建議角色與非商業層級設定相關。

選取級別
必須授予權限
  • earthengine.config.update
建議角色
  • Earth Engine 資源寫入者 (roles/earthengine.writer)
新增帳單帳戶

專案必須具備有效的帳單帳戶,才能註冊「貢獻者」級別。

必須授予權限
  • billing.accounts.get
建議角色
  • 帳單帳戶檢視者 (roles/billing.viewer)

商業專案註冊

下列權限與註冊專案以供付費使用相關。

必須授予權限
帳單帳戶
  • billing.subscriptions.list
此外:
  • billing.accounts.get (建立新的 Limited 方案)
  • billing.subscriptions.create (建立新的 Basic 或 Professional 方案)
Cloud 專案
  • earthengine.computations.create
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
建議角色
帳單帳戶
  • 帳單帳戶檢視者 (roles/billing.viewer):建立新的 Limited 方案
  • 帳單帳戶管理員 (roles/billing.admin),可建立新的 Basic 或 Professional 方案
Cloud 專案
  • Earth Engine 資源寫入者 (roles/earthengine.writer)
  • 服務使用情形管理員 (roles/serviceusage.serviceUsageAdmin)

管理商業 Earth Engine 方案

下列權限與管理 Earth Engine 價格方案有關。

帳單帳戶所需權限
  • billing.subscriptions.create (變更 Earth Engine 方案)
  • billing.subscriptions.list (查看目前的 Earth Engine 方案)
帳單帳戶的建議角色
  • 帳單帳戶檢視者 (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,如果應用程式受到限制 (較不常見)
建議角色 檢視者 (roles/viewer) 或
Earth Engine 應用程式發布者 (roles/earthengine.appsPublisher)

發布/更新應用程式

必須授予權限
  • iam.serviceAccounts.get
  • iam.serviceAccounts.create
  • iam.serviceAccounts.enable
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy
  • iam.serviceAccounts.disable,如果應用程式從一個專案移至另一個專案 (不常見)
建議角色 Earth Engine 應用程式發布者 (roles/earthengine.appsPublisher) 或
服務帳戶管理員 (roles/iam.serviceAccountAdmin)
附註
  • 此外,Earth Engine 應用程式服務帳戶會出示 OAuth 存取權杖,向 Earth Engine 伺服器表明身分。因此,在建立應用程式時,系統會將特定身分新增為服務帳戶的「服務帳戶權杖建立者」(roles/iam.serviceAccountTokenCreator)。
  • 如果是公開的 Earth Engine 應用程式,獲派該角色的身分是 earth-engine-public-apps@appspot.gserviceaccount.com,如果是受限應用程式,身分則是應用程式建立者設定的存取限制 Google 群組。

刪除應用程式

必須授予權限 iam.serviceAccounts.disable
建議角色 Earth Engine 應用程式發布者 (roles/earthengine.appsPublisher) 或
服務帳戶管理員 (roles/iam.serviceAccountAdmin)