查看虚拟机管理器数据

本主题介绍如何配置 Cloud Asset Inventory 和虚拟机管理器的操作系统清单,以便您可以查看虚拟机的运行时信息。

准备工作

在开始之前,请完成以下步骤。

  1. 对要运行 API 命令的项目启用 Cloud Asset Inventory API。

    启用 Cloud Asset Inventory API

  2. 配置使用 gcloud CLIAPI 调用 Cloud Asset Inventory API 所需的权限。

  3. 完成以下步骤以设置您的环境。

    gcloud CLI

    如需设置环境以使用 gcloud CLI 调用 Cloud Asset Inventory API,请在本地客户端上安装 Google Cloud CLI

    REST

    如需设置环境以使用 curl 命令调用 Cloud Asset Inventory API,请完成以下步骤。

    1. 确认您可以使用 curl 命令。

    2. 请务必向您的帐号授予项目、文件夹或组织的以下角色之一。

      • Cloud Asset Viewer 角色 (roles/cloudasset.viewer)

      • Owner 基本角色 (roles/owner)

启用操作系统清点

如需启用虚拟机管理器套件中的操作系统清点,请完成设置虚拟机管理器中的相关步骤。

设置权限

确保您的账号对包含您要导出的资源的根资源拥有 cloudasset.assets.exportOSInventories 权限。您可以单独授予此权限,也可以为根资源授予以下角色之一。

  • Cloud Asset Viewer (roles/cloudasset.viewer) 角色

  • Cloud Asset Owner (roles/cloudasset.owner) 角色

详细了解如何配置权限Cloud Asset Inventory IAM 角色

将虚拟机管理器数据导出到 BigQuery

如需导出给定时间戳的 OS Inventory 快照,请使用以下命令。

gcloud

项目

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --snapshot-time="SNAPSHOT_TIME" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

请提供以下值:

  • PROJECT_ID:要导出其元数据的项目的 ID。

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。该值必须是当前时间或过去的时间。默认情况下,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

其他标志:

  • --output-bigquery-force:覆盖目标表(如果存在)。

文件夹

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --snapshot-time="SNAPSHOT_TIME" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

请提供以下值:

  • FOLDER_ID:要导出其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。该值必须是当前时间或过去的时间。默认情况下,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

其他标志:

  • --output-bigquery-force:覆盖目标表(如果存在)。

组织

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --snapshot-time="SNAPSHOT_TIME" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

请提供以下值:

  • ORGANIZATION_ID:要导出其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。该值必须是当前时间或过去的时间。默认情况下,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

其他标志:

  • --output-bigquery-force:覆盖目标表(如果存在)。

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "OS_INVENTORY",
          "readTime": "SNAPSHOT_TIME",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "force": true
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

请提供以下值:

  • BILLING_PROJECT_ID:可选。默认的 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需进行此操作。详细了解结算项目

  • SNAPSHOT_TIME:可选。获取资产快照的时间,采用 RFC 3339 格式。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则截取当前时间的快照。

  • PROJECT_ID:BigQuery 表所属项目的 ID。

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

如需将虚拟机管理器漏洞报告从项目导出到 BigQuery,请使用以下命令。

gcloud

项目

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

请提供以下值:

  • PROJECT_ID:要导出其元数据的项目的 ID。

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

其他标志:

  • --output-bigquery-force:覆盖目标表(如果存在)。

文件夹

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

请提供以下值:

  • FOLDER_ID:要导出其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

其他标志:

  • --output-bigquery-force:覆盖目标表(如果存在)。

组织

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

请提供以下值:

  • ORGANIZATION_ID:要导出其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

其他标志:

  • --output-bigquery-force:覆盖目标表(如果存在)。

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": ["osconfig.googleapis.com/VulnerabilityReport"],
          "contentType": "RESOURCE",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "force": true
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

请提供以下值:

  • BILLING_PROJECT_ID:可选。默认的 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。如果您已切换到具有 gcloud config set project 的结算项目,则无需进行此操作。详细了解结算项目

  • PROJECT_ID:BigQuery 表所属项目的 ID。

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

其他参数:

  • "force": true:覆盖目标表(如果存在)。

现有表

不支持将导出输出附加到现有表。目标表必须为空,或必须覆盖目标表。如需覆盖它,请将 --output-bigquery-force 标志与 gcloud CLI 搭配使用,或将 force 与 REST API 搭配使用。

如果您尝试向输出表写入数据,系统会返回 400 响应以及消息 Request contains an invalid argument

将虚拟机管理器数据导出至 Cloud Storage

如需导出项目中所有虚拟机实例的虚拟机管理器清单数据,请使用以下 gcloud CLI 命令或 Cloud Asset Inventory API。

gcloud

项目

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --output-path="gs://BUCKET_NAME/FILENAME"

请提供以下值:

  • PROJECT_ID:要导出其元数据的项目的 ID。

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 具有向您的 Cloud Storage 存储桶写入数据的权限。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

文件夹

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --output-path="gs://BUCKET_NAME/FILENAME"

请提供以下值:

  • FOLDER_ID:要导出其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 具有向您的 Cloud Storage 存储桶写入数据的权限。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

组织

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --output-path="gs://BUCKET_NAME/FILENAME"

请提供以下值:

  • ORGANIZATION_ID:要导出其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 具有向您的 Cloud Storage 存储桶写入数据的权限。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "OS_INVENTORY",
          "outputConfig": {
            "gcsDestination": {
              "uri": "gs://BUCKET_NAME/FILENAME"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

请提供以下值:

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权向您的 Cloud Storage 存储桶写入数据。如果您已切换到具有 gcloud config set project 的结算项目,则无需进行此操作。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

如需将虚拟机管理器漏洞报告从项目导出到 Cloud Storage,请使用以下 gcloud CLI 命令或 Cloud Asset Inventory API。

gcloud

项目

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --output-path="gs://BUCKET_NAME/FILENAME"

请提供以下值:

  • PROJECT_ID:要导出其元数据的项目的 ID。

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 具有向您的 Cloud Storage 存储桶写入数据的权限。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

文件夹

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --output-path="gs://BUCKET_NAME/FILENAME"

请提供以下值:

  • FOLDER_ID:要导出其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 具有向您的 Cloud Storage 存储桶写入数据的权限。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

组织

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --output-path="gs://BUCKET_NAME/FILENAME"

请提供以下值:

  • ORGANIZATION_ID:要导出其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 具有向您的 Cloud Storage 存储桶写入数据的权限。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": ["osconfig.googleapis.com/VulnerabilityReport"],
          "contentType": "RESOURCE",
          "outputConfig": {
            "gcsDestination": {
              "uri": "gs://BUCKET_NAME/FILENAME"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

请提供以下值:

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权向您的 Cloud Storage 存储桶写入数据。如果您已切换到具有 gcloud config set project 的结算项目,则无需进行此操作。详细了解结算项目

  • BUCKET_NAME:要写入数据的 Cloud Storage 存储桶的名称。

  • FILENAME:Cloud Storage 存储桶中要写入数据的文件。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

现有文件

如果您在尝试向存储桶写入数据时使用输出文件,系统会返回 400 响应以及消息 Request contains an invalid argument

获取虚拟机管理器数据历史记录

如需获取项目、文件夹或组织中指定虚拟机实例的所有操作系统资产清单资产的历史记录,请运行以下命令。

gcloud

项目

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME \
    --content-type=os-inventory \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • PROJECT_ID:虚拟机实例所在项目的 ID。

  • ZONE:您的虚拟机实例所在的可用区。例如 us-central1-a

  • VM_INSTANCE_NAME:虚拟机实例的名称。

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

如需获取项目中特定虚拟机的虚拟机管理器漏洞数据的历史记录,请运行以下命令:

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=//osconfig.googleapis.com/projects/PROJECT_NUMBER/locations/ZONE/instances/VM_INSTANCE_ID/vulnerabilityReport \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

文件夹

gcloud asset get-history \
    --folder=FOLDER_ID \
    --asset-names=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME \
    --content-type=os-inventory \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • FOLDER_ID:虚拟机实例所在文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • ZONE:您的虚拟机实例所在的可用区。例如 us-central1-a

  • VM_INSTANCE_NAME:虚拟机实例的名称。

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

如需获取项目中特定虚拟机的虚拟机管理器漏洞数据的历史记录,请运行以下命令:

gcloud asset get-history \
    --folder=FOLDER_ID \
    --asset-names=//osconfig.googleapis.com/projects/PROJECT_NUMBER/locations/ZONE/instances/VM_INSTANCE_ID/vulnerabilityReport \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

组织

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME \
    --content-type=os-inventory \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • ORGANIZATION_ID:虚拟机实例所在组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • ZONE:您的虚拟机实例所在的可用区。例如 us-central1-a

  • VM_INSTANCE_NAME:虚拟机实例的名称。

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

如需获取项目中特定虚拟机的虚拟机管理器漏洞数据的历史记录,请运行以下命令:

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=//osconfig.googleapis.com/projects/PROJECT_NUMBER/locations/ZONE/instances/VM_INSTANCE_ID/vulnerabilityReport \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

REST

如需获取项目中指定虚拟机实例的所有操作系统清单资产的历史记录,请运行以下命令:

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetNames": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME",
          "contentType": "OS_INVENTORY",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

请提供以下值:

  • PROJECT_ID:虚拟机实例所在项目的 ID。

  • ZONE:您的虚拟机实例所在的可用区。例如 us-central1-a

  • VM_INSTANCE_NAME:您的虚拟机实例的名称。

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

如需获取项目中特定虚拟机的虚拟机管理器漏洞数据的历史记录,请运行以下命令:

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetNames": "//osconfig.googleapis.com/projects/PROJECT_ID/locations/ZONE/instances/VM_INSTANCE_NAME/vulnerabilityReport",
          "contentType": "RESOURCE",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

使用 Pub/Sub 监控虚拟机管理器数据更改

创建 Pub/Sub 主题后,运行以下命令以监控虚拟机管理器更改。

gcloud

项目

如需创建 Feed 以监控安装了 Windows 操作系统的虚拟机,请运行以下命令:

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=compute.googleapis.com/Instance \
    --content-type=os-inventory \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""

请提供以下值:

  • FEED_ID:唯一的素材资源 Feed 标识符。

  • PROJECT_ID:要将其元数据发送到 Feed 的项目的 ID。

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权管理您的 Pub/Sub 主题。详细了解结算项目

  • TOPIC_ID:要将通知发布到的 Pub/Sub 主题的 ID。

  • CONDITION_TITLE:可选。要应用于 Feed 的条件的标题。

  • CONDITION_DESCRIPTION:可选。要应用于 Feed 的条件的说明。

如需创建 Feed 以监控项目中的虚拟机漏洞数据,请运行以下命令:

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID"

文件夹

如需创建 Feed 以监控安装了 Windows 操作系统的虚拟机,请运行以下命令:

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=compute.googleapis.com/Instance \
    --content-type=os-inventory \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""

请提供以下值:

  • FEED_ID:唯一的素材资源 Feed 标识符。

  • FOLDER_ID:要将其元数据发送到 Feed 的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权管理您的 Pub/Sub 主题。详细了解结算项目

  • TOPIC_ID:要将通知发布到的 Pub/Sub 主题的 ID。

  • CONDITION_TITLE:可选。要应用于 Feed 的条件的标题。

  • CONDITION_DESCRIPTION:可选。要应用于 Feed 的条件的说明。

如需创建 Feed 以监控项目中的虚拟机漏洞数据,请运行以下命令:

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID"

组织

如需创建 Feed 以监控安装了 Windows 操作系统的虚拟机,请运行以下命令:

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=compute.googleapis.com/Instance \
    --content-type=os-inventory \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""

请提供以下值:

  • FEED_ID:唯一的素材资源 Feed 标识符。

  • ORGANIZATION_ID:要将元数据发送到 Feed 的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权管理您的 Pub/Sub 主题。详细了解结算项目

  • TOPIC_ID:要将通知发布到的 Pub/Sub 主题的 ID。

  • CONDITION_TITLE:可选。要应用于 Feed 的条件的标题。

  • CONDITION_DESCRIPTION:可选。要应用于 Feed 的条件的说明。

如需创建 Feed 以监控项目中的虚拟机漏洞数据,请运行以下命令:

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID"

REST

如需创建 Feed 以监控安装了 Windows 操作系统的虚拟机,请运行以下命令:

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "feedId": "FEED_ID",
          "feed": {
            "assetTypes": ["compute.googleapis.com/Instance"],
            "contentType": "OS_INVENTORY",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            },
            "condition": {
              "title": "CONDITION_TITLE",
              "description": "CONDITION_DESCRIPTION",
              "expression": "temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

请提供以下值:

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权管理您的 Pub/Sub 主题。详细了解结算项目

  • FEED_ID:唯一的素材资源 Feed 标识符。

  • PROJECT_ID:Pub/Sub 主题所在项目的 ID。

  • TOPIC_ID:要将通知发布到的 Pub/Sub 主题的 ID。

  • CONDITION_TITLE:可选。要应用于 Feed 的条件的标题。

  • CONDITION_DESCRIPTION:可选。要应用于 Feed 的条件的说明。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

如需创建用于监控虚拟机漏洞数据的 Feed,请运行以下命令:

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "feedId": "FEED_ID",
          "feed": {
            "assetTypes": ["osconfig.googleapis.com/VulnerabilityReport"],
            "contentType": "RESOURCE",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

如需了解详情,请参阅监控资产更改