本文說明如何使用Google Cloud 控制台和 REST API 建立資料網域和子網域,以及如何將身分與存取權管理 (IAM) 角色和權限授予與網域及其資源互動的使用者。
事前準備
建立資料網域及指派網域擁有者之前,請先確認您具備所需角色,並已啟用 API。
- 網域和子網域的巢狀結構深度上限為五層。
- 單一資料網域最多可建立 50 個直接子網域。
- 在專案中,每個地區最多可有 1,000 個網域。
啟用 API
啟用 Dataplex API。
啟用 API 時所需的角色
如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
必要的角色
如要取得建立資料網域及指派網域擁有者所需的權限,請要求管理員授予您專案的下列 IAM 角色:
-
可全面管理資料網域、繫結和 IAM 政策:
Dataplex 資料網域管理員 (
roles/dataplex.dataDomainAdmin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
建立資料網域
建立資料網域,做為專案和位置中資料資產和產品的邏輯分組。
控制台
前往 Google Cloud 控制台的「資料網域」頁面。
點按「建立資料網域」,然後提供下列資訊:
- 在「顯示名稱」欄位中,提供網域的易記名稱。例如:
Finance。 - 在「資料網域 ID」欄位中,提供網域的專屬 ID。系統建立網域後,您就無法變更這個值。
- 在「Location」(位置) 欄位中,選取要建立資料網域的區域。
- 在「專案 ID」欄位中,選取要建立資料網域的專案。
- 選用:在「Description」(說明) 欄位中,提供網域的簡短說明。
- 在「擁有者」欄位中,新增網域擁有者。您可以同時輸入多個電子郵件地址。
- 在「顯示名稱」欄位中,提供網域的易記名稱。例如:
選用:在「標籤」欄位中輸入標籤,將相關物件組成群組,或是與其他 Google Cloud 資源分為一組。
點選「建立」。您可能需要等待幾分鐘,才能存取或搜尋資料網域。
REST
如要建立資料網域,請使用 projects.locations.dataDomains.create 方法。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:專案的 ID。 Google CloudLOCATION_ID:要建立資料網域的區域。例如:us-central1。DATA_DOMAIN_ID:資料網域的專屬 ID。
HTTP 方法和網址:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains?data_domain_id=DATA_DOMAIN_ID
JSON 要求主體:
{
"display_name": "Finance Domain",
"description": "Domain for finance datasets and reports.",
"contacts": {
"identities": [
{
"contact_name": "Alice Wonderland",
"contact_role": "owner",
"contact_id": "alice@example.com"
}
]
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
建立資料子網域
建立子網域,擴充資料網域階層。
控制台
前往 Google Cloud 控制台的「資料網域」頁面。
選取要建立子網域的網域。
按一下「建立資料子網域」,然後提供下列資訊:
- 在「顯示名稱」欄位中,提供網域的易記名稱。例如:
Finance。 - 在「資料網域 ID」欄位中,提供網域的專屬 ID。系統建立網域後,您就無法變更這個值。
- 選用:在「Description」(說明) 欄位中,提供網域的簡短說明。
- 在「擁有者」欄位中,新增網域擁有者的電子郵件地址。您可以同時輸入多個電子郵件地址。
- 在「顯示名稱」欄位中,提供網域的易記名稱。例如:
選用:在「標籤」欄位中輸入標籤,將相關物件組成群組,或是與其他 Google Cloud 資源分為一組。
點選「建立」。您可能需要等待幾分鐘,才能存取或搜尋資料子網域。
REST
如要建立資料子網域,請使用 projects.locations.dataDomains.create 方法,並在要求主體中指定 parent_data_domain。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:專案的 ID。 Google CloudLOCATION_ID:父項資料網域所在的區域。例如:us-central1。SUBDOMAIN_ID:資料子網域的專屬 ID。PARENT_DATA_DOMAIN_ID:建立這個子網域的父項資料網域專屬 ID。
HTTP 方法和網址:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains?data_domain_id=SUBDOMAIN_ID
JSON 要求主體:
{
"display_name": "Finance Subdomain",
"description": "A subdomain within the Finance domain.",
"contacts": {
"identities": [
{
"contact_name": "Alice Wonderland",
"contact_role": "owner",
"contact_id": "alice@example.com"
}
]
},
"parent_data_domain": "projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/PARENT_DATA_DOMAIN_ID"
}
請展開以下其中一個選項,以傳送要求:
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
資料網域角色和權限
下表列出可授予資料網域擁有者和使用者的預先定義 IAM 角色。
| 角色名稱 | IAM 角色 | 說明 |
|---|---|---|
| Dataplex 資料網域管理員 | roles/dataplex.dataDomainAdmin |
可建立及管理資料網域和子網域,以及這些網域的繫結。管理員角色也能讓您管理網域的所有 IAM 角色和權限。 |
| Dataplex 資料網域設定檢視者 | roles/dataplex.dataDomainViewer |
可查看資料網域和資源網域繫結的設定。 |
| Dataplex 資料網域設定編輯者 | roles/dataplex.dataDomainEditor |
可編輯現有網域,以及建立及管理資源網域繫結。編輯者角色也能管理中繼資料授權,讓使用者探索網域資源。 |
| Dataplex 資料網域項目讀取者 | roles/dataplex.dataDomainEntryReader |
可探索及查看資料網域、子網域,以及所有資源的中繼資料。 |
將角色授予網域擁有者或使用者時,請注意下列事項:
- 身分與存取權管理資料網域角色會從父項網域傳播至子網域,但不會直接傳播至納入的資源。也就是說,如果您將
roles/dataplex.dataDomainEntryReader授予包含 BigQuery 資料集的網域使用者,該使用者不會在資料集 Identity and Access Management 角色中看到該角色。 在網域中授予的
roles/dataplex.dataDomainEntryReader角色可讓您執行下列動作:- 您可以探索資源、詳細資料和中繼資料,但無法在網域中查看資源。詳情請參閱「資料網域限制」。
- 您可以在網域中的資源上使用
lookupEntry等 API 方法。
授予資料網域存取權
控制台
如要授予資料網域的存取權,請按照下列步驟操作:
前往 Google Cloud 控制台的「資料網域」頁面。
按一下網域名稱,前往網域詳細資料頁面。
按一下頂端列中的「權限」。
按一下「Add principal」(新增主體)。
在「New principals」(新增主體) 欄位中,輸入主體的電子郵件地址。
在「Select a role」(選取角色) 欄位中,選擇資料網域角色。舉例來說,使用
Dataplex Data Domain Entry Reader可讓使用者探索及查看資料網域、子網域,以及所含資源的中繼資料。如要授予其他角色,請按一下「新增其他角色」。按一下 [儲存]。
REST
如要設定資料網域的 IAM 政策,請使用 projects.locations.dataDomains.setIamPolicy 方法。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:專案的 ID。 Google CloudLOCATION_ID:資料網域所在的區域。例如:us-central1。DOMAIN_ID:資料網域的專屬 ID。ROLE:要授予網域使用者的角色。
HTTP 方法和網址:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:setIamPolicy
JSON 要求主體:
{
"policy": {
"bindings": [
{
"role": "ROLE",
"members": [
"user:example-user@google.com",
"group:finance-consumers@google.com"
]
}
]
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
撤銷資料網域存取權
如要從主體移除角色或權限,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「資料網域」頁面。
按一下網域名稱,前往網域詳細資料頁面。
按一下頂端列中的「權限」。
在「Permissions」(權限) 窗格中,找出要撤銷角色權限的主體。
找出要移除的角色,然後按一下旁邊的「刪除」圖示。
按一下 [儲存]。
REST
如要使用 REST API 撤銷資料網域的存取權,請使用 projects.locations.dataDomains.getIamPolicy 方法擷取現有政策,從 bindings 清單中移除角色或主體,然後使用 projects.locations.dataDomains.setIamPolicy 方法設定更新後的政策:
取得目前的 IAM 政策:
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:專案的 ID。 Google CloudLOCATION_ID:資料網域所在的區域。例如:us-central1。DOMAIN_ID:資料網域的專屬 ID。
HTTP 方法和網址:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:getIamPolicy
請展開以下其中一個選項,以傳送要求:
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
設定更新後的政策:
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:專案的 ID。 Google CloudLOCATION_ID:資料網域所在的區域。例如:us-central1。DOMAIN_ID:資料網域的專屬 ID。ROLE:要授予網域使用者的角色。
HTTP 方法和網址:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:setIamPolicy
JSON 要求主體:
{ "policy": { "bindings": [ { "role": "ROLE", "members": [ "user:example-user@google.com", "group:finance-consumers@google.com" ] } ] } }請展開以下其中一個選項,以傳送要求:
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。