Dataproc 主體

當您使用 Dataproc 服務建立叢集並且在叢集上執行工作時,服務就會在專案中設定必要的 Dataproc 角色和權限,以存取和使用完成工作所需的 Google Cloud 資源。但是,如果您執行跨專案工作 (例如需要存取另一個專案的資料),則需要設定必要的角色和權限以存取跨專案資源。

為了協助您成功完成跨專案工作,本文件列出使用 Dataproc 服務的不同主體,以及這些主體存取和使用 Google Cloud 資源所需的角色和相關權限。

有三種主體 (身分) 會存取及使用 Dataproc:

  1. 使用者身分
  2. 控制層身分
  3. 資料層身分

    dataproc-service-accounts1

Dataproc API 使用者 (使用者身分)

範例:username@example.com

這是呼叫 Dataproc 服務的使用者,可建立叢集、提交工作,以及向服務發出其他要求。使用者通常為個人,但如果是透過 API 用戶端或是從 Compute Engine、Cloud Run 函式或 Cloud Composer 等其他Google Cloud 服務叫用 Dataproc,則使用者亦可能為服務帳戶

相關角色

附註

  • 透過 Dataproc API 提交的工作會在 Linux 上以 root 形式執行。
  • 除非在建立叢集時設定 --metadata=block-project-ssh-keys=true 明確封鎖,否則 Dataproc 叢集會繼承專案範圍的 Compute Engine SSH 中繼資料 (請參閱「叢集中繼資料」)。

  • 系統會為每個專案層級的 SSH 使用者建立 HDFS 使用者目錄。這些 HDFS 目錄是在部署叢集時建立,而現有叢集上的新 (部署後) SSH 使用者不會獲得 HDFS 目錄。

Dataproc 服務代理人 (控制層身分)

範例:service-project-number@dataproc-accounts.iam.gserviceaccount.com

Dataproc 服務代理人服務帳戶可用於對 Dataproc 叢集所在專案中的資源執行多種系統作業,包括:

  • 建立 Compute Engine 資源,包括 VM 執行個體、執行個體群組和執行個體範本
  • getlist 作業,以確認映像檔、防火牆、Dataproc 初始化動作和 Cloud Storage 值區等資源的設定
  • 自動建立 Dataproc 暫存和臨時值區 (如果使用者未指定暫存或臨時值區)
  • 將叢集設定中繼資料寫入暫存值區
  • 存取主專案中的虛擬私有雲網路

相關角色

Dataproc VM 服務帳戶 (資料層身分)

範例:project-number-compute@developer.gserviceaccount.com

您的應用程式程式碼會在 Dataproc VM 上以 VM 服務帳戶身分執行。已授予此服務帳戶上的使用者工作角色 (以及相關聯的權限)。

VM 服務帳戶會執行下列動作:

相關角色

後續步驟