创建数据网域

本文档介绍了如何使用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) 获得此权限。了解如何授予角色

启用 API

所需的角色

如需获得创建数据网域和分配网域所有者所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建数据网域

创建数据域,以作为项目和位置内数据资产和产品的逻辑分组。

控制台

  1. 在 Google Cloud 控制台中,前往数据网域页面。

    前往“数据网域”

  2. 点击创建数据域,然后提供以下信息:

    • 显示名称字段中,为网域提供一个易记的名称。例如 Finance
    • 数据网域 ID 字段中,提供网域的唯一 ID。系统创建网域后,您无法更改此值。
    • 位置字段中,选择要在其中创建数据网域的区域。
    • 项目 ID 字段中,选择您要在其中创建数据网域的项目。
    • 可选:在说明字段中,提供网域的简短说明。
    • 所有者字段中,添加网域的所有者。您可以同时输入多个电子邮件地址。
  3. 可选:在标签字段中,输入标签以将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。

  4. 点击创建。您可能需要等待几分钟才能访问或搜索数据域。

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) 和一个空响应。

创建数据子网域

创建子网域以扩展数据网域层次结构。

控制台

  1. 在 Google Cloud 控制台中,前往数据网域页面。

    前往“数据网域”

  2. 选择要为其创建子网域的网域。

  3. 点击 Create Data Subdomain,然后提供以下信息:

    • 显示名称字段中,为网域提供一个易记的名称。例如 Finance
    • 数据网域 ID 字段中,提供网域的唯一 ID。系统创建网域后,您无法更改此值。
    • 可选:在说明字段中,提供网域的简短说明。
    • 所有者字段中,添加网域所有者的电子邮件地址。您可以同时输入多个电子邮件地址。
  4. 可选:在标签字段中,输入标签以将相关对象组合在一起或者与其他 Google Cloud 资源组合在一起。

  5. 点击创建。您可能需要等待几分钟才能访问或搜索数据子网域。

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 方法。

授予对数据网域的访问权限

控制台

如需授予对数据网域的访问权限,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往数据网域页面。

    前往“数据网域”

  2. 点击域名以前往域名详情页面。

  3. 点击顶部栏中的权限

  4. 点击添加主账号

  5. 新的主账号字段中,输入主账号的电子邮件地址。

  6. 选择角色字段中,选择数据网域角色。例如,使用 Dataplex Data Domain Entry Reader 可允许用户发现和查看数据网域、其子网域以及所含资源的元数据。如需授予更多角色,请点击添加其他角色

  7. 点击保存

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) 和一个空响应。

撤消对数据网域的访问权限

如需从正文移除角色或权限,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往数据网域页面。

    前往“数据网域”

  2. 点击域名以前往域名详情页面。

  3. 点击顶部栏中的权限

  4. 权限窗格中,找到要撤消其角色的主账号。

  5. 点击要移除的角色旁边的删除图标。

  6. 点击保存

REST

如需使用 REST API 撤消对数据网域的访问权限,请使用 projects.locations.dataDomains.getIamPolicy 方法检索现有政策,从 bindings 列表中移除角色或主账号,然后使用 projects.locations.dataDomains.setIamPolicy 方法设置更新后的政策:

  1. 获取当前 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) 和一个空响应。

  2. 设置更新后的政策:

    在使用任何请求数据之前,请先进行以下替换:

    • 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) 和一个空响应。

后续步骤