使用 Google Cloud SDK

本页面介绍如何使用 Cloud SDK gcloud asset 命令导出资产元数据以及获取资产历史记录。

Cloud SDK 提供了 gcloud 命令行工具,以便与 Cloud Asset Inventory 和其他 Google Cloud Platform 服务进行交互。

准备工作

  • gcloud 工具使用 Cloud Asset API 访问 Google Cloud Platform。您必须先启用 API,然后才能使用 gcloud 工具访问 Cloud Asset Inventory。请注意,只需在您将运行 Cloud Asset API 命令的项目中启用 API。
    启用 Cloud Asset Inventory API
  • 在本地客户端上安装 Cloud SDK

开始使用 gcloud 命令行工具

要开始使用 gcloud 工具,请查看 Cloud SDK 文档。您可以使用 --help 标志获取有关该工具、资源和命令的帮助:

gcloud asset --help

使用 --help 标志显示的帮助信息也可以在 gcloud assetCloud SDK 参考中找到。

配置帐号

要调用 Cloud Asset API,您需要一个已配置的用户帐号或服务帐号。

配置用户帐号

  1. 通过以下命令使用您的用户帐号登录。

    gcloud auth login USER_ACCOUNT_EMAIL
    

  2. 可选。如果您要调用 Cloud Asset API 的目标项目与启用了 Cloud Asset Inventory 的项目不同,请使用以下命令指定项目。

    gcloud config set billing/quota_project PROJECT_ID
    

  3. 为您的用户帐号授予您要导出其元数据的项目的 cloudasset.viewer Cloud IAM 角色。此项目可与已启用 Cloud Asset API 的项目相同。

    gcloud projects add-iam-policy-binding EXPORT_TARGET_PROJECT_ID \
           --member user:USER_ACCOUNT_EMAIL \
           --role roles/cloudasset.viewer
    

配置服务帐号

对于您正在其中运行 Cloud Asset API 命令的项目,您应该创建此服务帐号。

  1. 如果您还没有服务帐号,请在已启用 Cloud Asset API 的项目中使用以下命令创建新服务帐号

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
           --display-name "SERVICE_ACCOUNT_DISPLAY_NAME"
    

  2. 为您的服务帐号创建私钥。

    gcloud iam service-accounts keys create YOUR_FILE_PATH/key.json \
           --iam-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    

  3. 使用以下命令激活您的服务帐号,以便与 gcloud 工具搭配使用。

    gcloud auth activate-service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
           --key-file=YOUR_FILE_PATH/key.json
    

  4. 在要导出其元数据的项目中,为您的新服务帐号授予 cloudasset.viewer Cloud IAM 角色。此项目可与已启用 Cloud Asset API 的项目相同。

    gcloud projects add-iam-policy-binding EXPORT_TARGET_PROJECT_ID \
           --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
           --role roles/cloudasset.viewer
    

调用 gcloud 资产

以下是对项目进行 gcloud Cloud Asset API 调用的一些示例。Cloud Asset API 调用也适用于文件夹和组织。

ExportAssets

将给定时间戳的所有资产元数据导出到 Cloud Storage 文件。用于存储导出元数据的 Cloud Storage 存储分区必须位于您正在运行导出作业的项目中,并且该项目已启用 Cloud Asset API。此方法还可用于导出整个组织或文件夹的资产。

以下示例导出项目中的资产元数据。

gcloud asset export \
   --content-type resource \
   --project PROJECT_ID \
   --output-path "gs://YOUR_BUCKET/NEW_FILE"

请注意,PROJECT_ID 是要导出其元数据的项目的 ID。该项目可以是您正在运行导出作业且已启用 Cloud Asset API 的项目,也可以是其他项目。

GetOperation

检查导出作业的状态。运行导出命令后,以下命令和 OPERATION_NUMBER 会立即显示在 gcloud 工具中。

gcloud asset operations describe projects/PROJECT_ID/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER

BatchGetAssetsHistory

获取多个资产在给定时间范围的历史记录。该功能将显示指定资产在一段时间内的所有创建、删除和更新事件。此方法可用于获取项目或组织内的资产历史记录。

以下示例获取项目中资产的历史记录。

gcloud asset get-history --asset-names="//storage.googleapis.com/BUCKET_NAME","otherAssetNames" \
   --content-type resource \
   --start-time '2018-10-03T00:00:00Z' \
   --project PROJECT_ID

请注意,时间范围的最近的 start-time 可能是 2018-10-03T00:00:00Z

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Resource Manager 文档