本頁說明 Cloud Data Fusion 中的存取控管選項。
您可以透過下列方式控管 Cloud Data Fusion 資源的存取權:
如要控管控制層作業的存取權,例如透過 Google Cloud 控制台、Google Cloud CLI 和 REST API 建立及更新執行個體,請使用 Identity and Access Management (IAM),如本頁所述。
如要將 BigQuery 或 Cloud Storage 等 Google Cloud 資料服務的存取權授予管道執行的服務帳戶,請使用 IAM。
如要瞭解 Cloud Data Fusion 存取控管的架構和相關資源,請參閱「網路」。如要瞭解如何授予角色和權限,請參閱「管理專案、資料夾和機構的存取權」。
Cloud Data Fusion 中的 IAM 簡介
如要控管 Cloud Data Fusion 功能的存取權,請在 Google Cloud 專案中,將 IAM 角色和權限授予服務帳戶和其他主體。
如要授予使用者帳戶精細的存取權,讓他們可以使用 Cloud Data Fusion 網頁介面,請使用 RBAC。
根據預設,Cloud Data Fusion 會使用下列服務帳戶:
Cloud Data Fusion 服務帳戶
Cloud Data Fusion 服務帳戶是 Google 代管的服務代理程式,可在管道設計期間存取客戶資源。啟用 Cloud Data Fusion API 時,系統會自動將這個服務代理人新增至專案。專案中的所有執行個體都會使用這個值。
服務專員的職責如下:
在管道設計期間與 Cloud Storage、BigQuery 或 Datastream 等其他服務通訊。
佈建 Managed Service for Apache Spark 叢集,並提交管道工作,以啟用執行作業。
Cloud Data Fusion 服務帳戶的角色
根據預設,Cloud Data Fusion 服務帳戶只具備「Cloud Data Fusion API 服務代理人」角色 (roles/datafusion.serviceAgent)。
這項服務代理程式的主體名稱為 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com。
下列預設資源與 Cloud Data Fusion API 服務代理角色相關聯。
| 角色 | 資源 | 權限 |
|---|---|---|
| Cloud Data Fusion API 服務代理 | 相關聯的服務:
|
請參閱 Cloud Data Fusion API 服務代理人權限。 |
Compute Engine 預設服務帳戶或自訂服務帳戶
Compute Engine 服務帳戶是 Cloud Data Fusion 預設使用的帳戶,可部署及執行存取其他Google Cloud 資源的工作。根據預設,這項服務會附加至 Managed Service for Apache Spark 叢集 VM,讓 Cloud Data Fusion 在管道執行期間存取 Managed Service for Apache Spark 資源。
建立 Cloud Data Fusion 執行個體時,或在 Cloud Data Fusion 網頁介面中建立新的運算設定檔時,您可以選擇要附加至 Managed Service for Apache Spark 叢集的自訂服務帳戶。
詳情請參閱「Cloud Data Fusion 中的服務帳戶」。
Compute Engine 服務帳戶的角色
根據預設,執行管道時,Cloud Data Fusion 會使用 Compute Engine 預設服務帳戶存取資源 (例如來源和接收器)。
。您可以為 Cloud Data Fusion 執行個體設定使用者管理的自訂服務帳戶,並將角色授予該帳戶。之後,您可以在建立新執行個體時選擇這個服務帳戶。
Cloud Data Fusion Runner 角色
在含有 Cloud Data Fusion 執行個體的專案中,針對預設和使用者管理的自訂服務帳戶,授予 Cloud Data Fusion Runner 角色 (datafusion.runner)。
| 角色 | 說明 | 權限 |
|---|---|---|
Data Fusion Runner (datafusion.runner) |
允許 Compute Engine 服務帳戶與租戶專案中的 Cloud Data Fusion 服務通訊 | datafusion.instances.runtime |
服務帳戶使用者角色
在專案的預設或使用者管理服務帳戶中,當您執行管道時,系統會啟動 Managed Service for Apache Spark 叢集,請將「服務帳戶使用者」角色 (roles/iam.serviceAccountUser) 授予 Cloud Data Fusion 服務帳戶。
詳情請參閱「授予服務帳戶權限」。
Dataproc 工作者角色
如要在 Managed Service for Apache Spark 叢集上執行工作,請將 Dataproc Worker 角色 (roles/dataproc.worker) 授予 Cloud Data Fusion 管道使用的預設或使用者管理服務帳戶。
使用者角色
如要在 Cloud Data Fusion 中觸發任何作業,您 (主體) 必須具備足夠的權限。個別權限會歸類為角色,然後您將角色授予該主體。
如果未啟用 RBAC,或您使用的 Cloud Data Fusion 版本不支援 RBAC,則具備任何 Cloud Data Fusion IAM 角色的使用者,都能完整存取 Cloud Data Fusion 網頁介面。管理員角色僅允許使用者管理執行個體,例如 Create、Update、Upgrade 和 Delete 作業。
視主體在 Cloud Data Fusion 中需要的權限而定,將下列角色授予主體。
| 角色 | 說明 | 權限 |
|---|---|---|
Cloud Data Fusion 管理員 (roles/datafusion.admin) |
具備所有檢視者權限,並可建立、更新及刪除 Cloud Data Fusion 執行個體。 |
|
Cloud Data Fusion 檢視者 (roles/datafusion.viewer) |
|
|
在設計階段存取其他專案中的資源
本節說明位於與 Cloud Data Fusion 執行個體不同 Google Cloud 專案的資源,在設計階段的存取控管。
在 Cloud Data Fusion 網頁介面中設計管道時,您可能會使用 Wrangler 或 Preview 等函式,存取其他專案中的資源。
以下各節說明如何判斷環境中的服務帳戶,然後授予適當的權限。
判斷環境的服務帳戶
服務帳戶名稱為「Cloud Data Fusion Service Account」,而這個服務代理程式的主體為 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com。
授予存取其他專案資源的權限
如要授予可存取各種資源的角色,請按照下列步驟操作:
- 在目標資源所在的專案中,將 Cloud Data Fusion 服務帳戶 (
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) 新增為主體。 - 在目標資源所在的專案中,將角色授予 Cloud Data Fusion 服務帳戶。
授予角色後,您可以在設計階段存取其他專案中的資源,存取方式與存取執行個體所在專案中的資源相同。
在執行階段存取其他專案中的資源
本節說明執行階段位於與 Cloud Data Fusion 執行個體不同 Google Cloud 專案的資源存取權控管。
執行時,您會在 Managed Service for Apache Spark 叢集上執行管道,該叢集可能會存取其他專案中的資源。根據預設,Managed Service for Apache Spark 叢集本身會與 Cloud Data Fusion 執行個體在同一個專案中啟動,但您可以使用其他專案中的叢集。
如要存取其他 Google Cloud 專案中的資源,請按照下列步驟操作:
- 判斷專案的服務帳戶。
- 在資源所在的專案中,將 IAM 角色授予 Compute Engine 預設服務帳戶,讓該帳戶有權存取其他專案中的資源。
判斷 Compute Engine 服務帳戶
如要進一步瞭解 Compute Engine 服務帳戶,請參閱「關於 Cloud Data Fusion 中的 IAM」。
授予其他專案中 IAM 資源的存取權
Compute Engine 預設服務帳戶需要權限,才能存取其他專案中的資源。這些角色和權限可能因您要存取的資源而異。
如要存取這些資源,請按照下列步驟操作:
- 授予角色和權限,並在目標資源所在的專案中,將 Compute Engine 服務帳戶指定為主體。
- 新增適當角色,即可存取資源。
Cloud Data Fusion API 權限
您必須具備下列權限,才能執行 Cloud Data Fusion API。
| API 呼叫 | 權限 |
|---|---|
instances.create |
datafusion.instances.create |
instances.delete |
datafusion.instances.delete |
instances.list |
datafusion.instances.list |
instances.get |
datafusion.instances.get |
instances.update |
datafusion.instances.update |
operations.cancel |
datafusion.operations.cancel |
operations.list |
datafusion.operations.list |
operations.get |
datafusion.operations.get |
一般工作權限
在 Cloud Data Fusion 中執行一般工作需要下列權限:
| 工作 | 權限 |
|---|---|
| 存取 Cloud Data Fusion 網頁介面 | datafusion.instances.get |
| 在 Google Cloud 控制台中存取 Cloud Data Fusion 的「Instances」(執行個體) 頁面 | datafusion.instances.list |
| 存取執行個體的「詳細資料」頁面 | datafusion.instances.get |
| 建立新執行個體 | datafusion.instances.create |
| 更新標籤與進階選項以自訂執行個體 | datafusion.instances.update |
| 刪除執行個體 | datafusion.instances.delete |
後續步驟
- 進一步瞭解多個專案之間的存取控管。