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:
Enumera tus recursos y sus relaciones en un proyecto, una carpeta o una organización específicos, y obtén el historial de recursos de hasta 35 días atrás.
Busca tus recursos y sus políticas de IAM de permiso con un lenguaje de consultas personalizado, o consulta tus activos con BigQuery SQL.
Exporta los metadatos de tus recursos a BigQuery o Cloud Storage.
Analiza qué sucedería si un recurso se moviera a otro proyecto.
Analiza tus políticas de IAM y de la organización en los recursos, y consulta tus políticas de IAM eficaces en los recursos para ver quién tiene acceso a qué.
Supervisa tus activos para detectar cambios configurando un feed y suscribiéndote a él.
Genera estadísticas a partir de tus recursos para mejorar tu estrategia de seguridad.
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.