使用政策标记在 BigQuery 中控制列访问权限

政策标记可让您控制谁可以查看 BigQuery 表中的敏感列。在 Data Catalog 中,您可以直接在表条目详细信息页面上向列添加或移除政策标记。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 启用 Data Catalog and BigQuery API。

    启用 API

  4. 确保您拥有项目的以下一个或多个角色: Data Catalog > Policy Tag Admin, BigQuery > Data Viewer

    检查角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。
  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 启用 Data Catalog and BigQuery API。

    启用 API

  7. 确保您拥有项目的以下一个或多个角色: Data Catalog > Policy Tag Admin, BigQuery > Data Viewer

    检查角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。

角色与权限

有多个角色与用户和服务帐号的政策标记相关。在本页中,讨论的角色是 Data Catalog Policy Tag AdminFine-Grained Reader 角色。

  • 负责管理政策标记的用户或服务帐号必须具有 Data Catalog Policy Tags Admin 角色。此角色可管理分类和政策标记,并授予或移除 ACL 政策。

  • 查询受政策标记保护的数据的用户或服务帐号必须为每个政策标记单独添加 Fine-Grained Reader 角色。

如需详细了解所有与政策标记相关的角色,请参阅用于列级安全性的角色

Policy Tags Admin 角色

Data Catalog Policy Tags Admin 角色可以创建和管理数据政策标记。

要授予 Data Catalog Policy Tags Admin 角色,您必须对要为其授予 Policy Tags Admin 角色的项目拥有 resourcemanager.projects.setIamPolicy 权限。如果您没有 resourcemanager.projects.setIamPolicy 权限,请让 Project Owner 授予您此权限或代您执行以下步骤。

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    打开 IAM 页面

  2. 如果列表中包含要授予该角色的用户的电子邮件地址,请选择该电子邮件地址,然后点击修改(铅笔图标)。然后点击添加其他角色

    如果列表中不包含该用户的电子邮件地址,请点击 添加,然后在新建主帐号框中输入该电子邮件地址。

  3. 点击选择角色下拉列表。

  4. 点击 Data Catalog,然后点击 Policy Tags Admin

  5. 点击保存

如需详细了解此角色,请参阅用于列级安全性的角色

创建分类

您可以使用 Data Catalog 创建分类并为数据添加政策标记。

用户帐号必须具有 Data Catalog Policy Tags Admin 角色才能执行以下步骤。

  1. 在 Google Cloud 控制台中打开“Dataplex 分类”页面。

    打开“分类”页面

  2. 点击创建分类

  3. 新建分类页面上,执行以下操作:

    1. 对于分类名称,输入您要创建的分类的名称。
    2. 对于说明,输入一项说明。
    3. 视需要更改项目下列出的项目。
    4. 视需要更改位置下列出的位置。
    5. 政策标记下,输入政策标记名称和说明。
    6. 如需为政策标记添加子政策标记,请点击添加子政策标记
    7. 如需添加另一个与政策标记级别相同的新政策标记,请点击 + 图标。

      下面显示了示例分类的新建分类页面。

      创建分类页面。

    8. 根据需要继续为您的分类添加政策标记和子政策标记。

    9. 为层次结构创建了政策标记后,点击保存

    10. 政策标记分类页面上,开启强制执行访问权限控制滑块。

用户若要查看带有政策标记的列,则需要对数据集拥有完整权限,以及政策标记本身。如需查看详细的演示,请参阅 BigQuery 列级别安全指南

授予 Fine-Grained Reader 角色

如果用户需要访问受政策标记保护的列,则需要 Fine-Grained Reader 角色。系统会为每个政策标记单独分配此角色。

您必须先对要授予 Fine-Grained Reader 角色的项目拥有 resourcemanager.projects.setIamPolicy 权限,然后才能执行以下步骤。如果您没有 resourcemanager.projects.setIamPolicy 权限,请让 Project Owner 授予您此权限或代您执行以下步骤。

  1. 转到 Dataplex & 政策标记页面。

    转到 Dataplex 政策标记

  2. 选择您要授予角色的政策标记分类。

  3. 政策标记部分中,选择特定的政策标记。

  4. 在政策标记信息窗格中,点击添加主帐号

    如果您看不到信息窗格,请点击显示信息面板

  5. 添加主帐号窗格中,执行以下操作:

    1. 新建主帐号框中,输入要授予该角色的用户的电子邮件地址。
    2. 选择角色菜单中,选择 Data Catalog > Fine-Grained Reader
    3. 点击保存

此用户帐号现在可以查看受该特定政策标记保护的所有列。

如需详细了解此角色,请参阅用于列级安全性的角色

向列添加政策标记

在 Data Catalog 中,一次只能将一个政策标记附加到一列。如果您想在一次操作中向多个列附加政策标记,请在 BigQuery 中修改表架构。请参阅在 BigQuery 中为列设置政策标记

  1. 打开 Dataplex 搜索页面,找到要向其附加政策标记的 BigQuery 表。

    打开 Dataplex 搜索页面

    如需了解详情,请参阅如何搜索数据资源

  2. 在素材资源页面上,选择架构和列标记标签页。

  3. 架构表中,找到代表 BigQuery 表列的行,然后在政策标记下点击 +

  4. 添加政策标记面板中,选择要应用于该列的政策标记。

  5. 点击面板底部的选择。屏幕应类似于如下所示:

    Data Catalog 中附加了政策标记。

现在,该列使用政策标记进行保护。若要允许用户访问这些数据,请授予其针对此政策标记的 Fine-Grained Reader 角色。请参阅 Fine-Grained Reader 角色

清除列中的政策标记

  1. 打开 Dataplex 搜索页面,找到要清除列中政策标记的 BigQuery 表。

    打开 Dataplex 搜索页面

    请参阅如何搜索数据资源

  2. 在素材资源页面上,选择架构和列标记标签页。

  3. 架构表中,找到代表 BigQuery 列的行,然后在政策标记单元格中点击 X

    清除政策标记。