导出 Security Command Center 数据

本页面介绍导出 Security Command Center 数据(包括资产、发现结果和安全标记)的两种方法:

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Security Command Center API。

您还可以将发现结果流式传输到 BigQuery。如需更多信息 请参阅将发现结果流式传输到 BigQuery 以进行分析

一次性导出

通过一次性导出,您可以手动转移和下载当前及历史发现结果和资产。

对于发现结果,您可以使用 Google Cloud 控制台转移数据 导出到 Cloud Storage 存储桶您还可以 将有限数量的发现结果以 CSV 格式下载到您的工作站。

对于资产,您可以从 Google Cloud 控制台下载数据 以 CSV 文件格式下载到本地工作站。

权限

要执行一次性导出,您需要具有以下角色:

  • Identity and Access Management (IAM) 角色 Security Center Admin Viewer (roles/securitycenter.adminViewer) 或具有以下权限的任何角色:

    • resourcemanager.organizations.get(只有组织级 Security Command Center 激活需要此角色)
    • resourcemanager.projects.get(只有项目级 Security Command Center 激活需要此角色)
    • securitycenter.assets.group
    • securitycenter.assets.list
    • securitycenter.findings.group
    • securitycenter.findings.list
    • securitycenter.sources.get
    • securitycenter.sources.list
    • securitycenter.userinterfacemetadata.get
  • Storage Admin 角色,可让您将数据存储在 Cloud Storage 存储分区中。

Security Command Center 的 IAM 角色可以在组织、文件夹或项目级层授予。您能否查看、修改、创建或更新发现结果、资产和安全来源,取决于您获授予的访问权限级别。如需详细了解 Security Command Center 角色,请参阅访问权限控制

数据驻留和一次性导出

您不能包含任何受数据驻留约束的数据 在一次性导出到 Cloud Storage 的过滤器中设置。

如果您在发现结果过滤条件中指定包含受控数据的属性, Security Command Center 返回错误消息 。

使用 Google Cloud 控制台导出数据

使用 Google Cloud 控制台,您可以执行以下操作:

将发现结果导出到 Cloud Storage 存储桶

本部分介绍如何将 Security Command Center 数据导出到 Cloud Storage 存储桶。点击 Google Cloud 控制台中的发现结果页面上的导出后,Security Command Center 会自动获取写入 Cloud Storage 存储桶的凭据或权限。

发现结果会在单独的操作中导出。您可以导出 JSON 文件 JSONL 文件,或将 CSV 文件复制到现有 Cloud Storage 存储桶,或者创建 存储桶。您可以导出当前所有发现结果,或者 选择导出前要使用的过滤条件。

您无法将发现结果导出到具有 保留政策设置完成的。

  1. 进入 Google Cloud 控制台中的发现结果页面。

    转至“发现结果”

  2. 在工具栏上,点击 项目选择器,然后选择您的项目、文件夹或组织。

  3. 将过滤条件应用于 发现结果查询。如需详细了解 如需创建过滤条件,请参阅在 Google Cloud 控制台中创建或修改发现结果查询

  4. 创建完过滤条件后,点击导出,然后在一次性下,点击 Cloud Storage

  5. 导出页面上配置导出:

    1. 导出到部分,指定以下字段:
      1. 项目名称字段中,指定包含 Cloud Storage 存储桶。
      2. 导出路径字段中(仅在您指定 请点击浏览
      3. 选择对象面板上,选择现有的 Cloud Storage 存储分区或创建存储分区
      4. 选择或创建存储桶后,在文件名下,输入 导出文件的名称。
      5. 点击选择
    2. 导出条件部分,指定以下字段:
      1. 点击结果分组依据,然后选择所需方式 对导出数据进行分组。
      2. 点击格式字段,然后选择 JSONJSONLCSV
      3. 点击时间范围字段,然后选择 导出发现结果。
    3. 发现结果查询部分中,确认查询内容与您相同 预期。
    4. 在查询下方,确认匹配发现结果的数量和类型 符合你的预期
    5. 点击导出

    如果您选择存储桶中的现有文件,则会显示确认覆盖对话框。

    • 要覆盖现有文件,请点击确认
    • 要更改写入文件,请点击取消,然后点击导出路径框中的浏览,并选择或创建不同的文件。

系统会将已配置的数据保存到 。

从 Cloud Storage 存储桶下载导出数据

如需下载导出的 JSON、JSONL 或 CSV 数据,请执行以下步骤:

  1. 转到 Google Cloud 控制台中的 Storage 浏览器页面。

    转至“Storage 浏览器”

  2. 选择您的项目,然后点击向其中导出了数据的存储分区。

  3. 选中导出文件旁边的复选框,然后点击下载

  4. 保存文件对话框中,选择要保存文件的位置,然后点击保存

JSON、JSONL 或 CSV 文件将下载到您指定的位置。

将发现结果导出为 CSV 文件

如需配置导出,您可以按类别、严重级别和其他属性过滤发现结果。与过滤条件匹配的所有发现结果都包含在 CSV 中 文件。

您最多可以将 1,000 个发现结果直接下载到您的工作站。 如果发现结果数量超过 1,000,系统会自动将您重定向 将发现结果导出到 Cloud Storage 页面,在其中执行以下操作: 将数据导出到 Cloud Storage 存储桶。

发现结果记录与一组默认列一起导出,可能与您在 Google Cloud 控制台中看到的内容不匹配。也就是说,隐藏或取消隐藏 使用 Column 实现 显示选项不会更改要导出哪些列。同样,更改每页行数值对导出的内容没有影响。

如需将发现结果导出为 CSV 文件,请执行以下步骤:

  1. 在 Google Cloud 控制台的 Security Command Center 页面上,前往 发现结果页面。

    转至“发现结果”

  2. 在工具栏上,点击 项目选择器,然后选择您的项目、文件夹或组织。

  3. 可选:如需缩小要导出的发现结果的范围,请应用过滤条件

  4. 点击 导出,然后点击 CSV。Security Command Center 开始导出发现结果。

    导出完成后,工具栏上会显示一条通知。

  5. 在工具栏中,点击通知图标。

  6. 已将导出另存为 CSV 通知上,点击下载。CSV 文件将下载到您的本地工作站。

将资产导出为 CSV 文件

您可以从 Google Cloud 控制台的资产页面中将资产数据下载为 CSV 文件。

如需将资产数据下载为 CSV 文件,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的资产页面。

    <ph type="x-smartling-placeholder"></ph> 前往“素材资源”

  2. 在工具栏上,点击 项目选择器,然后选择您的项目、文件夹或组织。

  3. 使用快速过滤条件面板或资产结果面板的过滤条件字段来选择需要导出的资产。如需详细了解如何过滤资产,请参阅过滤资产

  4. 在显示的资产上方,点击导出,然后点击下载 CSV。结果面板中的资产数据会下载到工作站。

使用 API 方法导出数据

您可以使用 Security Command Center API 将资产、发现结果和安全标记导出到 Cloud Storage 存储桶或本地工作站。

使用 API 方法导出资产数据

如需导出或列出资产数据,请使用 Cloud Asset Inventory API。对于 详情请参阅导出资产历史记录和元数据

Security Command Center API 的资产方法和字段已弃用, 将于 2024 年 6 月 26 日当天或之后移除。

移除之前,在 2023 年 6 月 26 日之前激活了 Security Command Center 的用户可以使用 Security Command Center API 的资产方法列出和导出资产数据,但这些方法仅支持 Security Command Center 支持的资产。

如需了解如何使用已弃用的资产 API 方法,请参阅列出资产

使用 Security Command Center API 导出发现结果数据

如需使用 Security Command Center API 导出发现结果,请按照有关列出安全发现结果的指南操作,然后下载或导出 API 响应。

如需列出包含任何附加安全标记的发现结果,您可以使用 以下 API 方法:

这些方法会以 JSON 格式返回发现结果及其完整的属性、特性和关联标记。如果您的应用需要其他格式的数据,则需要编写自定义代码来转换 JSON 输出。

如果您在 groupBy 字段中指定值,则可以使用以下方法:

GroupFindings 方法会返回组织的发现结果列表,按指定的属性分组。

使用 gcloud CLI 导出发现结果

在 Cloud Shell 中使用 Google Cloud CLI 命令导出 导出到 Cloud Storage 存储桶,请按以下步骤操作:

  1. 打开 Cloud Shell。

    打开 Cloud Shell

  2. 如需将发现结果写入文件,请将输出字符串添加到 用于列出发现结果的 gcloud CLI 命令。

    例如,以下命令将列出的发现结果存储在名为 FINDINGS.txt 的文本文件中。

     gcloud scc findings list PARENT_ID --source=SOURCE_ID \
       --location=locations/LOCATION --filter="FILTER" > FINDINGS.txt
    

    请替换以下内容:

    • FILTER:可选表达式,用于仅输出与过滤表达式匹配的发现结果列表。

      • LOCATION:如果数据驻留为 指定 Security Command Center 位置 发现结果的存储位置。

        如果未启用数据驻留,请指定 --location 标志 使用 Security Command Center API v2 列出发现结果,以及 该标志的唯一有效值是 global

    • PARENT_ID:以下任意父级资源的 ID:

      • 组织,指定为 organizations/ORGANIZATION_IDORGANIZATION_ID
      • 文件夹,指定为 folders/FOLDER_ID
      • 项目,指定为 projects/PROJECT_ID
    • SOURCE_ID:发现结果提供商的来源 ID。 如需查找来源 ID,请参阅获取来源 ID

    • FINDINGS.txt:用于存储发现结果列表的目标文件的名称和扩展名。

  3. FINDINGS.txt 复制到您的 Cloud Storage 存储分区。

    gcloud storage cp FINDINGS.txt gs://BUCKET_NAME

    BUCKET_NAME 替换为您的存储分区名称。

  4. 如需将 FINDINGS.txt 保存到您的本地工作站(而不是 Cloud Storage 存储桶),请运行以下命令:

    cloudshell download FINDINGS.txt

持续导出

持续导出功能可简化将 Security Command Center 发现结果自动导出到 Pub/Sub 的过程。新发现结果写入时,它们会近乎实时地自动导出到指定的 Pub/Sub 主题,使您能够将其集成到现有工作流中。

如需了解有关 Pub/Sub 的更多信息,请参见什么是 Pub/Sub

持续导出与发现结果通知

Security Command Center 允许您使用 Security Command Center API 为 Pub/Sub 设置发现结果通知。此 API 要求您使用 Google Cloud CLI 设置 Pub/Sub 主题,创建发现结果过滤条件,以及创建 NotificationConfigs 文件(包含发送通知的配置设置)。持续导出会提供相同的功能, 使用 Google Cloud 控制台可以简化导出创建流程。

权限

如需创建和管理持续导出,您需要以下角色之一。

  • roles/securitycenter.adminEditor
  • roles/securitycenter.adminViewer

您也可以使用具有以下权限的任何角色:

  • 如需查看或发布 Pub/Sub 主题:

    • pubsub.topics.publish
    • pubsub.topics.list
  • 如需查看持续导出页面:

    • securitycenter.notificationconfig.get
    • securitycenter.notificationconfig.list
  • 如需管理持续导出,请执行以下操作:

    • securitycenter.notificationconfig.create
    • securitycenter.notificationconfig.update
    • securitycenter.notificationconfig.delete

如需详细了解 Security Command Center 角色,请参阅访问权限控制

数据驻留和持续导出

如果为数据驻留 启用 Security Command Center 时, 持续导出到 Pub/Sub(notificationConfig 项资源)是主题 并存储在 Security Command Center 位置 您选择的代码。

如需将 Security Command Center 位置中的发现结果导出到 Pub/Sub,您必须配置 与发现结果在同一 Security Command Center 位置。

因为用于连续测试的 导出内容可包含受驻留控制措施约束的数据, 请务必先指定正确的位置,然后再创建它们。 Security Command Center 不会限制您创建的位置 导出的数据

持续导出只会存储在 由其创建,无法在其他位置查看或修改。

创建持续导出后,您将无法更改 其位置。要更改位置,您需要删除 持续导出,并在新位置重新创建它。

如需使用 API 调用检索持续导出内容, 您需要在 notificationConfig。例如:

GET https://securitycenter.googleapis.com/v2/{name=organizations/123/locations/eu/notificationConfigs/my-pubsub-export-01}

同样,如需检索持续导出,使用 gcloud CLI,您需要指定位置 添加到配置的完整资源名称中,或使用 --locations 标记。例如:

gcloud scc notifications describe myContinuousExport organizations/123 \
    --location=locations/us

创建持续导出到 Pub/Sub

借助持续导出功能,您可以将所有未来的所有发现结果自动导出到 Pub/Sub,或者创建过滤条件以导出符合特定条件的未来发现结果。您可以按类别、来源、资产类型、安全标记、严重程度、状态和其他变量来过滤发现结果。

您的组织最多可以创建 500 个持续导出。

要为 Pub/Sub 创建导出作业,请执行以下操作:

  1. 转到 Google Cloud 控制台中的 Security Command Center 发现结果页面。

    转至“发现结果”

  2. 在工具栏上,点击 项目选择器,然后选择您的项目、文件夹或组织。

  3. 如果启用了数据驻留支持,则位于项目正下方 选择器,选择数据驻留位置。例如:

    位置选择器的屏幕截图

  4. 发现结果查询结果字段中,选择要导出的发现结果 使用以下任一方法:

    • 通过点击添加过滤条件选择需要导出的发现结果的属性。

      选择过滤条件对话框允许您选择支持的发现结果特性和值。查询过滤条件对话框

      1. 选择发现结果特性或在搜索发现结果特性框中输入其名称。 系统会显示可用子特性的列表。
      2. 选择子特性。评估选项的选择字段显示在位于发现结果的查询结果面板中的发现结果的子特性值列表上方。
      3. 为所选子特性的值选择评估选项。如需详细了解评估选项及其使用的运算符和函数,请参阅“添加过滤条件”菜单中的查询运算符
      4. 选择应用

        对话框将会关闭,并且您的查询即会更新。

      5. 重复这些步骤,直到发现结果查询包含所需的所有特性。
    • 在查询编辑器中手动对发现结果查询进行编码。您可以使用标准 SQL 运算符 ANDOR、等于 (=)、包含 (:) 和不包含 (-) 来指定需要导出的发现结果属性和发现结果值。

      当您在查询中输入内容时,系统会显示自动补全菜单,您可以在其中选择过滤条件名称和函数。

      例如,以下查询会忽略“低”和“中”严重级别 在 prod-project 中找到了 anomalous IAM grant 项发现结果,并排除了 名称具有子字符串 compute 的资源类型:

      severity="LOW" OR severity="MEDIUM" AND category="Persistence:
      IAM Anomalous Grant" AND resource.project_display_name="prod-project"
      AND -resource.type:"compute"
      

      如需查看有关过滤发现结果的更多示例,请参阅过滤通知

  5. 查看生成的查询的准确性。要进行更改,请删除或 根据需要添加属性和过滤值。

  6. 点击刷新匹配的发现结果。表格显示了 与您的查询相符。如需详细了解如何查询发现结果,请参阅 在 Google Cloud 控制台中修改发现结果查询

  7. 点击导出,然后在连续下,点击 Pub/Sub

  8. 检查您的过滤条件以确保其正确无误,并在必要时返回发现结果页面进行修改。

  9. 持续导出名称下,为导出项输入名称。

  10. 持续导出说明下,输入导出的说明。

  11. 导出到下,选择用于导出的项目。您无法在此页面上创建项目。如需创建新项目,请参阅 创建项目

  12. Pub/Sub 主题下,选择要导出发现结果的主题。要创建主题,请执行以下操作:

    1. 选择创建主题
    2. 输入主题 ID,然后根据需要选择其他选项:
      1. 了解如何创建和管理架构
      2. 了解如何搭配使用客户管理的加密密钥 (CMEK) 和 Pub/Sub
    3. 点击创建主题
  13. 点击保存。您会看到确认并返回到发现结果页面。

  14. 按照指南创建订阅 Pub/Sub 主题。

Pub/Sub 导出配置完成。如需发布通知,系统会以 service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com 的形式为您创建一个服务账号。此服务账号会在组织级层被自动授予 roles/securitycenter.notificationServiceAgent 角色。需要此服务账号角色才能接收通知。

测试持续导出

如需确认导出作业正常,请执行以下步骤切换发现结果的活跃状态和非活动状态状态。

  1. 转到 Google Cloud 控制台中的 Security Command Center 发现结果页面。

    转至“发现结果”

  2. 点击修改查询按钮。系统会打开查询编辑器

  3. 修改查询,以便同时显示有效和无效的发现结果。以下查询会省略 state 属性,以显示被忽略的发现结果之外的所有发现结果:

    NOT mute="MUTED"

  4. 如有必要,请使用查询编辑器重新输入与要测试的导出过滤条件匹配的过滤条件变量。

  5. 点击发现结果名称旁边的复选框。

  6. 选择更改活跃状态,然后选择非活跃

  7. 重新选择标记为非活跃状态的发现结果。

  8. 选择更改活跃状态,然后选择活跃。将发送有关新的活跃发现结果的通知。

  9. 转到 Google Cloud 控制台中的 Pub/Sub 页面。

    转到“Pub/Sub”

  10. 在主题列表中,点击您的主题的名称。

  11. 选择 查看消息

  12. 消息面板中,从下拉列表中选择您的订阅以查看发现结果通知。如有必要,点击拉取以刷新消息。

管理持续导出

如需查看、修改或删除导出,请执行以下操作:

  1. 转至 Security Command Center 中的设置页面。

    转至“设置”

  2. 在工具栏上,点击 项目选择器,然后选择您的项目、文件夹或组织。

  3. 如果启用了数据驻留支持,则位于项目正下方 选择器,选择数据驻留位置。例如:

    位置选择器的屏幕截图

  4. 选择持续导出。您会看到一个持续导出列表, 项目、文件夹或组织。

设置持续导出页面上,您可以创建、查看、修改 和删除持续导出。

要查看与导出过滤条件匹配的发现结果,请执行以下操作:

  1. 持续导出页面上,选择某个导出项名称旁边的显示更多标签 ,然后点击查看相关过滤条件中。
  2. 系统随即会加载发现结果页面,其中包含与导出过滤条件匹配的结果。

修改持续导出内容

  1. 持续导出页面上,点击要查看或修改的导出作业的名称,或点击更多图标
  2. 选择修改
  3. 输入新说明、更改导出保存到的目标项目,或输入新的 Pub/Sub 主题。
  4. 完成后,点击保存

删除持续导出

  1. 持续导出页面上,点击要删除的导出的名称。
  2. 点击 删除
  3. 在该对话框中,点击删除。导出将被删除。

后续步骤

详细了解如何发现结果通知