授予 Dataproc 服務帳戶角色

本頁說明如何將 Dataproc 服務帳戶的 服務帳戶使用者角色授予 Cloud Data Fusion 服務代理人,以便在 Dataproc 叢集中佈建及執行管道。

對於 Dataproc 使用的服務帳戶,您也需要授予 datafusion.instances.runtime 權限,才能存取 Cloud Data Fusion 執行階段資源。

無論您使用的是使用者自行管理的服務帳戶,還是叢集中虛擬機器的預設 Compute Engine 服務帳戶,都必須將服務帳戶使用者角色授予 Cloud Data Fusion。否則,Cloud Data Fusion 無法佈建 Dataproc 叢集,執行資料管道時會顯示以下錯誤:

PROVISION task failed in REQUESTING_CREATE state for program run [pipeline-name] due to Dataproc operation failure: INVALID_ARGUMENT: User not authorized to act as service account '[service-account-name]'

取得服務帳戶名稱

  1. 前往 Google Cloud 控制台的「Identity and Access Management」頁面。
    前往「身分與存取權管理」頁面
  2. 從頁面頂端的專案選取器中,選擇 Cloud Data Fusion 執行個體所屬的專案、資料夾或機構。
  3. 找出並複製 Cloud Data Fusion 服務帳戶名稱。請使用下列格式:service-[project-number]@gcp-sa-datafusion.iam.gserviceaccount.com

授予服務帳戶使用者權限

  1. 前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。
    前往「Service Accounts」(服務帳戶) 頁面
  2. 按一下「選取專案」,選擇要用於 Dataproc 叢集的服務帳戶所在專案,然後按一下「開啟」
  3. 按一下 Dataproc 服務帳戶的電子郵件地址。

  4. 按一下「權限」分頁標籤。這個頁面會顯示已授予服務帳戶角色的主體清單。

  5. 按一下「授予存取權」

  6. 在「新增主體」欄位,貼上先前複製的 Cloud Data Fusion 服務帳戶名稱。

  7. 選取「Service Account User」角色。

    服務帳戶使用者

  8. 按一下 [儲存]

將角色授予 Dataproc 服務帳戶

授予執行者角色權限

Cloud Data Fusion 執行者角色 (roles/datafusion.runner) 授予 Dataproc 使用的服務帳戶。這會授權 Dataproc 服務帳戶在您的專案中執行 Cloud Data Fusion 管道。詳情請參閱「要求權限,將服務帳戶連結至資源」。

授予 Cloud Storage 管理員權限

在 Cloud Data Fusion 6.2.0 以上版本中,請將 Cloud Storage 管理員角色 (roles/storage.admin) 授予 Dataproc 在專案中使用的服務帳戶。

後續步驟