本文档介绍了如何使用Google Cloud 控制台和 REST API 创建数据网域和子网域,以及如何向与网域及其资源互动的用户授予 Identity and Access Management 角色和权限。
准备工作
在创建数据网域和分配网域所有者之前,请确保您拥有所需的角色并已启用所需的 API。
- 网域和子网域的嵌套深度上限为 5 级。
- 您可以在单个数据网域下创建最多 50 个直接子网域。
- 在每个区域中,一个项目最多可以包含 1,000 个网域。
启用 API
启用 Dataplex API。
启用 API 所需的角色
如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。
所需的角色
如需获得创建数据网域和分配网域所有者所需的权限,请让管理员向您授予项目的以下 IAM 角色:
-
允许对数据网域及其绑定和 IAM 政策进行全面管理:Dataplex Data Domain Admin (
roles/dataplex.dataDomainAdmin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
创建数据网域
创建数据域,以作为项目和位置内数据资产和产品的逻辑分组。
控制台
在 Google Cloud 控制台中,前往数据网域页面。
点击创建数据域,然后提供以下信息:
- 在显示名称字段中,为网域提供一个易记的名称。例如
Finance。 - 在数据网域 ID 字段中,提供网域的唯一 ID。系统创建网域后,您无法更改此值。
- 在位置字段中,选择要在其中创建数据网域的区域。
- 在项目 ID 字段中,选择您要在其中创建数据网域的项目。
- 可选:在说明字段中,提供网域的简短说明。
- 在所有者字段中,添加网域的所有者。您可以同时输入多个电子邮件地址。
- 在显示名称字段中,为网域提供一个易记的名称。例如
可选:在标签字段中,输入标签以将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。
点击创建。您可能需要等待几分钟才能访问或搜索数据域。
REST
如需创建数据网域,请使用 projects.locations.dataDomains.create 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION_ID:要在其中创建数据网域的区域。例如us-central1。DATA_DOMAIN_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 控制台中,前往数据网域页面。
选择要为其创建子网域的网域。
点击 Create Data Subdomain,然后提供以下信息:
- 在显示名称字段中,为网域提供一个易记的名称。例如
Finance。 - 在数据网域 ID 字段中,提供网域的唯一 ID。系统创建网域后,您无法更改此值。
- 可选:在说明字段中,提供网域的简短说明。
- 在所有者字段中,添加网域所有者的电子邮件地址。您可以同时输入多个电子邮件地址。
- 在显示名称字段中,为网域提供一个易记的名称。例如
可选:在标签字段中,输入标签以将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。
点击创建。您可能需要等待几分钟才能访问或搜索数据子网域。
REST
如需创建数据子网域,请使用 projects.locations.dataDomains.create 方法并在请求正文中指定 parent_data_domain。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION_ID:父数据网域所在的区域。例如us-central1。SUBDOMAIN_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 Data Domain Admin | roles/dataplex.dataDomainAdmin |
让您可以创建和管理数据网域和子网域及其绑定。管理员角色还允许您管理网域的所有 IAM 角色和权限。 |
| Dataplex Data Domain Configuration Viewer | roles/dataplex.dataDomainViewer |
让您可以查看数据网域和资源网域绑定的配置。 |
| Dataplex Data Domain Configuration Editor | roles/dataplex.dataDomainEditor |
让您可以修改现有网域,以及创建和管理资源-网域绑定。借助 Editor 角色,您还可以管理元数据授权,以允许用户发现网域资源。 |
| Dataplex Data Domain Entry Reader | roles/dataplex.dataDomainEntryReader |
允许您发现和查看数据网域、其子网域以及其中包含的所有资源的元数据。 |
向网域所有者或用户授予角色时,请考虑以下事项:
- Identity and Access Management 数据网域角色会从父网域传播到子网域,但不会直接传播到包含的资源。这意味着,如果您向包含 BigQuery 数据集的网域的用户授予
roles/dataplex.dataDomainEntryReader角色,该用户将不会在数据集的 Identity and Access Management 角色中看到该角色。 在网域中授予的
roles/dataplex.dataDomainEntryReader角色可让您执行以下操作:- 您可以发现资源及其详细信息和元数据,但当您查看网域内的资源时。如需了解详情,请参阅数据网域限制。
- 您可以对网域中的资源使用
lookupEntry等 API 方法。
授予对数据网域的访问权限
控制台
如需授予对数据网域的访问权限,请按以下步骤操作:
在 Google Cloud 控制台中,前往数据网域页面。
点击域名以前往域名详情页面。
点击顶部栏中的权限。
点击添加主账号。
在新的主账号字段中,输入主账号的电子邮件地址。
在选择角色字段中,选择数据网域角色。例如,使用
Dataplex Data Domain Entry Reader可允许用户发现和查看数据网域、其子网域以及所含资源的元数据。如需授予更多角色,请点击添加其他角色。点击保存。
REST
如需为数据网域设置 IAM 政策,请使用 projects.locations.dataDomains.setIamPolicy 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION_ID:数据网域所在的区域。例如us-central1。DOMAIN_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 控制台中,前往数据网域页面。
点击域名以前往域名详情页面。
点击顶部栏中的权限。
在权限窗格中,找到要撤消其角色的主账号。
点击要移除的角色旁边的删除图标。
点击保存。
REST
如需使用 REST API 撤消对数据网域的访问权限,请使用 projects.locations.dataDomains.getIamPolicy 方法检索现有政策,从 bindings 列表中移除角色或主账号,然后使用 projects.locations.dataDomains.setIamPolicy 方法设置更新后的政策:
获取当前 IAM 政策:
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION_ID:数据网域所在的区域。例如us-central1。DOMAIN_ID:数据网域的唯一标识符。
HTTP 方法和网址:
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID:getIamPolicy
如需发送您的请求,请展开以下选项之一:
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
设置更新后的政策:
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION_ID:数据网域所在的区域。例如us-central1。DOMAIN_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) 和一个空响应。