导出 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. 将过滤条件应用于 发现结果查询。有关创建过滤器的详细信息,请参阅 查找和查看特定的发现结果

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

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

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

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

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

配置的数据将保存到您指定的 Cloud Storage 存储桶中。

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

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

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

    转至“Storage 浏览器”

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

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

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

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

将发现结果导出为 CSV 文件

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

您最多可以将 1,000 个发现结果直接下载到您的工作站。如果 超过 1,000 个,系统会提示您优化查询, 隐藏部分结果。或者,您也可以将数据导出到 Cloud Storage 存储桶

发现结果记录会使用一组默认列导出,这些列可能不会 与您在控制台中看到的内容一致。也就是说,隐藏或显示列 更改要导出哪些列。同样,更改每页显示的行数(您可以在 Google Cloud 控制台中执行此操作)对导出的内容没有影响。

如需了解如何将发现结果导出到 CSV 文件中,请点击以下内容的标签页: 您使用的控制台

Google Cloud 控制台

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

    前往“发现结果”页面

  2. 选择您的 Google Cloud 项目或组织。
  3. 可选:如需优化要导出的发现结果的选择,请应用过滤条件
  4. 点击 导出 > CSV。该 CSV 文件将下载到您的本地工作站。

安全运维控制台

  1. 在 Security Operations 控制台中,前往发现结果页面。
    https://CUSTOMER_SUBDOMAIN.backstory.chronicle.security/posture/findings
    

    CUSTOMER_SUBDOMAIN 替换为您的客户专用标识符。

  2. 可选:如需优化要导出的发现结果的选择,请应用过滤条件
  3. 点击导出 > CSV。CSV 文件将下载到您的本地工作站。

将资产导出为 CSV 文件

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

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

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

    前往“素材资源”页面

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

  3. 使用快速过滤条件面板或资产结果面板的过滤条件字段来选择需要导出的资产。更多信息 有关如何过滤资产的信息,请参见 过滤资产

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

使用 API 方法导出数据

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

使用 API 方法导出资产数据

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

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

之前激活 Security Command Center 的用户在被移除之前 2023 年 6 月 26 日可使用 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. 可选:如果为 Security Command Center 启用了数据驻留,请根据需要更改数据位置。

    如需更改数据位置,请点击操作栏中的位置选择器。

    系统随即会显示营业地点列表。选择新位置。

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

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

      您可以通过 Select filter 对话框选择支持的发现结果 属性和值。

      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. 转到 Google Cloud 控制台中的 Pub/Sub 页面。

    转到“Pub/Sub”

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

  9. 前往消息标签页,然后从列表中选择您的订阅以查看发现结果通知。

  10. 可选:点击拉取以刷新消息。

管理连续导出

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

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

    转至“设置”

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

  3. 可选:如果启用了数据驻留 ,然后根据需要更改数据位置。

    要更改数据位置,请点击操作栏中的位置选择器。

    系统随即会显示营业地点列表。选择新位置。

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

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

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

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

修改持续导出内容

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

删除连续导出

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

后续步骤

详细了解 查找通知