- Integraciones y API
- Integraciones
- Nube
- Google Cloud
Conectar Google Cloud a su inventario de activos
El conector de Google Cloud lee los recursos expuestos a Internet de sus proyectos de Google Cloud y los mantiene en el inventario de activos de Ostorlab, para que pueda analizarlos y hacerles seguimiento como parte de su superficie de ataque. Solo necesita acceso de lectura.
¿Qué recopila el conector?
Todo se lee a través de Cloud Asset Inventory, proyecto por proyecto. Las direcciones privadas se omiten.
| Recurso | Qué se conserva |
|---|---|
| Instancias de Compute Engine | Instancias con una dirección IPv4 o IPv6 externa |
| Direcciones reservadas | Direcciones externas regionales y globales |
| Reglas de reenvío | Reglas regionales y globales con esquema de balanceo de carga externo |
| Cloud DNS | Zonas administradas públicas y sus conjuntos de registros (los registros comodín se omiten) |
Solo se importan los recursos indicados arriba; Cloud Run, Cloud Functions, GKE y otros servicios no se recopilan.
Cada proyecto se convierte en un nodo cloud que es el padre de los demás nodos del proyecto. Las direcciones IP públicas y los nombres de host que expone un recurso se convierten en activos de IP y de dominio normales, que el resto de la plataforma puede analizar.
¿Qué necesito antes de empezar?
- Un plan de Ostorlab que incluya integraciones. De lo contrario, Ostorlab responde «Your organisation does not have the necessary permissions to run this integration.»
- El ID del proyecto que alojará la cuenta de servicio (el ID del proyecto, no su nombre para mostrar).
-
gcloudautenticado como propietario de ese proyecto, por ejemplo en Cloud Shell. Para un conector de toda la organización, también como propietario de la organización. - Para un conector de toda la organización, el ID numérico de la organización.
- Un propietario de Ostorlab para los activos importados. Cree uno antes si es necesario.
Configurar el acceso en Google Cloud
Abra Library > Integrations, seleccione la categoría Nube y después la tarjeta Google Cloud. La pestaña Configuración empieza con Paso 1: prepare su proyecto de Google Cloud.

Los dos botones de descarga entregan un archivo llamado ostorlab-gcp-connector.sh; las versiones de suplantación y de clave son idénticas salvo por el último paso. Se recomienda la suplantación de la cuenta de servicio: ninguna clave sale de su organización.

Opción 1: suplantación de cuenta de servicio (recomendado)
- En el Paso 1, haga clic en Suplantación de cuenta de servicio: descargar el archivo de configuración. El bloque Parámetros a utilizar muestra
ostorlab_service_account, la cuenta de servicio que Ostorlab crea para su organización, y losrolesque concede el script. -
Abra Cloud Shell, suba el script y ejecútelo para un proyecto:
PROJECT_ID=<project id> bash ostorlab-gcp-connector.shPara leer todos los proyectos de una organización, conceda los roles a nivel de organización:
ORGANIZATION_ID=<organization id> PROJECT_ID=<project id> bash ostorlab-gcp-connector.sh -
El script muestra el correo de la cuenta de servicio,
ostorlab-cloud-connector@<project id>.iam.gserviceaccount.com. Cópielo.
El script:
- habilita las API
cloudresourcemanager.googleapis.com,cloudasset.googleapis.comeiamcredentials.googleapis.comen el proyecto, y nada más; - crea la cuenta de servicio
ostorlab-cloud-connectoren el proyecto; - le concede
roles/cloudasset.vieweryroles/browser, en el proyecto o en la organización; - concede a la cuenta de servicio de Ostorlab (
ostorlab_service_account) el rolroles/iam.serviceAccountTokenCreatorsobre la nueva cuenta de servicio, para que Ostorlab pueda suplantarla sin ninguna clave.
Volver a ejecutar el script es seguro: reutiliza la cuenta de servicio si existe y reintenta mientras Google propaga la nueva cuenta.
Opción 2: clave de cuenta de servicio
Use este método cuando la suplantación no sea una opción.
- En el Paso 1, haga clic en Clave de cuenta de servicio: descargar el archivo de configuración.
- Ejecute el mismo comando que arriba en Cloud Shell. En lugar de la concesión del rol de creador de tokens, el script crea un archivo de clave JSON,
ostorlab-cloud-connector-key.json. - Copie el contenido del archivo completo para el formulario del conector y después elimine el archivo de su equipo.
-
Para rotar la clave, vuelva a ejecutar el script y actualice el conector con la nueva clave. Después liste las claves para encontrar el ID de la anterior y elimínela. El script nunca elimina una clave anterior:
gcloud iam service-accounts keys list --iam-account <service account email> gcloud iam service-accounts keys delete <previous key id> --iam-account <service account email>
Tip
La clave JSON se cifra en reposo y no vuelve a mostrarse en Ostorlab.
Añadir el conector
-
En la pestaña Configuración, bajo Paso 2: conectores de Google Cloud, haga clic en Añadir conector (o Añadir otro conector).

-
Complete el formulario y haga clic en Crear.

| Campo | Qué introducir |
|---|---|
| Nombre | Un nombre único en su organización, por ejemplo GCP Producción. |
| ID de proyecto | El ID del proyecto de Google Cloud: de 6 a 30 letras minúsculas, dígitos o guiones, empezando por una letra y terminando en una letra o un dígito. |
| ID de organización (opcional) | El número de organización de Google Cloud. Si se indica, se recopilan todos los proyectos activos de la organización. |
| Credencial | Suplantación de cuenta de servicio o Clave de cuenta de servicio. |
| Correo de la cuenta de servicio | Solo método de suplantación. El correo que muestra el script. |
| Clave JSON de la cuenta de servicio | Solo método de clave. El archivo de clave JSON completo. |
| Propietario | Obligatorio. Los activos importados se asocian a este propietario. |
| Ubicación | Ubicación opcional de los activos importados. |
| Activo | La sincronización programada omite los conectores inactivos. |
Probar la conexión
Haga clic en Probar conexión en la fila del conector. La prueba lee de su proyecto sin importar nada.

Se ejecutan cuatro comprobaciones:
| Comprobación | Qué verifica |
|---|---|
| Credenciales | Ostorlab obtuvo un token de Google para la cuenta de servicio (suplantada, o a partir de la clave guardada). |
| Permisos | Cloud Asset Inventory lista los proyectos del ámbito. |
| Ámbitos | Los proyectos que se leerán: su proyecto, o todos los proyectos activos de la organización. La comprobación falla si el proyecto no está activo o no se puede leer. |
| Recurso de muestra | Ostorlab lee la primera dirección externa reservada del ámbito. La comprobación también se supera si no hay ninguna reservada. |
Si una comprobación falla, las siguientes también aparecen como omitidas o fallidas: corrija primero la primera comprobación fallida.

Sincronizar el conector
Cada conector activo se sincroniza automáticamente cada doce horas. Para importar de inmediato, haga clic en Sincronizar ahora en la fila del conector.

Una notificación confirma el trabajo (Sincronización iniciada (trabajo ...)). Una sincronización se rechaza si el conector está inactivo o si ya hay una sincronización del mismo conector en curso.

Leer las ejecuciones de sincronización y los errores
Haga clic en Sincronizaciones recientes para ver las ejecuciones de un conector.

| Columna | Significado |
|---|---|
| Estado | En curso, Correcto, Parcial (algunos proyectos fallaron, el resto se importó) o Fallido (la sincronización no pudo completarse, por ejemplo porque Google rechazó el token). |
| Recursos | Recursos encontrados en esta ejecución. |
| Creados, Actualizados | Activos y nodos nuevos y modificados. El recuento de creados incluye los activos de IP y de nombre de host además de los nodos. |
| Obsoletos | Recursos que el conector etiquetó como cloud:stale porque no se vieron en esta ejecución. |
| Errores | El número de errores de ámbito. Haga clic en él para listarlos. |
Un proyecto cuyo listado falla cuenta como un error, y los demás proyectos se leen igualmente: la ejecución termina como Parcial.

Note
Los recursos que desaparecen de Google Cloud se etiquetan cloud:stale solo después de una ejecución sin ningún error de ámbito. Nunca se eliminan del inventario. La etiqueta se retira cuando una sincronización posterior vuelve a ver el recurso.
Una ejecución que permanece En curso durante más de dos horas se considera detenida: deja de bloquear una nueva sincronización y la siguiente sincronización programada la marca como Fallido.
Ver los activos en el inventario
Los activos importados pertenecen al propietario y a la ubicación que eligió. Todos llevan la etiqueta cloud:gcp.
- Abra Inventory > Assets.
-
Abra el panel de búsqueda, vaya a la pestaña Tags, establezca el nombre de la etiqueta en
cloudy el valor engcp, y haga clic en Search.
-
Para acotar la lista, filtre por las demás etiquetas que añade el conector:
gcp:account(el ID del proyecto),gcp:region,gcp:resource(el nombre completo del recurso) ygcp:connector(el ID del conector).

Seguir la ruta de descubrimiento
Abra un nodo cloud, como una regla de reenvío, para ver su destino, etiquetas, propietario y ubicación. La tarjeta Discovery Path muestra de dónde procede el nodo: el proyecto de Google Cloud y después su recurso principal. Las direcciones públicas y los nombres de host de un nodo incluyen ese nodo en su propia ruta de descubrimiento, de modo que siempre puede saber qué proyecto y qué recurso los expusieron.

Editar, pausar o eliminar el conector
-
Editar permite cambiar el nombre, los ID de proyecto y de organización, la credencial, el propietario, la ubicación y el interruptor Activo. Deje vacía una clave guardada para conservarla, o pegue una nueva para reemplazarla.

-
Desactive Activo para pausar la sincronización programada conservando el conector.
- Eliminar borra el conector: los activos ya importados permanecen en el inventario y las sincronizaciones futuras se detienen.
- Para retirar también el acceso de Ostorlab en Google Cloud, elimine la cuenta de servicio
ostorlab-cloud-connector(o quite sus vinculaciones de IAM y la vinculación de creador de tokens que confía en Ostorlab). Eliminar la cuenta de servicio no elimina las vinculaciones de roles del proyecto o de la organización hechas para ella: quite tambiénroles/cloudasset.vieweryroles/browserpara ese miembro.
Solución de problemas
| Síntoma | Qué comprobar |
|---|---|
| «Google refused to issue a token for the service account ... Check that the organisation's Ostorlab service account has roles/iam.serviceAccountTokenCreator on it.» | El último paso del script no se ejecutó, o se eliminó la vinculación. Vuelva a ejecutar el script. |
| «Google refused the service account key. Check that the key and the service account ... are enabled.» | La clave se eliminó o desactivó, o la cuenta de servicio está desactivada. Cree una clave nueva y actualice el conector. |
| «Project ... is not active or cannot be read.» | El ID de proyecto es incorrecto, el proyecto se está eliminando, o la cuenta de servicio no tiene los roles en él. |
| «No active project found in scope.» | Conector de toda la organización: los roles se concedieron solo en el proyecto. Vuelva a ejecutar el script con ORGANIZATION_ID. |
| La comprobación Permisos falla | Las API del script no están habilitadas en el proyecto, o faltan los roles. Vuelva a ejecutar el script. |
| Error de formulario sobre la clave JSON | Pegue el archivo de clave completo: debe ser una clave de cuenta de servicio ("type": "service_account") con un client_email y un private_key. |
| La prueba indica que la conexión no está disponible por ahora | Un problema del lado de Ostorlab, no de su proyecto. Inténtelo de nuevo más tarde y contacte con el soporte si persiste. |
| «The cloud connector is disabled.» | Active Activo en el formulario de edición del conector. |
| «A sync of this cloud connector is already running.» | Espere a que termine la sincronización en curso. |
| Faltan recursos que esperaba | Puede que no tengan dirección externa, o que estén en una zona DNS privada. El conector solo conserva los recursos expuestos a Internet. |