将 Cloud DLP 扫描结果发送到 Security Command Center

本指南将介绍如何使用 Cloud Data Loss Prevention (DLP) 扫描特定 Google Cloud 资源并将扫描结果发送到 Security Command Center。

您可以通过 Security Command Center 收集有关安全威胁的数据、识别安全威胁并采取相应措施,以避免造成业务损害或损失。借助 Security Command Center,您可以从单个集中式信息中心执行多项与安全相关的操作。

Cloud Data Loss Prevention (DLP) 与 Security Command Center 原生集成。当使用 Cloud DLP 操作扫描 Google Cloud Storage 存储区中是否存在敏感数据时,它可以将结果直接发送到 Security Command Center 信息中心,使其显示在其他安全指标旁边。

以下视频展示了如何设置 Cloud DLP,以将扫描结果发送到 Security Command Center。本指南的后面部分还将更详细地介绍这些设置步骤。

在完成本指南的过程中,您将执行以下操作:

  • 启用 Security Command Center 和 Cloud DLP。
  • 设置 Cloud DLP 以扫描 Google Cloud 存储区,包括 Cloud Storage 存储分区、BigQuery 表格或 Datastore 种类。
  • 配置 Cloud DLP 扫描以将扫描结果发送到 Security Command Center。

如需详细了解 Security Command Center,请参阅 Security Command Center 文档

费用

按照本主题中的说明操作会用到 Google Cloud 计费组件,包括:

  • Cloud Data Loss Prevention (DLP)
  • Cloud Storage
  • BigQuery
  • Datastore

请使用价格计算器根据您的预计使用情况来估算费用。

Google Cloud 新用户可能有资格申请免费试用

准备工作

您必须先设置以下组件,然后才能将 Cloud DLP 扫描结果发送到 Security Command Center:

  • 第 1 步:设置 Google Cloud 存储区。
  • 第 2 步:设置 Cloud Identity and Access Management (Cloud IAM) 角色。
  • 第 3 步:启用 Security Command Center。
  • 第 4 步:启用 Cloud DLP。
  • 第 5 步:启用 Cloud DLP 作为 Security Command Center 的安全来源。

设置这些组件的步骤将在以下几个部分中介绍。

第 1 步:设置 Google Cloud 存储区

选择是要扫描您自己的 Google Cloud 存储区还是示例存储区。本主题针对这两种场景提供了说明。

扫描您自己的数据

如果要扫描您自己现有的 Cloud Storage 存储分区、BigQuery 表格或 Datastore 种类,请先打开存储区所在的项目。在后续步骤中,您将为此项目及其组织启用 Security Command Center 和 Cloud DLP。

打开要使用的项目后,继续设置一些 Cloud IAM 角色

扫描样本数据

如果要扫描“虚拟”或测试数据集,请先确保您已设置结算帐号,然后创建一个新项目。为完成此步骤,您必须拥有 Cloud IAM 的 Project Creator 角色。详细了解 Cloud IAM 角色

  1. 如果您没有结算帐号,请设置一个。
    了解如何启用结算功能
  2. 转到 Cloud Console 中的新建项目页面
    “新建项目”页面
  3. 结算帐号下拉列表中,选择项目的结算帐号。
  4. 组织下拉列表中,选择要在其中创建项目的组织。
  5. 位置下拉列表中,选择要在其中创建项目的组织或文件夹。

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

  1. 转到 GitHub 上的 Cloud Functions 教程存储区
  2. 点击克隆或下载,然后点击下载 ZIP
  3. 解压缩下载的 ZIP 文件。
  4. 转到 Cloud Console 中的 Storage 浏览器页面。
    转到 Cloud Storage
  5. 点击创建存储分区
  6. 创建存储分区页面上,为存储分区指定唯一的名称,然后点击创建
  7. 存储分区详细信息页面上,点击上传文件夹
  8. 转到之前解压缩的 dlp-cloud-functions-tutorials-master 文件夹,将其打开,然后选择 sample_data 文件夹。 点击上传按钮将该文件夹的内容上传到 Cloud Storage。

    新的 Cloud Storage 存储分区.

请记下您为 Cloud Storage 存储分区指定的名称,以备后用。文件上传完成后,您可以继续下一步操作。

第 2 步:设置 Cloud IAM 角色

如需使用 Cloud DLP 将扫描结果发送到 Security Command Center,您需要 Security Center AdminDLP Jobs Editor Cloud IAM 角色。本部分介绍如何添加这些角色。为完成此部分,您必须拥有 Organization Administrator Cloud IAM 角色。

  1. 转到 Cloud Console 的 IAM 和管理页面。

    转到“IAM 和管理”页面

  2. 成员下,点击用户名旁边的修改
  3. 修改权限面板上,点击添加其他角色
  4. 选择角色下拉列表中,选择 Security Command Center > Security Center Admin
  5. 接下来,从同一下拉列表中选择 Cloud DLP > DLP Jobs Editor,然后点击保存

您现在拥有组织的 DLP Jobs Editor 和 Security Center Admin 角色。拥有了这些角色后,您便能够完成本主题其余部分的任务。

第 3 步:启用 Security Command Center

  1. 转到 Cloud Console 的 Security Command Center 页面。
    转到 Security Command Center 页面
  2. 组织下拉列表中,选择要为其启用 Cloud DLP 的组织,然后点击选择
  3. 在显示的启用资源发现页面上,选择当前和未来的所有项目,然后点击启用。随即将显示一条消息,说明 Cloud DLP 正在启动资源发现进程。

资源发现完成后,Cloud DLP 将显示您支持的 Google Cloud 资源。资源发现过程可能需要几分钟时间,您可能需要刷新页面才能显示发现的资源。

如需详细了解如何启用 Security Command Center,请参阅 Security Command Center 文档

第 4 步:启用 Cloud DLP

为要扫描的项目启用 Cloud DLP。该项目必须位于您已为其启用 Security Command Center 的同一组织内。如需使用 Cloud Console 启用 Cloud DLP,请执行以下操作:

  1. 转到 Cloud Console 页面,注册应用以使用 Cloud DLP

    转到“注册应用以使用 Cloud DLP”页面

  2. 创建项目下拉列表中,选择本指南第 1 步中的项目。项目必须包含要扫描的 Cloud Storage 存储分区、BigQuery 表格或 Datastore 种类。
  3. 选择要使用的项目后,点击继续

您的项目现已启用 Cloud DLP。

第 5 步:启用 Cloud DLP 作为 Security Command Center 的安全来源

如需在 Security Command Center 信息中心查看 Cloud DLP 扫描结果,请启用 Cloud DLP 作为安全来源:

  1. 转到 Cloud Console 的 Security Command Center 安全来源页面。
    转到“安全来源”页面
  2. 选择要为其启用 Cloud DLP 作为安全来源的组织。
  3. 已启用下,点击以启用 Cloud DLP 数据发现

Cloud DLP 的结果会显示在 Security Command Center 信息中心的“发现结果”页面上。如需详细了解如何管理 Security Command Center 安全来源,请参阅 Security Command Center 文档

配置并运行 Cloud DLP 检查扫描

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

您在此配置的检查作业会指示 Cloud DLP 扫描存储在 Cloud Storage 中的样本数据(如本页面上文设置存储区步骤所述),或存储在 Cloud Storage、Datastore 或 BigQuery 中的您自己的数据。您指定的作业配置也是您指示 Cloud DLP 将其扫描结果保存到 Security Command Center 的位置。

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

  1. 转到 Cloud Console

    转到 Cloud Console

  2. 点击选择

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

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

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

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

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

    打开 API Explorer

  2. 父级框中,输入以下内容,其中 project-id 是您在上面第 1 步中记下的项目 ID:

    projects/project-id

根据您使用的是 Cloud Storage 存储分区中的样本数据,还是存储在 Cloud Storage、Datastore 或 BigQuery 中的您自己的数据,将请求正文字段的内容替换为下面对应的 JSON。

样本数据

如果您创建了一个 Cloud Storage 存储分区来存储样本数据(如上文设置存储区步骤所述),请复制以下 JSON,然后将其粘贴到请求正文字段中。将 bucket-name 替换为您为 Cloud Storage 存储分区指定的名称:

{
  "inspectJob":{
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://bucket-name/**"
        }
      }
    },
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"EMAIL_ADDRESS"
        },
        {
          "name":"PERSON_NAME"
        },
        {
          "name": "LOCATION"
        },
        {
          "name":"PHONE_NUMBER"
        }
      ],
      "includeQuote":true,
      "minLikelihood":"UNLIKELY",
      "limits":{
        "maxFindingsPerRequest":100
      }
    },
    "actions":[
      {
        "publishSummaryToCscc":{

        }
      }
    ]
  }
}

Cloud Storage 数据

如需扫描您自己的 Cloud Storage 存储分区,请复制以下 JSON 并将其粘贴到请求正文字段中。

path-name 替换为您要扫描的位置的路径。如需以递归方式扫描,请用两个星号结束路径,例如 gs://path_to_files/**。如仅需扫描某个特定目录(不扫描更深层次的目录),请用一个星号结束路径,例如 gs://path_to_files/*

{
  "inspectJob":{
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://path-name"
        }
      }
    },
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"EMAIL_ADDRESS"
        },
        {
          "name":"PERSON_NAME"
        },
        {
          "name": "LOCATION"
        },
        {
          "name":"PHONE_NUMBER"
        }
      ],
      "includeQuote":true,
      "minLikelihood":"UNLIKELY",
      "limits":{
        "maxFindingsPerRequest":100
      }
    },
    "actions":[
      {
        "publishSummaryToCscc":{

        }
      }
    ]
  }
}

如需详细了解可用的扫描选项,请参阅检查存储空间和数据库中是否存在敏感数据

Datastore 数据

如需扫描保存在 Datastore 中的您自己的数据,请复制以下 JSON 并将其粘贴到请求正文字段中。

datastore-kind 替换为 Datastore 种类的名称。您也可以分别用命名空间和项目标识符替换 namespace-idproject-id,或者如果需要,可以彻底移除 "partitionID"

{
  "inspectJob":{
    "storageConfig":{
      "datastoreOptions":{
        "kind":{
          "name":"datastore-kind"
        },
        "partitionId":{
          "namespaceId":"namespace-id",
          "projectId":"project-id"
        }
      }
    },
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"EMAIL_ADDRESS"
        },
        {
          "name":"PERSON_NAME"
        },
        {
          "name": "LOCATION"
        },
        {
          "name":"PHONE_NUMBER"
        }
      ],
      "includeQuote":true,
      "minLikelihood":"UNLIKELY",
      "limits":{
        "maxFindingsPerRequest":100
      }
    },
    "actions":[
      {
        "publishSummaryToCscc":{

        }
      }
    ]
  }
}

如需详细了解可用的扫描选项,请参阅检查存储空间和数据库中是否存在敏感数据

BigQuery 数据

如需扫描您自己的 BigQuery 表格,请复制以下 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": "LOCATION"
        },
        {
          "name": "PHONE_NUMBER"
        }
      ],
      "includeQuote": true,
      "minLikelihood": "UNLIKELY",
      "limits":
      {
        "maxFindingsPerRequest": 100
      }
    },
    "actions":
    [
      {
        "publishSummaryToCscc":
        {
        }
      }
    ]
  }
}

如需详细了解可用的扫描选项,请参阅检查存储空间和数据库中是否存在敏感数据

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

按照上述步骤配置作业后,点击执行以发送请求。如果请求成功,响应将显示在请求下方,并带有成功代码和 JSON 对象,该对象指示您刚刚创建的 Cloud DLP 作业的状态。

查看 Cloud DLP 检查扫描的状态

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

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

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

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

    打开 API Explorer

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

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

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

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

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

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

在 Security Command Center 中查看 Cloud DLP 扫描结果

由于您已指示 Cloud DLP 将其检查扫描作业结果发送到 Security Command Center,因此您现在可以在 Security Command Center 信息中心查看扫描摘要:

  1. 转到 Cloud Console 的 Security Command Center 页面。
    转到 Security Command Center 页面
  2. 选择您之前为其启用了 Security Command Center 的组织。

Security Command Center 主信息中心的以下屏幕截图显示了两张卡片,其中列出了 Cloud DLP 发现结果摘要Cloud DLP 数据发现

Cloud SCC 中的 DLP 详细信息.

请注意,其中未列出 LOCATION infoType。这是因为 Cloud DLP 上没有 LOCATION infoType 的匹配项。 Cloud DLP 发现结果在发现结果摘要中与其他数据一起汇总和显示,在 Cloud DLP 数据发现下则按信息类型列出。

发现结果摘要

如果 Cloud DLP 收到了任何发现结果,会显示带有源 Cloud DLP 数据发现的行。如果该行未显示在发现结果摘要中,则说明 Cloud DLP 未向 Security Command Center 发送任何发现结果。

Cloud DLP 数据发现

任何与扫描数据成功匹配的 infoTypes 都会列在发现结果列中。计数列中的数字与找到与该 infoType 匹配的数据的扫描数相对应。如果作业扫描多个源,则计数可能包括所扫描的每个源。

如需查看特定类别的各个发现结果,请点击某一行,例如 EMAIL_ADDRESS。在每次扫描的列表中,至少会在发现结果标签下显示一个 EMAIL_ADDRESS,如以下屏幕截图所示:

CSCC 中的 DLP 详细信息.

如需显示有关特定发现结果的详细信息,请点击其中一个 EMAIL_ADDRESS 行以查看详细信息页面,如以下屏幕截图所示:

CSCC 中的 DLP 详细信息.

清理

为避免因本主题中使用的资源导致您的 Google Cloud 帐号产生费用,请执行以下操作:

删除项目

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

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

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

    转到“项目”页面

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

如果使用此方法删除项目,会一同删除您创建的 Cloud DLP 作业和 Cloud Storage 存储分区,不用再执行以下部分中的操作说明。

删除 Cloud DLP 作业

如果您扫描的是自己的数据,则只需删除刚刚创建的检查扫描作业:

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

    打开 API Explorer

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

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

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

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

    打开 API Explorer

  2. 父级框中,按以下格式输入项目标识符:

    projects/project-id

  3. 点击执行

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

删除 Cloud Storage 存储分区

如果您创建了一个新的 Cloud Storage 存储分区来保存样本数据,请删除该存储分区:

  1. 打开 Cloud Storage 浏览器

    打开 Cloud Storage

  2. 在 Cloud Storage 浏览器中,选中您创建的存储分区名称旁边的复选框,然后点击删除

后续步骤