總覽
Identity and Access Management (IAM) 可讓您控管使用者和群組的專案資源存取權。本文著重說明與 Dataproc 相關的 IAM「權限」,以及授予這些權限的 IAM「角色」。
Dataproc 權限
Dataproc 權限可讓使用者 (包括服務帳戶) 對 Dataproc 叢集、工作、作業和工作流程範本執行動作。舉例來說,dataproc.clusters.create
權限可讓使用者在專案中建立 Dataproc 叢集。一般來說,您不會直接授予權限,而是授予包含一或多個權限的「角色」。
下表列出呼叫 Dataproc API (方法) 必須具備的權限。這些表格是按照與各個 Dataproc 資源 (叢集、工作、作業和工作流程範本) 有關的 API 進行編排。
權限範圍:下表中列出的 Dataproc 權限範圍是指其包含的 Google Cloud專案 (cloud-platform
範圍)。請參閱「服務帳戶權限」。
範例:
dataproc.clusters.create
允許在包含專案中建立 Dataproc 叢集。dataproc.jobs.create
允許在包含專案中將 Dataproc 工作提交至 Dataproc 叢集。dataproc.clusters.list
允許在包含專案中列出 Dataproc 叢集的詳細資料。
叢集方法所需的權限
方法 | 所需權限 |
---|---|
projects.regions.clusters.create 1、2 | dataproc.clusters.create |
projects.regions.clusters.get | dataproc.clusters.get |
projects.regions.clusters.list | dataproc.clusters.list |
projects.regions.clusters.patch 1、2、3 | dataproc.clusters.update |
projects.regions.clusters.delete 1 | dataproc.clusters.delete |
projects.regions.clusters.start | dataproc.clusters.start |
projects.regions.clusters.stop | dataproc.clusters.stop |
projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
注意:
- 要從 Google Cloud CLI 取得狀態更新,還必須具有
dataproc.operations.get
權限。 - 要從 Google Cloud CLI 取得作業結果,還必須具有
dataproc.clusters.get
權限。 - 如要在叢集上啟用自動調度資源政策,也需要
dataproc.autoscalingPolicies.use
權限。
Jobs 方法所需權限
方法 | 所需權限 |
---|---|
projects.regions.jobs.submit 1、2 | dataproc.jobs.create dataproc.clusters.use |
projects.regions.jobs.get | dataproc.jobs.get |
projects.regions.jobs.list | dataproc.jobs.list |
projects.regions.jobs.cancel 1 | dataproc.jobs.cancel |
projects.regions.jobs.patch 1 | dataproc.jobs.update |
projects.regions.jobs.delete 1 | dataproc.jobs.delete |
projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
注意:
Google Cloud CLI 也需要
dataproc.jobs.get
、jobs submit
、jobs wait
、jobs update
、jobs delete
和jobs kill
指令的權限。如要提交工作,gcloud CLI 也必須具有
dataproc.clusters.get
權限。如要瞭解如何設定必要權限,讓使用者透過 Dataproc 精細的身分與存取權管理在叢集上執行gcloud dataproc jobs submit
,請參閱「使用精細的身分與存取權管理提交工作」。
作業方法所需的權限
方法 | 所需權限 |
---|---|
projects.regions.operations.get | dataproc.operations.get |
projects.regions.operations.list | dataproc.operations.list |
projects.regions.operations.cancel | dataproc.operations.cancel |
projects.regions.operations.delete | dataproc.operations.delete |
projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
工作流程範本方法所需的權限
方法 | 所需權限 |
---|---|
projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
注意:
工作流程範本權限與叢集和工作權限是彼此獨立的。 沒有
create cluster
或submit job
權限的使用者也可以建立及執行個體化工作流程範本。要對工作流程完成狀態進行輪詢,Google Cloud CLI 還必須具有
dataproc.operations.get
權限。要取消執行中的工作流程,還必須具有
dataproc.operations.cancel
權限。
自動調度資源政策方法所需的權限
方法 | 所需權限 |
---|---|
projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
注意:
- 如要透過
clusters.patch
方法要求,在叢集上啟用自動調度資源政策,您必須具備dataproc.autoscalingPolicies.use
權限。
節點群組方法所需的權限
方法 | 所需權限 |
---|---|
projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Dataproc 角色
Dataproc IAM 角色是由一或多個權限組合而成。您可以為使用者或群組授予角色,讓他們能夠對專案中的 Dataproc 資源執行動作。舉例來說,Dataproc 檢視者角色包含 get
和 list
權限,可讓使用者取得及列出專案中的 Dataproc 叢集、工作和作業。
下表列出與各角色有關的 Dataproc IAM 角色和權限。
Role | Permissions |
---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
注意:
- 使用 Google Cloud 主控台或 gcloud CLI Google Cloud CLI 建立及檢視 Dataproc 叢集時,需要或建議使用
compute
權限。 - 如要允許使用者上傳檔案,請授予
Storage Object Creator
角色。 如要允許使用者查看工作輸出內容,請授予Storage Object Viewer
角色。 - 使用者必須具有
monitoring.timeSeries.list
權限,才能在 Google Cloud 主控台→「Dataproc」→「叢集詳細資料」的「總覽」分頁中查看圖表。 - 使用者必須具有
compute.instances.list
權限,才能檢視Google Cloud 主控台→「Dataproc」→「叢集詳細資料」的「VM 執行個體」分頁上的執行個體狀態和主要執行個體 SSH 選單。如需 Compute Engine 角色的相關資訊,請參閱「Compute Engine→可用的 IAM 角色」。 - 如要透過使用者指定的服務帳戶建立叢集,指定的服務帳戶必須具有
Dataproc Worker
角色授予的所有權限,包括存取 Dataproc 暫存和臨時值區。視設定的功能而定,可能還必須具有其他角色。詳情請參閱「使用自訂 VM 服務帳戶建立叢集」一文。
專案角色
您還可以使用 IAM 專案角色設定專案層級的權限。下表列出與 IAM 專案角色相關的權限:
專案角色 | 權限 |
---|---|
專案檢視者 | 保留狀態的唯讀動作的所有專案權限 (取得、表列) |
專案編輯者 | 所有專案檢視者權限,加上修改狀態動作的所有專案權限 (建立、刪除、更新、使用、取消、停止、啟動) |
專案擁有者 | 所有專案編輯者權限,加上管理專案存取權 (取得/設定 IAM 政策) 及設定專案帳單的權限 |
IAM 角色和 Dataproc 作業摘要
下表列出與專案和 Dataproc 角色相關的 Dataproc 作業。
作業 | 專案編輯者 | 專案檢視者 | Dataproc 管理員 | Dataproc 編輯者 | Dataproc 檢視者 |
---|---|---|---|---|---|
取得/設定 Dataproc IAM 權限 | 否 | 否 | 是 | 否 | 否 |
建立叢集 | 可以 | 否 | 是 | 是 | 不可以 |
列出叢集 | 可以 | 是 | 是 | 是 | 可以 |
取得叢集詳細資料 | 可以 | 可以 | 可以 1、2 | 可以 1、2 | 可以 1、2 |
更新叢集 | 可以 | 否 | 是 | 是 | 不可以 |
刪除叢集 | 可以 | 否 | 是 | 是 | 否 |
啟動/停止叢集 | 是 | 否 | 是 | 是 | 不可以 |
提交工作 | 可以 | 不可以 | 是 3 | 是 3 | 不可以 |
列出工作 | 可以 | 是 | 是 | 是 | 可以 |
取得工作詳細資料 | 可以 | 可以 | 是 4 | 是 4 | 是 4 |
取消工作 | 可以 | 否 | 是 | 是 | 不可以 |
刪除工作 | 可以 | 否 | 是 | 是 | 不可以 |
列出作業 | 可以 | 是 | 是 | 是 | 可以 |
取得作業詳細資料 | 可以 | 是 | 是 | 是 | 可以 |
刪除作業 | 可以 | 否 | 是 | 是 | 不可以 |
注意:
- 除非使用者另外具有包含
monitoring.timeSeries.list
權限的角色,否則不提供效能圖。 - 除非使用者另外具有包含
compute.instances.list
權限的角色,否則叢集中的 VM 清單將不包含主要執行個體的狀態資訊或 SSH 連結。 - 如要上傳檔案,使用者必須具備
Storage Object Creator
角色,或擁有 Dataproc 暫存值區的寫入存取權。 - 除非使用者另外具有「Storage 物件檢視者」角色,或已獲得專案暫存值區的讀取存取權,否則無法提供工作輸出。
服務帳戶
當您呼叫 Dataproc API 在專案中執行動作時 (例如建立 VM 執行個體),Dataproc 會使用具有必要權限的服務帳戶來代您執行這些動作。詳情請參閱 Dataproc 服務帳戶。
IAM 管理
您可以使用 Google Cloud 控制台、IAM API 或 Google Cloud CLI 取得及設定 IAM 政策。
- 如要使用 Google Cloud 控制台,請參閱「使用 Google Cloud 控制台控管存取權」一文。
- 如要使用 API,請參閱透過 API 控管存取權的說明。
- 如要使用 Google Cloud CLI,請參閱使用 Google Cloud CLI 控管存取權。