Identity and Access Management (IAM) 可讓您控管專案資源的存取權。本文著重說明與 Apache Spark 無伺服器相關的 IAM 權限,以及授予這些權限的 IAM 角色。
Serverless for Apache Spark 的 Dataproc 權限
使用者和服務帳戶可透過 Dataproc 權限,對 Apache Spark 資源執行無伺服器動作。舉例來說,dataproc.batches.create
權限可讓您在專案中建立批次工作負載。
您無法直接授予使用者權限,而是將隨附一或多個權限的 IAM 角色指派給他們。您可以授予包含權限清單的預先定義角色,也可以建立並授予包含一或多個權限的自訂角色。
下表列出呼叫 Dataproc API (方法) 必須具備的基本權限,這些 API 會建立或存取 Apache Spark 無伺服器資源。這些表格是根據與每個 Apache Spark 無伺服器資源相關聯的 API 整理而成,包括 batches
、sessions
、sessionTemplates
和 operations
。
範例:
dataproc.batches.create
允許在包含專案中建立批次。dataproc.sessions.create
允許在包含專案中建立互動式工作階段。
批次權限
方法 | 所需權限 |
---|---|
projects.locations.batches.create | dataproc.batches.create 1 |
projects.locations.batches.delete | dataproc.batches.delete |
projects.locations.batches.get | dataproc.batches.get |
projects.locations.batches.list | dataproc.batches.list |
1 dataproc.batches.create
也需要 dataproc.batches.get
和 dataproc.operations.get
權限,才能從 gcloud
指令列工具取得狀態更新。
工作階段權限
方法 | 所需權限 |
---|---|
projects.locations.sessions.create | dataproc.sessions.create 1 |
projects.locations.sessions.delete | dataproc.sessions.delete |
projects.locations.sessions.get | dataproc.sessions.get |
projects.locations.sessions.list | dataproc.sessions.list |
projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 dataproc.sessions.create
也需要 dataproc.sessions.get
和 dataproc.operations.get
權限,才能從 gcloud
指令列工具取得狀態更新。
工作階段範本權限
方法 | 所需權限 |
---|---|
projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 dataproc.sessionTemplates.create
也需要 dataproc.sessionTemplates.get
和 dataproc.operations.get
權限,才能從 gcloud
指令列工具取得狀態更新。
作業權限
方法 | 所需權限 |
---|---|
projects.regions.operations.get | dataproc.operations.get |
projects.regions.operations.list | dataproc.operations.list |
projects.regions.operations.cancel 1 | dataproc.operations.cancel |
projects.regions.operations.delete | dataproc.operations.delete |
projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 如要取消批次作業,dataproc.operations.cancel
也必須具備 dataproc.batches.cancel
權限。
Serverless for Apache Spark 3.0 以上版本的執行階段權限
下列權限適用於 Serverless for Apache Spark 3.0
和後續版本的執行階段。
工作負載權限
方法 | 所需權限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
NodePools 權限
方法 | 所需權限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
節點權限
方法 | 所需權限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
作業權限
方法 | 所需權限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Dataproc 和 Dataproc Serverless 角色
Dataproc IAM 角色可包含與 Dataproc 和 Serverless for Apache Spark 資源相關聯的權限。Dataproc Serverless IAM 角色包含與 Serverless for Apache Spark 資源相關聯的權限。
舉例來說,Dataproc 檢視者角色包含 dataproc.batches
和 dataproc.sessions
的取得和列出權限,可讓使用者或服務帳戶取得及列出專案中的批次工作負載和工作階段。
使用者權限和角色規定
使用者必須具備服務帳戶
ActAs
權限,才能部署 Apache Spark 無伺服器資源 (例如提交批次工作負載)。詳情請參閱「服務帳戶驗證的角色」。Serverless for Apache Spark
3.0
或更新版本的執行階段角色需求:- 使用者帳戶必須具備 Dataproc 編輯者或 Dataproc Serverless 編輯者角色,才能執行批次作業和工作階段。
- 使用者帳戶需要 Dataproc 檢視者或 Dataproc 無伺服器編輯者角色,才能取得及列出批次作業和工作階段。
- 自訂服務帳戶需要「Dataproc Worker」角色,才能執行批次作業和工作階段。
如要瞭解與 Serverless for Apache Spark
3.0
執行階段相關聯的服務帳戶,請參閱「Serverless for Apache Spark 服務帳戶」。
查詢 Dataproc 角色和權限
您可以透過下列章節查詢 Dataproc 角色和權限。
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. |
|
專案角色
您還可以使用 IAM 專案角色設定專案層級的權限。下表摘要列出與 IAM 專案角色有關的權限:
專案角色 | 權限 |
---|---|
專案檢視者 | 保留狀態的唯讀動作的所有專案權限 (取得、表列) |
專案編輯者 | 所有專案檢視者權限,加上修改狀態動作的所有專案權限 (建立、刪除、更新、使用、取消、停止、啟動) |
專案擁有者 | 所有專案編輯者權限,加上管理專案存取權 (取得/設定 IAM 政策) 及設定專案帳單的權限 |
後續步驟
- 瞭解如何管理專案、資料夾和機構的存取權。