使用 SQL 查询资产

您可以使用与 BigQuery SQL 兼容的语言查询项目、文件夹或组织中的资产。

准备工作

  1. 在您运行 Cloud Asset Inventory 命令的项目中启用 Cloud Asset Inventory API。

    启用 Cloud Asset Inventory API

  2. 确保您的账号拥有调用 Cloud Asset Inventory API 的正确角色。如需了解每种通话类型的各项权限,请参阅权限

限制

可以查询的表

您可以查询以下表格:

  • 对于 RESOURCE 内容类型,数据集中的表名称与资产类型名称相对应(假设资产类型存在)。例如,compute_googleapis_com_Instance 表包含 Compute Engine 实例元数据。

  • 对于非 RESOURCE 内容类型,数据集中的表名称与 RPC/REST 内容类型名称相对应。 例如 ACCESS_POLICY

  • 如需跨资源类型查询资源标准元数据,请使用表名称 STANDARD_METADATA。这包括除 resource.DATA 之外的所有字段,resource.DATA 针对每种资源类型都是特定的。

查询资产元数据

控制台

如需查询项目、文件夹或组织的资源元数据,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往资产库存页面上的资产查询标签页。

    前往“资产查询”

    如果未显示资产查询标签页,则您需要拥有 Security Command Center 高级层级或企业层级的访问权限,或者拥有 Gemini Cloud Assist 的访问权限。

  2. 切换到要查询的项目、文件夹或组织。
  3. 点击资产查询标签页。
  4. 如需查询资产元数据,请使用示例查询或自行构建查询:

    • 如需使用示例,请点击查询库标签页中的条目以预览查询。点击应用将该示例复制到修改查询框中,然后修改查询,或点击运行来执行查询。
    • 如需构建您自己的查询,请直接在修改查询框中输入查询文本,然后点击运行以执行查询。为了帮助您编写自己的查询,您可以点击选择表格窗格中的表格,预览其架构和内容。如需了解如何构建查询,请参阅 查询语法

    与查询匹配的媒体资源元数据会显示在查询结果标签页中。

  5. 可选:如需以 CSV 格式下载查询结果集,请点击导出

    CSV 文件的大小上限为 2 MB。如果下载请求因文件大小超出此限制而失败,系统会显示一条消息,其中包含有关导出完整结果的说明。

gcloud

gcloud asset query \
    --SCOPE \
    --statement="SQL_SELECT_QUERY" \
    --timeout="TIMEOUTs"

请提供以下值:

  • SCOPE:请使用以下某个值:

    • project=PROJECT_ID,其中 PROJECT_ID 是包含您要查询的资产的项目的 ID。
    • folder=FOLDER_ID,其中 FOLDER_ID 是包含您要查询的资源的文件夹的 ID。

      如何查找 Google Cloud 文件夹的 ID

      Google Cloud 控制台

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

      1. 前往 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器列表框。
      3. 从列表框中选择您的组织。
      4. 搜索文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

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

      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。为此,请使用顶级文件夹的 ID 运行以下命令:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organization=ORGANIZATION_ID,其中 ORGANIZATION_ID 是包含您要查询的资产的组织的 ID。

      如何查找 Google Cloud 组织的 ID

      Google Cloud 控制台

      如需查找 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))"
  • SQL_SELECT_QUERY:SQL SELECT 查询。
  • TIMEOUT:可选。客户端在继续之前应等待查询完成的最长时间(以秒为单位)。使用超时异步运行查询,并使用作业引用稍后检索结果

如需了解所有选项,请参阅