将 Cloud DLP 扫描结果发送到 Data Catalog

本指南逐步介绍了如何使用 Cloud Data Loss Prevention 扫描特定 Google Cloud 资源并将结果发送到 Data Catalog。

Data Catalog 是一项可扩缩的元数据管理服务,可帮助您快速发现、管理和了解您在 Google Cloud 中的所有数据。

Cloud DLP 与 Data Catalog 原生集成。使用 Cloud DLP 操作扫描 BigQuery 表中是否存在敏感数据时,它可以将结果以标记模板的形式直接发送到 Data Catalog。

通过执行本指南中的步骤,您将完成以下操作:

  • 启用 Data Catalog 和 Cloud DLP。
  • 设置 Cloud DLP 以扫描 BigQuery 表。
  • 配置 Cloud DLP 扫描以将扫描结果发送到 Data Catalog。

如需详细了解 Data Catalog,请参阅 Data Catalog 文档

费用

在本文档中,您将使用 Google Cloud 的以下收费组件:

  • Cloud DLP
  • BigQuery

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

准备工作

在将 Cloud DLP 扫描结果发送到 Data Catalog 之前,请执行以下操作:

  • 第 1 步:设置结算功能。
  • 第 2 步:创建新项目并填充新的 BigQuery 表。(可选)
  • 第 3 步:启用 Data Catalog。
  • 第 4 步:启用 Cloud DLP。

下面各小节将详细介绍每个步骤。

第 1 步:设置结算功能

如果您还没有结算帐号,必须先设置一个。

了解如何启用结算功能

第 2 步:创建新项目并填充新的 BigQuery 表(可选)

如果您是要为生产工作设置此功能,或者已经拥有要扫描的 BigQuery 表,请打开包含该表的 Google Cloud 项目并跳到第 3 步。

如果您是要试用此功能,且希望扫描一组虚拟或测试数据集,请创建一个新项目。要完成此步骤,您必须拥有 IAM 的 Project Creator 角色。详细了解 IAM 角色

  1. 转到 Google Cloud Console 中的新建项目页面。

    新建项目

  2. 结算帐号下拉列表中,选择项目的结算帐号。
  3. 组织下拉列表中,选择要在其中创建项目的组织。
  4. 位置下拉列表中,选择要在其中创建项目的组织或文件夹。
  5. 点击创建以创建项目。

接下来,下载并存储样本数据:

  1. 转到 GitHub 上的 Cloud Functions 教程存储区
  2. 选择一个包含示例数据的 CSV 文件,然后下载该文件。
  3. 接下来,转到 Google Cloud 控制台中的 BigQuery
  4. 选择您的项目。
  5. 点击创建数据集
  6. 点击创建表
  7. 点击上传,然后选择您要上传的文件。
  8. 为表命名,然后点击创建表

第 3 步:启用 Data Catalog

接下来,为您要使用 Cloud DLP 进行扫描的 BigQuery 表所在的项目启用 Data Catalog。

如需使用 Google Cloud 控制台启用 Data Catalog,请执行以下操作:

  1. 注册应用以使用 Data Catalog

    注册应用以使用 Data Catalog

  2. 在注册页面上的创建项目下拉列表中,选择要用于 Data Catalog 的项目。
  3. 选择项目后,点击继续

您的项目现已启用 Data Catalog。

第 4 步:启用 Cloud DLP

为已启用 Data Catalog 的同一项目启用 Cloud DLP。

如需使用 Google Cloud 控制台启用 Cloud DLP,请执行以下操作:

  1. 注册应用以使用 Cloud DLP

    注册应用以使用 Cloud DLP

  2. 在注册页面上的创建项目下拉列表中,选择您在上一步中选择的那个项目。
  3. 选择项目后,点击继续

您的项目现已启用 Cloud DLP。

配置并运行 Cloud DLP 检查扫描

您可以使用 Google Cloud Console 或 DLP API 配置并运行 Cloud DLP 检查扫描。

Data Catalog 标记模板与 BigQuery 表存储在同一项目和区域中。如果要检查其他项目中的表,则必须向相应 BigQuery 表所在的项目中的 Cloud DLP 服务代理授予 Data Catalog TagTemplate Owner (roles/datacatalog.tagTemplateOwner) 角色。

Google Cloud Console

若要设置使用 Cloud DLP 扫描 BigQuery 表的作业,请执行以下操作:

  1. 在 Google Cloud Console 中,打开 Cloud DLP。

    转到 Cloud DLP

  2. 创建菜单中,选择作业或作业触发器

    显示了创建新作业或作业触发器的菜单选项的屏幕截图

  3. 输入 Cloud DLP 作业信息,然后点击继续以完成各个步骤:

    • 第 1 步:选择输入数据中,请于名称字段内输入值,为作业命名。在位置中,从存储类型菜单中选择 BigQuery,然后输入要扫描的表的信息。系统已预先配置采样部分,以便针对您的数据运行示例扫描。如果您有大量数据,可以调整限制行数的依据最大行数字段以节省资源。如需了解详情,请参阅选择输入数据

    • (可选)在第 2 步:配置检测中,配置要查找的数据类型(称为“infoType”)。在本演示中,请保留选中的默认 infoType。如需了解详情,请参阅配置检测

    • 第 3 步:添加操作中,请启用保存到 Data Catalog

    • (可选)在第 4 步:时间安排中,出于运行本演示的目的,请将菜单设置为,以便仅运行一次扫描。如需详细了解如何安排重复扫描,请参阅时间安排

  4. 点击创建。作业会立即运行。

DLP API

在本部分中,您将配置并运行 Cloud DLP 扫描作业。

您在此配置的检查作业会指示 Cloud DLP 扫描上面第 2 步中描述的 BigQuery 样本数据或您自己的 BigQuery 数据。在指定的作业配置中,您也要指示 Cloud DLP 将其扫描结果保存到 Data Catalog。

第 1 步:记下您的项目标识符

  1. 前往 Google Cloud 控制台

    转到 Google Cloud Console

  2. 点击选择

  3. 请选择:下拉列表中,选择您已为其启用 Data Catalog 的组织。

  4. ID 下方,复制您要扫描的数据所在项目的项目 ID,也就是上文设置存储区步骤中所述的项目。

  5. 名称下方,点击项目以将其选中。

第 2 步:打开 API Explorer 并配置作业

  1. dlpJobs.create 方法的参考页面上转到 API Explorer。为继续参考这些说明,请右键点击以下链接,然后在新标签页或窗口中打开:

    打开 API Explorer

  2. 父级 (parent) 框中输入以下内容,其中的 project-id 是指您在上一步中记下的项目 ID:

    projects/project-id

    接下来,复制以下 JSON。在 API Explorer 中选择请求正文 (Request body) 字段的内容,然后粘贴 JSON 以替换相应内容。请务必将 project-idbigquery-dataset-namebigquery-table-name 占位符分别替换为实际的项目 ID、BigQuery 数据集和表名称。

    {
      "inspectJob":
      {
        "storageConfig":
        {
          "bigQueryOptions":
          {
            "tableReference":
            {
              "projectId": "project-id",
              "datasetId": "bigquery-dataset-name",
              "tableId": "bigquery-table-name"
            }
          }
        },
        "inspectConfig":
        {
          "infoTypes":
          [
            {
              "name": "EMAIL_ADDRESS"
            },
            {
              "name": "PERSON_NAME"
            },
            {
              "name": "US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name": "PHONE_NUMBER"
            }
          ],
          "includeQuote": true,
          "minLikelihood": "UNLIKELY",
          "limits":
          {
            "maxFindingsPerRequest": 100
          }
        },
        "actions":
        [
          {
            "publishFindingsToCloudDataCatalog": {}
          }
        ]
      }
    }
    

如需详细了解可用的扫描选项,请参阅检查存储空间和数据库中是否存在敏感数据。如需查看 Cloud DLP 可以扫描和检测的信息类型的完整列表,请参阅 InfoType 参考文档

第 3 步:执行启动扫描作业的请求

按照上述步骤配置作业后,点击执行 (Execute) 以发送请求。如果请求成功,系统会显示一个响应,其中包含一个成功代码和一个 JSON 对象(指示您刚刚创建的 Cloud DLP 作业的状态)。

扫描请求响应中包含检查扫描作业的 ID("name" 键)和当前状态("state" 键)。由于您刚刚提交了请求,因此作业在此刻的状态为 "PENDING"

查看 Cloud DLP 检查扫描的状态

提交扫描请求后,系统会立即开始扫描内容。

Google Cloud Console

如需查看检查扫描作业的状态,请执行以下操作:

  1. 在 Google Cloud Console 中,打开 Cloud DLP。

    转到 Cloud DLP

  2. 点击作业和作业触发器标签页,然后点击所有作业

您刚刚运行的作业可能显示在列表顶部。查看状态列,确保其状态为完成

您可以点击作业的作业 ID 以查看其结果。作业详情页面上列出的每个 infoType 检测器后面都会显示在内容中找到的匹配项数量。

DLP API

如需查看检查扫描作业的状态,请执行以下操作:

  1. 点击以下按钮,在 dlpJobs.get 方法的参考页面上转到 API Explorer:

    打开 API Explorer

  2. 名称 (name) 框中,输入扫描请求的 JSON 响应中的作业名称,其格式如下:

    projects/project-id/dlpJobs/job-id
    作业 ID 的格式为 i-1234567890123456789

  3. 如需提交请求,请点击执行

如果响应 JSON 对象的 "state" 键指示作业为 "DONE",则表示扫描作业已完成。

如需查看响应 JSON 的其余部分,请向下滚动页面。在 "result" > "infoTypeStats" 下,列出的每种信息类型都应有相应的 "count"。如果没有,请确保您输入的 JSON 准确无误,且数据的路径或位置正确无误。

扫描作业完成后,您可以继续转到本指南的下一部分,在 Security Command Center 里查看扫描结果。

在 Data Catalog 里查看 Cloud DLP 扫描结果

由于您已指示 Cloud DLP 将检查扫描作业结果发送到 Data Catalog,因此您现可在 Data Catalog 界面中查看自动创建的标记和标记模板:

  1. 转到 Google Cloud Console 中的“Data Catalog”页面。

    转到 Data Catalog

  2. 搜索您检查过的表。
  3. 点击与您的表匹配的结果以查看该表的元数据。

下面的屏幕截图显示了示例表的 Data Catalog 元数据视图:

Data Catalog 中的 DLP 详细信息。

Cloud DLP 数据发现

Cloud DLP 的结果将包含在您所扫描的表的摘要表单中。此摘要包含 infoType 总数,以及有关检查作业的摘要数据(包括日期和作业资源 ID)。

系统会列出已检查的所有 infoTypes。有结果的 infoType 显示的计数大于零。

清理

为避免系统因本主题中使用的资源而向您的 Google Cloud 帐号收取费用,请根据您使用的是样本数据还是您自己的数据,执行下列操作之一:

删除项目

为避免支付费用,最简单的方法是按照本主题中提供的说明删除您创建的项目。

如需删除项目,请执行以下操作:

  1. 在 Google Cloud Console 中,转到“项目”页面。

    转到“项目”页面

  2. 在项目列表中,选择要删除的项目,然后点击删除项目选择项目名称旁边的复选框后,点击“删除项目”
  3. 在对话框中输入项目 ID,然后点击关停以删除项目。

使用此方法删除项目时,您创建的 Cloud DLP 作业和 Cloud Storage 存储桶也会一并删除,且删除操作就此完成。您不用再按照以下部分中的说明操作。

删除 Cloud DLP 作业或作业触发器

如果您扫描的是自己的数据,请删除刚刚创建的检查扫描作业或作业触发器。

Google Cloud Console

  1. 在 Google Cloud Console 中,打开 Cloud DLP。

    转到 Cloud DLP

  2. 点击作业和作业触发器标签页,然后点击作业触发器标签页。

  3. 在要删除的作业触发器的操作列中,点击更多操作菜单(显示为纵向排列的三个点),然后点击删除

(可选)您还可以删除运行过的作业的作业详情。 点击所有作业标签页,然后在要删除的作业的操作列中,点击更多操作菜单(显示为纵向排列的三个点),然后点击删除

DLP API

  1. 点击以下按钮,在 dlpJobs.delete 方法的参考页面上转到 API Explorer:

    打开 API Explorer

  2. 名称 (name) 框中,输入扫描请求的 JSON 响应中的作业名称,其格式如下:

    projects/project-id/dlpJobs/job-id
    作业 ID 的格式为 i-1234567890123456789

如果您创建了其他扫描作业,或者想要确保已成功删除作业,可以列出现有的所有作业:

  1. 点击以下按钮,在 dlpJobs.list 方法的参考页面上转到 API Explorer:

    打开 API Explorer

  2. 父级框中,按以下格式输入项目标识符,其中 project-id 是指您的项目标识符:

    projects/project-id

  3. 点击执行

如果响应中未列出任何作业,则表明您已删除所有作业。如果响应中列出了作业,请对这些作业重复上述删除步骤。

后续步骤