Descripción general de Cloud Asset Inventory

Cloud Asset Inventory es un servicio global de inventario de metadatos que te permite ver, buscar, exportar, supervisar y analizar los metadatos de tus Google Cloud activos. Entre las tareas para las que puedes usar Cloud Asset Inventory, se incluyen las siguientes:

  • Descubrimiento y administración de recursos: Filtra por propiedades de metadatos, como ubicación, hora de creación, etiquetas y estado.
  • Supervisión de recursos: Realiza un seguimiento de los cambios en un recurso a lo largo del tiempo para crear un registro de auditoría, depurar problemas y administrar la desviación del cumplimiento.
  • Auditorías de seguridad y costos: Encuentra recursos con permisos excesivos, expuestos públicamente o sin usar para minimizar la superficie de ataque y optimizar los costos.

El historial de creación, actualización y eliminación de recursos se conserva durante un máximo de 35 días. Los recursos que no cambiaron en los últimos 35 días muestran su estado más reciente.

Trabaja con recursos en Google Cloud

A continuación, te indicamos cómo puedes trabajar con tus recursos:

Fuentes de metadatos de activos

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

  • Google Cloud recursos, como instancias de VM de Compute Engine, buckets de Cloud Storage y instancias de App Engine

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

  • Información del tiempo de ejecución de OS Inventory Management

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 el detalle de la respuesta que desees, es posible que debas especificar los tipos de recursos, los nombres de los recursos y los tipos de contenido en tus solicitudes.

Tipos de recursos

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

Nombres de recursos

Algunos métodos de Cloud Asset Inventory devuelven resultados basados en nombres de recursos. Cuando especifiques un nombre de recurso, debes usar su nombre completo. Consulta Nombres de recursos para obtener una lista de los nombres de recursos completos.

Tipos de contenido

Puedes solicitar metadatos adicionales sobre un recurso especificando un tipo de contenido de metadatos. Si no especificas un tipo de contenido, solo se devolverá una respuesta básica que contiene información como el nombre del recurso, la última vez que se actualizó y los proyectos, las carpetas y las organizaciones a los que pertenece.

Los nombres de los tipos de contenido difieren según cómo interactúes con Cloud Asset Inventory. Los nombres de las APIs de RPC y de REST son los mismos. Sin embargo, los nombres de los tipos de contenido de gcloud CLI siguen un patrón diferente. Para garantizar la coherencia y facilitar la explicación, el resto de la documentación 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 Es el conjunto de políticas de Access Context Manager establecido en un activo.
IAM_POLICY iam-policy Es la vinculación de metadatos de la política de IAM al recurso.
ORG_POLICY org-policy Son los metadatos de la política de la organización establecidos en un activo. Este tipo de contenido genera la versión 1 de la política de la organización heredada. Para la versión 2 de la política de la organización, prueba el tipo de contenido resource y un tipo de recurso orgpolicy.googleapis.com/Policy.
OS_INVENTORY os-inventory Es la información del inventario del SO del tiempo de ejecución. Para habilitar el inventario del SO, completa los pasos pertinentes en Configura VM Manager.
RELATIONSHIP relationship

Requiere acceso al nivel Premium o Enterprise de Security Command Center, o a Gemini Cloud Assist.

Muchos recursos Google Cloud están conectados entre sí por 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 la actualización del activo fuente.

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

RESOURCE resource Son 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 enumeras las instancias de VM, solo recibirás los nombres de las instancias, la última vez que se actualizaron y a qué proyectos, carpetas y organizaciones pertenecen.

Expandir para ver un 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 un 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 RELATIONSHIP

Las relaciones requieren acceso al nivel Premium o Enterprise de Security Command Center, o a Gemini Cloud Assist.

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

Expandir para ver un 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
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.

Tipo de contenido RESOURCE

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

Expandir para ver un 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
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'

Actualidad de los datos

Cloud Asset Inventory proporciona coherencia eventual en los datos actuales y coherencia con el mayor esfuerzo posible en los datos históricos. Si bien es poco frecuente, es posible que Cloud Asset Inventory no registre algunas actualizaciones de datos.

A menos que se indique lo contrario en la tabla de tipos de recursos, casi todas las actualizaciones de recursos están disponibles en cuestión de minutos.

¿Qué sigue?