本页面介绍如何查看资产的历史记录。借助 Cloud Asset API,您可以查看时间范围与过去 35 天内给定时间范围重叠的多个资产的事件更改历史记录。事件更改历史记录会显示指定资产在一段时间内的所有创建、删除和更新事件。
准备工作
gcloud
您必须先启用 Cloud Asset API,然后才能使用 gcloud CLI 访问 Cloud Asset Inventory。请注意,只需在运行 Cloud Asset API 命令的项目上启用该 API 即可。
在本地客户端上安装 Google Cloud CLI。
REST
确认您可以使用
curl
命令。确保您的账号已被授予您的项目、文件夹或组织的以下角色之一:
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,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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 项目编号,请完成以下步骤:
-
转到 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择:框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
organizations/ORGANIZATION_ID
如何查找 Google Cloud 组织 ID
控制台
如需查找 Google Cloud 组织 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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 项目编号,请完成以下步骤:
-
转到 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择:框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
projects/PROJECT_NUMBER
如何查找 Google Cloud 项目编号
控制台
如需查找 Google Cloud 项目编号,请完成以下步骤:
-
转到 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择:框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
organizations/ORGANIZATION_ID
如何查找 Google Cloud 组织 ID
控制台
如需查找 Google Cloud 组织 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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 项目编号,请完成以下步骤:
-
转到 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择:框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
organizations/ORGANIZATION_ID
如何查找 Google Cloud 组织 ID
控制台
如需查找 Google Cloud 组织 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 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 项目编号,请完成以下步骤:
-
转到 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择:框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
organizations/ORGANIZATION_ID
如何查找 Google Cloud 组织 ID
控制台
如需查找 Google Cloud 组织 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 ID 显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-