Brains4Cloud
ESEN
Practicar

Tema 4 de 5

D1 · Configurar un entorno de solución en la nube

Cloud Asset Inventory y Gemini Cloud Assist

Cuando una organización tiene cientos de proyectos, la pregunta «¿qué tenemos y quién tiene acceso?» deja de responderse a mano. El temario pide «Configuring Cloud Asset Inventory and using Gemini Cloud Assist to analyze resources»: el primero guarda el inventario de metadatos y el segundo es el asistente de IA que ayuda a diseñar, operar y optimizar.

Un inventario global de metadatos para ver, buscar, exportar, supervisar y analizar los activos de Google Cloud. Está pensado para cumplimiento, auditorías programadas y análisis.

Descubrir recursos

Filtrar por ubicación, fecha de creación, tags o estado.

Supervisar cambios

Seguir la evolución de un recurso para auditar, depurar y detectar desviaciones de cumplimiento.

Auditar seguridad y costes

Encontrar recursos con demasiados permisos, expuestos públicamente o sin usar.

  • Guarda el historial de creación, actualización y borrado durante 35 días. Los activos sin cambios en ese plazo devuelven su último estado.
  • Los metadatos vienen de los recursos (VM, buckets, instancias de App Engine…), de las políticas (IAM, de organización, de Access Context Manager) y de la información de runtime de OS Inventory Management.
  • También permite analizar qué pasaría si un recurso se moviera a otro proyecto y ver las políticas IAM efectivas: quién tiene acceso a qué.

No es para tiempo real

Google advierte que no está diseñado para consultas en tiempo real donde un dato desactualizado pueda romper la disponibilidad o la seguridad. Para eso hay que llamar directamente a la API del servicio.

Tipos de contenido

Al consultar se indica qué metadatos quieres. Sin tipo de contenido solo se devuelve lo básico: nombre del activo, última actualización y sus antepasados (proyecto, carpetas, organización).

API (gcloud)Qué devuelve
RESOURCE (resource)Todos los metadatos del recurso
IAM_POLICY (iam-policy)Las vinculaciones de la política IAM del recurso
ORG_POLICY (org-policy)Las políticas de organización (v1); para la v2 se usa RESOURCE con el tipo orgpolicy.googleapis.com/Policy
ACCESS_POLICY (access-policy)Políticas de Access Context Manager
OS_INVENTORY (os-inventory)Inventario del sistema operativo de las VM. Requiere configurar VM Manager
RELATIONSHIP (relationship)Relaciones entre recursos (p. ej., una VM usa un disco). Requiere Security Command Center Premium o Enterprise, o Gemini Cloud Assist

Configurarlo: API y roles

1

Habilitar la API de Cloud Asset Inventory. En el proyecto desde el que ejecutas los comandos (cloudasset.googleapis.com).

2

Conceder el rol adecuado. Cloud Asset Viewer (roles/cloudasset.viewer) para leer el inventario en el proyecto, carpeta u organización.

3

Preparar el destino. Un dataset de BigQuery o un bucket para exportar, o un tema de Pub/Sub para los feeds.

Listar y buscar recursos y políticas

En la consola, la página Asset Inventory tiene una pestaña Resource donde se filtra con la sintaxis de búsqueda, se ve la consulta equivalente en gcloud (View query) y se descargan los resultados en CSV.

# Listar los activos de Compute Engine de un proyecto
gcloud asset list --project=PROJECT_ID --asset-types=compute.googleapis.com/Instance

# Buscar recursos en una organización
gcloud asset search-all-resources --scope=organizations/ORG_ID --query="location:us-central1"

# Buscar políticas IAM que den acceso público
gcloud asset search-all-iam-policies --scope=organizations/ORG_ID \
  --query="memberTypes:(allUsers OR allAuthenticatedUsers)" --format="table(resource)"
  • Las búsquedas son síncronas y consumen cuota; para inventarios grandes conviene usar métodos asíncronos como la exportación.
  • No todos los tipos de recurso se pueden buscar: la documentación de tipos de recurso indica cuáles admiten las APIs de búsqueda.
  • Truco de la documentación: lanza primero una búsqueda sin consulta y usa los campos de la respuesta para construir el filtro.

Exportar a BigQuery o Cloud Storage

La exportación saca una instantánea de la organización, carpeta o proyecto (puede ser de una fecha pasada, dentro de los 35 días) para analizarla con SQL en BigQuery o guardarla en Cloud Storage.

gcloud asset export --project=my-project --content-type=resource \
  --snapshot-time="2024-01-30" \
  --bigquery-table=projects/my-project/datasets/my-dataset/tables/my-table
  • Con --per-asset-type se crea una tabla por tipo de activo, con columnas para los campos anidados.
  • No se puede añadir a una tabla existente salvo que sea particionada: la tabla debe estar vacía o sobrescribirse con --output-bigquery-force.
  • No admite tablas agrupadas (clustered), y algunos campos que cambian mucho, como numRows, pueden exportarse vacíos.

Feeds: avisos de cambios en tiempo real

Un feed envía una notificación a un tema de Pub/Sub cada vez que cambian los recursos, las políticas IAM, las políticas de acceso o las de organización que elijas en una organización, carpeta o proyecto. Se le pueden añadir condiciones para recibir solo ciertos cambios.

gcloud asset feeds create my-feed --project=my-project \
  --pubsub-topic=projects/my-project/topics/my-topic \
  --asset-names=//storage.googleapis.com/my-bucket --content-type=iam-policy
  • El primer mensaje es de bienvenida; los siguientes son TemporalAsset con el estado nuevo y el anterior (priorAsset).
  • Google sugiere conectar los avisos a tus cargas, por ejemplo una Cloud Run function que deshaga un cambio no autorizado.

Un colaborador con IA integrado en Google Cloud que da asistencia para diseñar, desplegar, solucionar problemas y optimizar cargas de trabajo. Google lo describe como un ecosistema multiagente con razonamiento, llamadas a herramientas y memoria a largo plazo.

Usa como contexto el ID del proyecto y de la organización, la página de la consola que estás viendo (URL y texto visible) y la memoria de la sesión. Varias de sus funciones están en vista previa. Como toda IA generativa, puede dar respuestas plausibles pero incorrectas: Google recomienda validar todo lo que genera.

Activar Gemini Cloud Assist

Un administrador lo configura para un proyecto o una carpeta antes de que el equipo pueda usarlo.

1

Admin for Gemini → Get Gemini Cloud Assist. Elige las APIs recomendadas y pulsa Enable Gemini Cloud Assist at no cost.

2

Conceder roles a cada principal. Gemini Cloud Assist User y Cloud Asset Viewer, más los roles de los productos sobre los que quiera ayuda.

3

Ajustes opcionales. Compartir prompts para mejorar el producto, instrucciones personalizadas, grounding.

gcloud services enable geminicloudassist.googleapis.com --project PROJECT_ID
gcloud services enable cloudasset.googleapis.com designcenter.googleapis.com \
  appoptimize.googleapis.com apphub.googleapis.com --project PROJECT_ID

Precauciones

  • Puede almacenar datos en cualquier centro de datos del mundo: no lo habilites en proyectos con requisitos de residencia de datos o de claves de cifrado gestionadas por el cliente (CMEK).
  • Si el proyecto está dentro de un perímetro de VPC Service Controls, hay que activarlo con gcloud, porque la consola necesita la App Optimize API, que no es compatible con VPC Service Controls.

Qué puede hacer

ÁreaEjemplos
Diseñar y construirDiseño de arquitecturas en lenguaje natural en Application Design Center; generar y refinar comandos gcloud, manifiestos de kubectl y Terraform; elegir roles IAM y entender políticas
Soporte y resolución de problemasInvestigaciones que analizan logs, métricas y configuraciones como un SRE guiado; investigaciones automáticas al dispararse una alerta; problemas de rendimiento en Cloud SQL, AlloyDB, BigQuery y Spanner; traspaso a soporte con el contexto
ObservabilidadExplorar métricas, logs, alertas y errores con lenguaje natural
OptimizarPreguntas sobre el gasto (amplía Cloud Hub Optimization y Cost Explorer), FinOps Hub, análisis diario de anomalías de coste, Storage Insights, Flow Analyzer
PlataformaAgentes proactivos que actúan con su propia cuenta de servicio (Agent Identity) y quedan en los logs de auditoría; MCP para usarlo desde Gemini CLI u otros clientes; instrucciones personalizadas

Dónde se usa

Panel de Cloud Assist

Asistencia conversacional en la consola y en la app móvil de Cloud.

Prompts rápidos de la consola

Botones y elementos interactivos repartidos por la consola.

Cloud Hub

Optimización de costes y uso de recursos y aplicaciones para equipos DevOps.

Database Center

Gestión centralizada de la flota de bases de datos.

Application Design Center

Diseñar aplicaciones a partir de requisitos técnicos y de negocio.

Investigations

Diagnóstico desde la consola, la app móvil, la CLI y los IDE.

Escenarios de examen

SituaciónRespuestaPor qué
Encontrar todos los recursos con acceso público (allUsers) en la organizacióngcloud asset search-all-iam-policies con memberTypesBusca en las políticas allow de toda la jerarquía.
Analizar con SQL el inventario completo de la organizacióngcloud asset export a BigQueryExporta una instantánea de los metadatos.
Recibir un aviso cada vez que alguien cambia la política IAM de un bucketFeed de Cloud Asset Inventory a Pub/SubNotificación en tiempo real de cambios.
Saber qué tenía un recurso hace 20 díasHistorial de Cloud Asset InventoryConserva 35 días de historial.
Comprobar en producción si una VM existe en este instanteLlamar a la API del servicioCloud Asset Inventory no es para consultas en tiempo real.
Investigar con IA un error a partir de logs y métricasInvestigación de Gemini Cloud AssistExplora hipótesis y busca la causa raíz.
Generar con lenguaje natural un comando gcloud o código TerraformChat del panel de Cloud AssistGenera y refina IaC.

Trampas frecuentes del examen

❓ ¿Cuánto historial guarda Cloud Asset Inventory?

35 días de creación, actualización y borrado.

❓ ¿Por qué canal llegan las notificaciones de un feed?

Por un tema de Pub/Sub.

❓ ¿Qué rol permite leer el inventario?

Cloud Asset Viewer (roles/cloudasset.viewer).

❓ ¿Se puede añadir una exportación a una tabla de BigQuery que ya tiene datos?

Solo si es particionada. Si no, la tabla debe estar vacía o sobrescribirse con --output-bigquery-force.

❓ ¿Qué roles necesita un usuario para usar Gemini Cloud Assist?

Gemini Cloud Assist User y Cloud Asset Viewer, más los roles de los productos sobre los que pide ayuda.

❓ ¿Conviene habilitar Gemini Cloud Assist en un proyecto con requisitos de residencia de datos?

No. Puede guardar datos en cualquier centro de datos de Google Cloud del mundo.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

El equipo de seguridad quiere que una función se ejecute automáticamente cada vez que alguien modifique la política IAM de cualquier proyecto de una carpeta. ¿Qué configura?

¿Listo para poner a prueba "Cloud Asset Inventory y Gemini Cloud Assist"?

Preguntas originales, cada una con su explicación.

Empezar un simulacro