Descripción general de Cloud Asset Inventory

Cloud Asset Inventory es un servicio de inventario de metadatos global que te permite ver, buscar, exportar, supervisar y analizar tus metadatos de recursos de Google Cloud con hasta 35 días de creación, actualización y eliminación del historial. Los recursos que no cambiaron en los últimos 35 días informan su estado más reciente.

Los metadatos de los activos pueden provenir de las siguientes fuentes:

  • Los recursos de Google Cloud, como instancias de VM de Compute Engine, buckets de Cloud Storage e instancias de App Engine.

  • Políticas configuradas en recursos de Google Cloud, como las políticas de IAM, las políticas de la organización y las políticas de Access Context Manager

  • Información del entorno de ejecución de Administración del inventario del SO.

Sigue estos pasos para trabajar con tus recursos:

Tipos de recursos, nombres de recursos y tipos de contenido

Cloud Asset Inventory ofrece varios métodos para interactuar con tus recursos. Según el método que uses y los detalles de la respuesta que desees, es posible que debas especificar los tipos de activos, los nombres de los activos y los tipos de contenido en tus solicitudes.

Tipos de recursos

Algunos métodos de Cloud Asset Inventory muestran resultados según los tipos de activos. Los tipos de activos incluyen recursos, políticas, información del entorno de ejecución del inventario del SO y relaciones de Google Cloud. Los tipos de recursos disponibles y los métodos de Cloud Asset Inventory que los admiten se detallan en Tipos de recursos.

Nombres de los activos

Algunos métodos de Cloud Asset Inventory muestran resultados según los nombres de los activos. Al especificar un nombre de recurso, debes usar su nombre completo. Consulta Nombres de recursos para obtener una lista completa de los recursos de la empresa.

Tipos de contenido

Para solicitar metadatos adicionales en un recurso, especifica un tipo de contenido de metadatos. Si no especificas un tipo de contenido, solo se usará una respuesta básica. que contiene información como el nombre del recurso, la última vez que y a qué proyectos, carpetas y organizaciones pertenece.

Los nombres de los tipos de contenido varían según cómo interactúes con Cloud Asset Inventory. Los nombres de la API de REST y RPC son los mismos. Sin embargo, los nombres de los tipos de contenido de gcloud CLI siguen un patrón diferente. Para mantener la coherencia y facilitar la explicación, en el resto de esta documentación, se hace referencia a los tipos de contenido por sus nombres de RPC y REST.

En la siguiente tabla, se detallan los tipos de contenido y sus descripciones:

Tipo de contenido Descripción
Nombre de RPC y REST Nombre de gcloud CLI  
ACCESS_POLICY access-policy La política de Access Context Manager configurada en un recurso
IAM_POLICY iam-policy Los metadatos de la política de IAM que se vinculan al recurso
ORG_POLICY org-policy Son los metadatos de la política de la organización establecidos en un recurso. Este tipo de contenido genera la política de la organización heredada v1. Para la política de la organización v2, prueba el tipo de contenido resource y un tipo de recurso de orgpolicy.googleapis.com/Policy
OS_INVENTORY os-inventory Es la información del inventario del SO del entorno de ejecución. Para habilitar el inventario de SO, completa los pasos relevantes en Configura VM Manager.
RELATIONSHIP relationship

Solo disponible para Nivel Premium y Enterprise de Security Command Center suscriptores.

Muchos recursos de Google Cloud están conectados entre sí a través de relaciones. Por ejemplo, un grupo de instancias de Compute puede contener una instancia de Compute, o un clúster de GKE puede contener un nodo.

Los datos de relaciones están disponibles a partir del 30 de mayo de 2022. Una relación puede tener su propia marca de tiempo de actualización, ya que se puede inferir en un momento diferente al de las actualizaciones del activo de origen.

Consulta Tipos de relaciones para obtener una lista de las relaciones compatibles.

RESOURCE resource Los metadatos del recurso

Cómo cambian las respuestas según el tipo de contenido

En los siguientes ejemplos, se muestra cómo cambian las respuestas cuando se enumeran instancias de VM en un proyecto a través de Cloud Asset Inventory con diferentes tipos de contenido.

Sin tipo de contenido

Si no especificas ningún tipo de contenido cuando enumeres instancias de VM, solo recibirás los de las instancias, la última vez que se actualizaron y los proyectos, y las organizaciones a las que pertenecen.

Expandir para ver el ejemplo de respuesta

---
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'

Tipo de contenido IAM_POLICY

Si especificas el tipo de contenido IAM_POLICY, también recibirás las vinculaciones de IAM en la VM, si las hay.

Expandir para ver el ejemplo de respuesta

---
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'

Tipo de contenido de RESOURCE

Si especificas el tipo de contenido RESOURCE, también recibirás todos los metadatos. asociada con la VM.

Expandir para ver un ejemplo de una respuesta

---
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'

Tipo de contenido RELATIONSHIP

Solo disponible para Nivel Premium y Enterprise de Security Command Center suscriptores.

Si especificas el tipo de contenido RELATIONSHIP, también recibirás metadatos. asociada con los recursos relacionados con la instancia de VM.

Expandir para ver un ejemplo de una respuesta

---
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'

Cuando usas el tipo de contenido RELATIONSHIP, en lugar de solicitar todas las relaciones, puedes solicitar tipos de relaciones específicos.

¿Qué sigue?