El Security Command Center (SCC) de Google Cloud te da una vista unificada de todos los posibles problemas de seguridad en tu entorno cloud. Pero ¿qué pasa cuando no tienes tiempo de revisar los hallazgos detectados o simplemente se te pasa? Si nadie los revisa, ese firewall abierto se queda abierto y ese bucket de almacenamiento sigue siendo público sin que nadie haya revisado su contenido.

¿Y si pudieras adelantarte a estos hallazgos y recibir notificaciones en tiempo real?
En este post vamos a ver cómo sacarle más partido a los hallazgos de SCC sumando la posibilidad de configurar alertas con Cloud Monitoring.
Cómo funciona
Una de las limitaciones de SCC es que no ofrece métricas ni alertas a través de Cloud Monitoring, ya que los hallazgos solo se ven a nivel de organización. Si exportas los hallazgos a PubSub [1] y los combinas con los scripts de este proyecto, las notificaciones quedan disponibles en Cloud Monitoring.
Con los scripts de este proyecto vas a poder:
- Automatizar el alta y baja de las notificaciones de SCC a PubSub dentro de tu proyecto
- Registrar los hallazgos en tu proyecto, dejando los datos disponibles para Cloud Logging y Cloud Monitoring
- Reducir o eliminar los scripts personalizados que tendrías que crear, apoyándote en las funciones estándar de GCP cuando existan

Requisitos
Para ejecutar los scripts vas a necesitar lo siguiente:
- ID de la organización: donde está ubicado tu proyecto
- ID del proyecto: donde se van a instalar los recursos
- Service Account: una service account para que corran las notificaciones de SCC
- Las siguientes APIs deben estar habilitadas en el proyecto: Security Command Center API para la organización, Cloud Build API y Cloud Functions API
- Vas a necesitar los siguientes roles de seguridad de IAM:
- Security Center Admin: para configurar las notificaciones
- Organization Admin: para configurar la service account con los roles necesarios
Instalación
Clonar el repositorio
Clona el repo en Cloud Shell. Si lo prefieres, también puedes clonarlo en una VM o en tu máquina local.
git clone https://github.com/gschaeffer/scc-findings-to-pubsub
Editar variables
Edita las variables del script en el archivo setup.sh. Tienes que editar los valores de organization id, project id y service account. Las demás variables son opcionales.
Ejecutar la configuración
Primero se instalan las notificaciones de SCC a PubSub tal como lo describe Google [1 arriba]. Usa el comando setup.sh, que automatiza el proceso. Asegúrate de que tu configuración de gcloud apunte al ID de tu proyecto.
gcloud config set core/project YOUR_PROJECT_ID ./setup.sh apply # if prompted with 'API [securitycenter.googleapis.com] not enabled # on project. Would you like to enable and retry?', select 'y'.
Esto crea únicamente los recursos descritos en la documentación de notificaciones de SCC [1]. A partir de aquí, deberías empezar a ver notificaciones llegando al topic de PubSub a medida que SCC las detecta.
Agregar una Cloud Function
En segundo lugar, para que los eventos de hallazgos estén disponibles en Cloud Monitoring, instala la Cloud Function que se incluye. Con eso, los hallazgos empiezan a fluir desde PubSub hacia Cloud Logging y Cloud Monitoring. El script de instalación está en el directorio functions.
cd functions/ ./deploy_logger_func.sh
Esto instala una función de Python muy sencilla que se dispara cada vez que se agrega un hallazgo al topic de PubSub. Después de instalarla, deberías empezar a ver entradas en Cloud Logging. Estas entradas se registran en un log llamado scc_notifications_log para que sea fácil encontrarlas.
Con los hallazgos ya en Cloud Logging, tienes a tu disposición todas las herramientas y servicios habituales de Google Cloud para configurar métricas y alertas https://cloud.google.com/monitoring/alerts. Y si quieres trabajar con estos datos en BigQuery, Cloud Storage o incluso en otro topic de PubSub, puedes usar Logging Exports https://cloud.google.com/logging/docs/export para enviarlos a donde prefieras.
Limpieza
Para eliminar los recursos instalados, usa el mismo comando setup con el argumento delete, y gcloud para eliminar la cloud function. Ajusta las variables del nombre de la función y de la región según sea necesario.
./setup.sh delete FUNCTION="scc_notification_handler" REGION= gcloud functions delete $FUNCTION --region $REGION
Publicado originalmente en https://github.com .