存取控管

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

設定 Earth Engine 服務用量

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

設定資產權限

設定資產層級權限

您可以透過多種方式更新素材資源層級的權限。

  • 在 Code Editor 中使用 Assets Manager。
  • 使用 Earth Engine 指令列。
  • 使用用戶端程式庫,例如 ee.data.setAssetAcl()
  • 或者,您也可以直接呼叫 REST API

設定專案層級素材資源權限

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

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

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

設定專案層級權限

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

  1. 在 Google Cloud 控制台中開啟「IAM」頁面
    開啟「IAM」頁面
    或者,將游標懸停在程式碼編輯器的「Assets」分頁中專案名稱上,然後點選 圖示。
  2. 按一下「選取專案」,然後選擇專案 (如果您是透過程式碼編輯器開啟 IAM 頁面,應該已經在該頁面中)。
  3. 按一下頂端的「新增」,然後將個人或群組電子郵件新增為新成員,或是按一下專案中現有成員旁的 圖示。
  4. 在「角色」下拉式選單中,搜尋要授予的 Earth Engine 資源角色。詳情請參閱「預先定義的 Earth Engine 身分與存取權管理角色」。
  5. 按一下「儲存」按鈕。

VPC Service Controls

Earth Engine 支援 VPC Service Controls,這是 Google Cloud 的安全性功能,可協助使用者保護資源,並降低資料竊取風險。將資源新增至 VPC 服務範圍,可進一步控管資料的讀取和寫入作業。

進一步瞭解 VPC-SC 功能和設定

限制

為資源啟用 VPC Service Controls 時,會有一些限制,我們提供一些因應措施範例:

限制 替代方案範例
系統不支援Code Editor,且 VPC Service Controls 不允許在服務範圍內的資源和用戶端使用 Code Editor。 請搭配使用 Earth Engine Python API geemap 程式庫
Legacy 資產不會受到 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 服務的完整存取權,使用者必須具備執行下列作業的權限:

  • 執行 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
建議的角色
  • 服務使用情形消費者 (roles/serviceusage.serviceUsageConsumer) 和下列任一項:
    • Earth Engine 資源檢視器 (roles/earthengine.viewer) 或
    • Earth Engine 資源寫入者 (roles/earthengine.writer) 或
    • Earth Engine 資源管理員 (roles/earthengine.admin)
  • 如果使用者透過 Notebook 環境存取 Earth Engine 並使用 Notebook 驗證工具,則還需要使用 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 AND
  • serviceusage.services.enable
建議的角色
  • 觀眾 (roles/viewer) 或
  • Earth Engine 資源檢視器 (roles/earthengine.viewer) 和
    服務用量消費者 (roles/serviceusage.serviceUsageConsumer)
其他角色 (如果先前未設定專案)
  • 編輯者 (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
建議的角色
  • 編輯者 (roles/editor) 或
  • Project Mover (roles/resourcemanager.projectMover) AND
    Project Creator (roles/resourcemanager.projectCreator) AND
    Service Usage Admin (roles/serviceusage.serviceUsageAdmin)
附註 貴機構可能不會授予您「編輯者」角色,因此可能需要更精細的角色。您需要專案移動者才能涵蓋 projects.update 權限。

商業專案註冊

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

必須授予權限
帳單帳戶 如果帳單帳戶已訂閱 Earth Engine 方案,則不需要帳單帳戶權限。否則:
  • billing.accounts.get (建立新的基本方案)
  • billing.subscriptions.create (建立新的 Basic 或 Professional 方案)
Cloud 專案
  • earthengine.computations.create
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
建議的角色
帳單帳戶 如果帳單帳戶已訂閱 Earth Engine 方案,則不需要帳單帳戶權限。否則:
  • 帳單帳戶使用者 (roles/billing.user),用於建立新的限制型方案
  • 帳單帳戶管理員 (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 App 服務帳戶會透過提供 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)