列出资产

本页面介绍如何使用 Cloud Asset Inventory 资产列出服务。您可以使用 Cloud Asset Inventory API 查看给定时间戳的资产分页列表。

准备工作

  1. 请先启用 Cloud Asset API,然后才能使用 Google Cloud CLI 访问 Cloud Asset Inventory。请注意,只需在您运行 Cloud Asset API 命令的项目中启用该 API。

    启用 Cloud Asset Inventory API

  2. 在本地客户端上安装 Google Cloud CLI

  3. 请确保您的帐号在您要列出其资产的项目或组织中拥有以下角色之一。

    • roles/cloudasset.viewer

    • roles/cloudasset.owner

配置账号

要调用 Cloud Asset API,您的账号必须被授予根(父级)资源对应的权限,根(父级)资源指的是包含要列出资产的项目或组织。以下是请求中的每个 ContentType 所需的权限:

内容类型 权限
gcloud 名称 REST 名称
access-policy ACCESS_POLICY cloudasset.assets.listAccessPolicy
content-type-unspecified CONTENT_TYPE_UNSPECIFIED cloudasset.assets.listResource
iam-policy IAM_POLICY cloudasset.assets.listIamPolicy
org-policy ORG_POLICY cloudasset.assets.listOrgPolicy
os-inventory OS_INVENTORY cloudasset.assets.listOSInventories
relationship RELATIONSHIP cloudasset.assets.listResource
resource RESOURCE cloudasset.assets.listResource

如果您的账号已被授予资源根的 Cloud Asset Viewer (roles/cloudasset.viewer) 角色、Cloud Asset Owner (roles/cloudasset.owner) 角色或 Owner (roles/owner) 基本角色,则该账号已具有调用 Cloud Asset API 的足够权限。否则,请按照配置权限页面中的步骤操作。

列出资产

如需使用 Cloud Asset API 列出在给定时间使用 Cloud Asset API 列出项目、文件夹或组织中的资产及其关系,请发出以下请求之一。

列出项目、文件夹或组织中的资产,包括所有资源元数据

gcloud

项目

gcloud asset list \
    --project=PROJECT_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

请提供以下值:

  • PROJECT_ID:您要列出其资产的项目的 ID。

  • ASSET_TYPE:可选。以英文逗号分隔的可搜索素材资源类型列表。支持与 RE2 兼容的正则表达式。如果正则表达式与任何受支持的资源类型均不匹配,系统会返回 INVALID_ARGUMENT 错误。

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

移除 --content-type 标志以排除资源元数据。

文件夹

列出文件夹中的资产,包括所有资源元数据

gcloud asset list \
    --folder=FOLDER_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_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

  • ASSET_TYPE:可选。以英文逗号分隔的可搜索素材资源类型列表。支持正则表达式。如果正则表达式与任何受支持的资源类型均不匹配,系统会返回 INVALID_ARGUMENT 错误。

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

移除 --content-type 标志以排除资源元数据。

组织

列出组织中的资产,包括所有资源元数据

gcloud asset list \
    --organization=ORGANIZATION_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_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))"

  • ASSET_TYPE:可选。以英文逗号分隔的可搜索素材资源类型列表。支持正则表达式。如果正则表达式与任何受支持的资源类型均不匹配,系统会返回 INVALID_ARGUMENT 错误。

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

移除 --content-type 标志以排除资源元数据。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "RESOURCE",
          "assetTypes": [
            "ASSET_TYPE_1",
            "ASSET_TYPE_2",
            "..."
          ],
          "readTime": "SNAPSHOT_TIME",
          "pageToken": "PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/assets

请提供以下值:

  • ASSET_TYPE:可选。一个由可搜索的素材资源类型组成的数组。支持正则表达式。如果正则表达式与任何受支持的资源类型均不匹配,系统会返回 INVALID_ARGUMENT 错误。

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

  • PAGE_TOKEN:可选。长请求响应会在多个页面上显示。第一个页面不需要此键值对,但此处可以使用上一个响应的 nextPageToken 调用后续页面。

  • 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))"

移除 contentType 键值对,以排除资源元数据。

列出项目、文件夹或组织中的特定关系

gcloud

项目

gcloud asset list \
    --project=PROJECT_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

请提供以下值:

  • PROJECT_ID:您要列出其资产的项目的 ID。

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

移除 --relationship-types 标志可列出项目中的所有关系。

文件夹

gcloud asset list \
    --folder=FOLDER_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_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

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

移除 --relationship-types 标志可列出文件夹中的所有关系。

组织

gcloud asset list \
    --organization=ORGANIZATION_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_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))"

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

移除 --relationship-types 标志可列出组织中的所有关系。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "RELATIONSHIP",
          "relationshipTypes": "INSTANCE_TO_INSTANCEGROUP",
          "readTime": "SNAPSHOT_TIME",
          "pageToken": "PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/assets

请提供以下值:

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

  • PAGE_TOKEN:可选。长请求响应会在多个页面上显示。第一个页面不需要此键值对,但此处可以使用上一个响应的 nextPageToken 调用后续页面。

  • 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))"

移除 relationshipTypes 键值对以列出项目中的所有关系。