使用政策标记在 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. 在 Cloud Console 中,转到 IAM 页面。

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

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

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

    授予角色

    1. 在 Cloud Console 中,转到 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. 在 Cloud Console 中,转到 IAM 页面。

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

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

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

    授予角色

    1. 在 Cloud Console 中,转到 IAM 页面。

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

角色与权限

有多个角色与用户和服务帐号的政策标记相关。本页面讨论的角色是 Data Catalog Policy Tags AdminData Catalog Fine-Grained Reader 角色。

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

  • 查询受政策标记保护的数据的用户或服务帐号必须具有 Data Catalog 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 Console 中,转到 IAM 页面。

    打开 IAM 页面

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

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

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

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

  5. 点击保存

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

创建分类

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

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

  1. 在 Cloud Console 中打开“Data Catalog 分类”页面。

    打开“分类”页面

  2. 点击创建分类

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

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

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

      创建分类页面。

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

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

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

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

授予 Fine-Grained Reader 角色

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

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

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

    转到 Data Catalog 政策标记

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

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

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

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

  5. 添加主帐号窗格中:

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

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

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

向列添加政策标记

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

  1. 打开 Data Catalog 首页,并找到要将政策标记附加到列的 BigQuery 表。

    打开 Data Catalog 首页

    如需详细了解如何在 Data Catalog 中查找资产,请参阅如何搜索数据资产

  2. 在“资产”页面上,向下滚动到架构部分。

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

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

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

    Data Catalog 中附加的政策标记。

该列现已受到政策标记的保护。要允许用户访问此数据,请向其授予此政策标记的 Data Catalog Fine-Grained Reader 角色。请参阅 Fine-Grained Reader 角色

清除列中的政策标记

  1. 打开 Data Catalog 首页,并找到要清除列中的政策标记的 BigQuery 表。

    打开 Data Catalog 首页

    如需详细了解如何在 Data Catalog 中查找资产,请参阅如何搜索数据资产

  2. 在“资产”页面上,向下滚动到架构部分。

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

    清除政策标记。