查看资产关系

本主题介绍如何查看组织、文件夹或项目与 Cloud Storage 存储分区BigQuery 表的资产关系。

资产关系

许多云资产通过关系进行关联。例如,instanceGroup 包含 Instance。关系显示为与来源资产相关的资产。例如,如果导出资产类型为 compute.googleapis.com/InstanceINSTANCE_TO_INSTANCEGROUP 关系,则会输出 Instance 资产,其 related_assets 表示所属的实例组。

准备工作

在开始之前,请完成以下步骤。

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

  2. 使用 gcloud 工具API 配置调用 Cloud Asset Inventory API 所需的权限

  3. 完成以下步骤以设置您的环境。

    gcloud

    要设置环境以使用 gcloud 工具调用 Cloud Asset Inventory API,请在本地客户端上安装 Cloud SDK

    API

    要设置环境以使用 Unix curl 命令调用 Cloud Asset Inventory API,请完成以下步骤。

    1. 在本地机器上安装 oauth2l,以便与 Google OAuth 系统进行互动。
    2. 确认您可以使用 Unix curl 命令。
    3. 确保向您的账号授予项目、文件夹或组织的以下角色之一。

      • Cloud Asset Viewer 角色 (roles/cloudasset.viewer)
      • Owner 基本角色 (roles/owner)
  4. 您需要具有 cloudasset.assets.exportResource 权限才能查看资产关系。

  5. 准备导出目的地。您可以使用 Cloud Storage 存储分区,也可以使用 BigQuery 表

导出资产关系快照

这些命令可以根据请求中的输出配置将导出的关系存储在位于 gs://<var>YOUR_BUCKET/NEW_FILE</var> 的 Cloud Storage 存储桶中或 BigQuery 表中。以下示例展示了如何将项目下的关系导出到 Cloud Storage 存储桶。如需导出组织或文件夹的关系,请将 --project 标志替换为 --organization--folder。如需将关系导出到 [BigQuery],请为 --output-path 指定 [BigQuery] 表。

导出所有支持的关系

如需为所有支持的关系导出某个给定时间戳的资产关系快照,请运行以下命令。

gcloud

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

API

gcurl -d '{"contentType":"RELATIONSHIP", "outputConfig":{"gcsDestination": \
         {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
          https://cloudasset.googleapis.com/v1p7beta1/projects/PROJECT_NUMBER:exportAssets

导出指定的关系

如需导出项目中附加了资产类型的指定关系,请运行以下命令。

gcloud

gcloud beta asset export \
 --content-type relationship \
 --project PROJECT_ID \
 --relationship-types INSTANCE_TO_INSTANCEGROUP \
 --output-path "gs://YOUR_BUCKET/NEW_FILE"

API

gcurl -d '{"contentType":"RELATIONSHIP", "relationshipTypes": "INSTANCE_TO_INSTANCEGROUP", "outputConfig":{"gcsDestination": \
         {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
          https://cloudasset.googleapis.com/v1p7beta1/projects/PROJECT_NUMBER:exportAssets

导出特定资产类型的所有关系

如需导出项目中资产类型以 compute.googleapis.com 开头的所有支持的关系,请运行以下命令。

gcloud

gcloud beta asset export \
 --content-type relationship \
 --project PROJECT_ID \
 --asset-types compute.googleapis.com.* \
 --output-path "gs://YOUR_BUCKET/NEW_FILE"

API

gcurl -d '{"contentType":"RELATIONSHIP", "assetTypes": "compute.googleapis.com.*", "outputConfig":{"gcsDestination": \
         {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
          https://cloudasset.googleapis.com/v1p7beta1/projects/PROJECT_NUMBER:exportAssets

导出具有指定资产类型的指定关系

如需导出项目中资源类型为 compute.googleapis.com/Instance 的指定关系,请运行以下命令。

gcloud

gcloud beta asset export \
 --content-type relationship \
 --project PROJECT_ID \
 --asset-types compute.googleapis.com/Instance
 --relationship-types INSTANCE_TO_INSTANCEGROUP \
 --output-path "gs://YOUR_BUCKET/NEW_FILE"

API

gcurl -d '{"contentType":"RELATIONSHIP", "assetTypes": "compute.googleapis.com/Instance", "relationshipTypes": "INSTANCE_TO_INSTANCEGROUP", "outputConfig":{"gcsDestination": \
         {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
          https://cloudasset.googleapis.com/v1p7beta1/projects/PROJECT_NUMBER:exportAssets

检查导出状态

如需检查导出状态,请运行以下命令。

gcloud

如需检查导出状态,您可以运行以下命令。运行导出命令后,它会显示在 gcloud 工具中。

gcloud asset operations describe OPERATION_ID

API

要查看导出的状态,请使用导出响应中返回的操作 ID 运行以下命令。

  1. 您可以在导出响应的 name 字段中找到 OPERATION_ID,其格式如下所示:

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
    
  2. 要检查导出状态,请使用 OPERATION_ID 运行以下命令:

    gcurl https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
    

查看关系快照

如果您已将结果导出到 Cloud Storage 存储分区中,请完成这些步骤以查看结果。

如果您已将结果导出到 BigQuery 表中,请完成这些步骤以查看结果。