Cloud Asset Inventory 概览

Cloud Asset Inventory 是一种全球元数据目录服务,让您可以查看、搜索 导出、监控和分析您的 Google Cloud 资产元数据,最多包含 35 个 创建、更新和删除历史记录的天数。未更改的 过去 35 天报告的最新状态。

资产元数据可来自以下位置:

  • Google Cloud 资源,例如 Compute Engine 虚拟机实例、 Cloud Storage 存储分区和 App Engine 实例。

  • 在 Google Cloud 资源上设置的政策,例如 IAM 政策、组织政策和 Access Context Manager 政策。

  • 运行时信息来源: OS Inventory Management

您可以使用素材资源的方法如下:

资产类型、资产名称和内容类型

Cloud Asset Inventory 提供了多种与资产交互的方法。根据您使用的方法和所需的响应详细信息,您可能需要在请求中指定资产类型、资产名称和内容类型。

资产类型

某些 Cloud Asset Inventory 方法会根据资产类型返回结果。资产类型包括 Google Cloud 资源、政策、操作系统目录运行时信息和关系。可用的资产类型和 Cloud Asset Inventory 支持它们的方法的详细信息 素材资源类型

素材资源名称

某些 Cloud Asset Inventory 方法会根据资产名称返回结果。指定 则必须使用其完整的资源名称。请参阅 完整资源列表的资产名称 名称。

内容类型

您可以通过指定元数据来请求有关资源的其他元数据 内容类型。如果您未指定内容类型,则只有基本响应 其中包含资源名称、上次 及其所属的项目、文件夹和组织。

内容类型名称因您与 Cloud Asset Inventory 的交互方式而异。RPC API 和 REST API 的名称相同。但是,gcloud CLI 内容类型名称遵循不同的模式为保持一致性并方便说明,本文档的其余部分将按 RPC 和 REST 名称引用内容类型。

下表详细说明了内容类型及其说明:

内容类型 说明
RPC 和 REST 名称 gcloud CLI 名称  
ACCESS_POLICY access-policy 在资源上设置的 Access Context Manager 政策。
IAM_POLICY iam-policy 与资源绑定的 IAM 政策元数据。
ORG_POLICY org-policy 为资产设置的组织政策元数据。此内容类型会输出旧版组织政策 v1。对于组织政策 v2,请尝试使用 resource 内容类型和 orgpolicy.googleapis.com/Policy 资源类型。
OS_INVENTORY os-inventory 运行时操作系统清单信息。如需启用操作系统清点,请完成设置虚拟机管理器中的相关步骤。
RELATIONSHIP relationship

仅适用于 <ph type="x-smartling-placeholder"></ph> Security Command Center 高级和企业层级 位订阅者。

许多 Google Cloud 资产通过 关系。例如, 计算实例组可以 包含计算实例,或 一 GKE 集群 可包含 节点

自 2022 年 5 月 30 日起,系统会提供关系数据。有交往对象了 可能都有自己的更新时间戳, 与源资源更新的时间不同。

请参阅 <ph type="x-smartling-placeholder"></ph> 关系类型 以获取支持关系的列表。

RESOURCE resource 资源的元数据。

响应随内容类型的变化

以下示例展示了在 使用具有不同内容类型的 Cloud Asset Inventory 创建项目的项目。

无内容类型

如果您在列出虚拟机实例时未指定内容类型,则只会收到 实例名称、上次更新时间以及 及其所属的组织

展开即可查看回答示例

---
ancestors:
- projects/PROJECT_NUMBER
- folders/FOLDER_NUMBER
- organizations/ORGANIZATION_ID
assetType: compute.googleapis.com/Instance
name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
updateTime: '2023-11-15T12:28:30.087825Z'

IAM_POLICY 内容类型

如果您指定 IAM_POLICY 内容类型,还会收到 虚拟机上的 IAM 绑定(如果有)。

展开以查看响应示例

---
ancestors:
- projects/PROJECT_NUMBER
- folders/FOLDER_NUMBER
- organizations/ORGANIZATION_ID
assetType: compute.googleapis.com/Instance
iamPolicy:
  bindings:
  - members:
    - user:USER_EMAIL_ADDRESS
    role: roles/compute.securityAdmin
  etag: ETAG
name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
updateTime: '2023-12-19T23:35:42.673842Z'

RESOURCE 内容类型

如果您指定 RESOURCE 内容类型,还会收到所有元数据 与虚拟机关联的虚拟机

展开即可查看回答示例

---
ancestors:
- projects/PROJECT_NUMBER
- folders/FOLDER_NUMBER
- organizations/ORGANIZATION_ID
assetType: compute.googleapis.com/Instance
name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
resource:
  data:
    allocationAffinity:
      consumeAllocationType: ANY_ALLOCATION
    canIpForward: false
    confidentialInstanceConfig:
      enableConfidentialCompute: true
    cpuPlatform: AMD Rome
    creationTimestamp: '2023-11-14T14:35:37.059-08:00'
    deletionProtection: false
    description: ''
    disks:
    - architecture: X86_64
      autoDelete: true
      boot: true
      deviceName: INSTANCE_NAME
      diskSizeGb: '10'
      guestOsFeatures:
      - type: VIRTIO_SCSI_MULTIQUEUE
      - type: SEV_CAPABLE
      - type: SEV_SNP_CAPABLE
      - type: SEV_LIVE_MIGRATABLE
      - type: UEFI_COMPATIBLE
      - type: GVNIC
      index: 0
      interface: NVME
      licenses:
      - https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-2004-lts
      mode: READ_WRITE
      shieldedInstanceInitialState:
        dbx:
        - content: DATA
          fileType: BIN
        dbxs:
        - content: DATA
          fileType: BIN
      source: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/INSTANCE_NAME
      type: PERSISTENT
    displayDevice:
      enableDisplay: false
    fingerprint: FINGERPRINT
    id: 'ID'
    keyRevocationActionType: NONE_ON_KEY_REVOCATION
    labelFingerprint: LABEL_FINGERPRINT
    lastStartTimestamp: '2023-11-15T04:28:30.005-08:00'
    machineType: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n2d-standard-2
    name: INSTANCE_NAME
    networkInterfaces:
    - accessConfigs:
      - name: External NAT
        natIP: 34.27.105.222
        networkTier: PREMIUM
        type: ONE_TO_ONE_NAT
      fingerprint: jKU51FdTluk=
      name: nic0
      network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default
      networkIP: 10.128.15.212
      nicType: GVNIC
      stackType: IPV4_ONLY
      subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/default
    reservationAffinity:
      consumeReservationType: ANY_ALLOCATION
    resourceStatus: {}
    scheduling:
      automaticRestart: true
      onHostMaintenance: TERMINATE
      preemptible: false
      provisioningModel: STANDARD
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    serviceAccounts:
    - email: PROJECT_NUMBER-compute@developer.gserviceaccount.com
      scopes:
      - https://www.googleapis.com/auth/devstorage.read_only
      - https://www.googleapis.com/auth/logging.write
      - https://www.googleapis.com/auth/monitoring.write
      - https://www.googleapis.com/auth/servicecontrol
      - https://www.googleapis.com/auth/service.management.readonly
      - https://www.googleapis.com/auth/trace.append
    shieldedInstanceConfig:
      enableIntegrityMonitoring: true
      enableSecureBoot: false
      enableVtpm: true
    shieldedInstanceIntegrityPolicy:
      updateAutoLearnPolicy: true
    startRestricted: false
    status: RUNNING
    tags:
      fingerprint: FINGERPRINT
    zone: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE
  discoveryDocumentUri: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest
  discoveryName: Instance
  location: ZONE
  parent: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
  version: v1
updateTime: '2023-11-15T12:28:30.087825Z'

RELATIONSHIP 内容类型

仅适用于 Security Command Center 高级方案和企业层级 位订阅者。

如果您指定了 RELATIONSHIP 内容类型,则还会收到与虚拟机实例的相关资产关联的元数据。

展开以查看响应示例

---
ancestors:
- projects/PROJECT_NUMBER
- folders/FOLDER_NUMBER
- organizations/ORGANIZATION_ID
assetType: compute.googleapis.com/Instance
name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
relatedAsset:
  ancestors:
  - projects/PROJECT_NUMBER
  - folders/FOLDER_NUMBER
  - organizations/ORGANIZATION_ID
  asset: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/disks/INSTANCE_NAME
  assetType: compute.googleapis.com/Disk
  relationshipType: COMPUTE_INSTANCE_USE_DISK
updateTime: '2023-12-19T23:35:42.673842Z'

使用 RELATIONSHIP 内容类型时,而不是请求全部 您可以请求 关系类型

后续步骤