查看资产历史记录

本页面介绍如何查看资产的历史记录。借助 Cloud Asset API,您可以查看时间范围与过去 35 天内给定时间范围重叠的多个资产的事件更改历史记录。事件更改历史记录会显示指定资产在一段时间内的所有创建、删除和更新事件。

准备工作

gcloud

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

    启用 Cloud Asset Inventory API

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

REST

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

  2. 确保您的账号已被授予您的项目、文件夹或组织的以下角色之一:

    • Cloud Asset Viewer (roles/cloudasset.viewer)

    • Owner 基本角色 (roles/owner)

配置账号

如需调用 Cloud Asset API,您的帐号必须获授一个角色,该角色在根/父资源(项目或组织)上包含要获取历史记录的资产,具体取决于 API 请求的 contentType 参数:

  • cloudasset.assets.exportResource(同时适用于资源和关系)

  • cloudasset.assets.exportIamPolicy

  • cloudasset.assets.exportOrgPolicy

  • cloudasset.assets.exportAccessPolicy

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

获取资产历史记录

以下示例演示了如何获取指定时间范围内资产的创建、删除和更新历史记录。不支持获取文件夹中的资产历史记录。

获取项目中特定资产的历史记录,包括所有资源元数据

gcloud

项目

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • PROJECT_ID:您要查看其历史记录的项目的 ID。

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

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

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

组织

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=resource \
    --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))"

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 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 '{
          "assetNames": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ],
          "contentType": "RESOURCE",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

请提供以下值:

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

  • START_TIME:可选。时间范围的开头,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。

  • END_TIME:可选。时间范围的终点,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会假定结束时间是当前时间。

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

    • 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 键值对,以排除资源元数据。

获取项目中特定资产的所有 IAM 政策的历史记录

gcloud

项目

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=iam-policy \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • PROJECT_ID:您要查看其历史记录的项目的 ID。

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

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

组织

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=iam-policy \
    --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))"

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

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

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": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ],
          "contentType": "IAM_POLICY",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

请提供以下值:

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

  • START_TIME:可选。时间范围的开头,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。

  • END_TIME:可选。时间范围的终点,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会假定结束时间是当前时间。

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

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

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

获取项目中特定资产的所有关系的历史记录

gcloud

项目

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=relationship \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • PROJECT_ID:您要查看其历史记录的项目的 ID。

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

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

组织

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=relationship \
    --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))"

  • ASSET_NAME 要为其保存历史记录的资产全名的逗号分隔列表。

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

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

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": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ],
          "contentType": "RELATIONSHIP",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

请提供以下值:

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

  • START_TIME:可选。时间范围的开头,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。

  • END_TIME:可选。时间范围的终点,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会假定结束时间是当前时间。

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

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

获取项目中特定资产的特定关系的历史记录

gcloud

项目

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --start-time="START_TIME" \
    --end-time="END_TIME"

请提供以下值:

  • PROJECT_ID:您要查看其历史记录的项目的 ID。

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

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

组织

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --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))"

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

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

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

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": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ],
          "contentType": "RELATIONSHIP",
          "relationshipTypes": "INSTANCE_TO_INSTANCEGROUP",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

请提供以下值:

  • ASSET_NAME:您要查看其历史记录的资产全名的逗号分隔列表。

  • START_TIME:可选。时间范围的开头,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。

  • END_TIME:可选。时间范围的终点,采用 RFC 3339 格式。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会假定结束时间是当前时间。

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

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