En esta página se explica cómo habilitar las notificaciones de la API de Security Command Center.
Las notificaciones envían resultados y novedades al respecto a un tema de Pub/Sub en cuestión de minutos. Las notificaciones de la API de Security Command Center incluyen toda la información de las detecciones que muestra Security Command Center en laGoogle Cloud consola.
Puedes conectar las notificaciones de Security Command Center en Pub/Sub directamente a las acciones de Cloud Run Functions. Para ver funciones de ejemplo que pueden ayudarte con la respuesta, el enriquecimiento y la corrección, consulta el repositorio de código abierto de funciones de Cloud Run de Security Command Center. El repositorio contiene soluciones que te ayudarán a tomar medidas automatizadas en función de los resultados de seguridad.
También puede exportar los resultados a BigQuery o configurar Exportaciones continuas para Pub/Sub en la Google Cloud consola.
Antes de empezar
-
Para obtener los permisos que necesitas para configurar las notificaciones de la API de Security Command Center, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Administrador del Centro de Seguridad (
roles/securitycenter.admin
) en la organización o el proyecto en el que esté activado Security Command Center -
Administrador de gestión de identidades y accesos de proyectos (
roles/resourcemanager.projectIamAdmin
) en el proyecto en el que crearás tu tema de Pub/Sub
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Administrador del Centro de Seguridad (
-
Enable the Security Command Center API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable securitycenter.googleapis.com
Residencia de datos y notificaciones
Si la residencia de datos está habilitada en Security Command Center, las configuraciones que definen las exportaciones continuas a recursos de Pub/Sub (notificationConfig
) están sujetas al control de residencia de datos y se almacenan en tu ubicación de Security Command Center.
Para exportar resultados de una ubicación de Security Command Center a Pub/Sub, debes configurar la exportación continua en la misma ubicación de Security Command Center que los resultados.
Como los filtros que se usan en las exportaciones continuas pueden contener datos sujetos a controles de residencia, asegúrese de especificar la ubicación correcta antes de crearlos. Security Command Center no restringe la ubicación en la que creas las exportaciones.
Las exportaciones continuas solo se almacenan en la ubicación en la que se crean y no se pueden ver ni editar en otras ubicaciones.
Una vez que hayas creado una exportación continua, no podrás cambiar su ubicación. Para cambiar la ubicación, debes eliminar la exportación continua y volver a crearla en la nueva ubicación.
Para saber cómo usar Security Command Center cuando la residencia de datos está habilitada, consulta Endpoints regionales de Security Command Center.
Configurar un tema de Pub/Sub
En esta tarea, creará el tema de Pub/Sub al que quiere enviar notificaciones y se suscribirá a él.
Paso 1: Configura Pub/Sub
Para configurar un tema de Pub/Sub y suscribirte a él, sigue estos pasos:
Ve a la Google Cloud consola.
Selecciona el proyecto en el que has habilitado la API de Security Command Center.
Haz clic en Activar Cloud Shell.
Opcional: Para crear un tema de Pub/Sub, ejecuta el siguiente comando:
gcloud pubsub topics create TOPIC_ID
Sustituye
TOPIC_ID
por el nombre de un tema.Crea una suscripción al tema:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Haz los cambios siguientes:
SUBSCRIPTION_ID
: el ID de suscripciónTOPIC_ID
: el ID del tema
Para obtener más información sobre cómo configurar Pub/Sub, consulta Gestionar temas y suscripciones.
Paso 2: Asigna el rol en el tema de Pub/Sub
Para crear un NotificationConfig
, necesitas el rol Administrador de Pub/Sub (roles/pubsub.admin
) en el tema de Pub/Sub para el que has creado una suscripción.
Para asignar este rol, sigue estos pasos:
Ve a la Google Cloud consola.
Selecciona el proyecto en el que has habilitado la API de Security Command Center.
Haz clic en Activar Cloud Shell.
Concede el rol necesario a tu cuenta de Google en el tema de Pub/Sub:
gcloud pubsub topics add-iam-policy-binding \ projects/PUBSUB_PROJECT/topics/TOPIC_ID \ --member="user:GOOGLE_ACCOUNT" \ --role="roles/pubsub.admin"
Haz los cambios siguientes:
PUBSUB_PROJECT
: el Google Cloud proyecto que contiene tu tema de Pub/SubTOPIC_ID
: el ID del temaGOOGLE_ACCOUNT
: la dirección de correo de tu cuenta de Google
Crear NotificationConfig
Antes de crear un NotificationConfig
, ten en cuenta que cada organización puede tener un número limitado de archivos NotificationConfig
. Para obtener más información, consulta Cuotas y límites.
El objeto NotificationConfig
incluye un campo filter
que limita las notificaciones a eventos útiles. Este campo acepta todos los filtros disponibles en el método
de la API de Security Command Center findings.list
.
Cuando creas un NotificationConfig
, debes especificar un elemento superior para el NotificationConfig
en la jerarquía de recursos Google Cloud , que puede ser una organización, una carpeta o un proyecto. Si necesitas recuperar, actualizar o eliminar el NotificationConfig
más adelante, debes incluir el ID numérico de la organización, la carpeta o el proyecto principal cuando hagas referencia a él.
En la consola de Google Cloud , algunos recursos de NotificationConfig
pueden tener la etiqueta Antiguo, que indica que se crearon con la API Security Command Center v1. Puedes gestionar estos recursos de NotificationConfig
Google Cloud con la consola, la CLI de gcloud, la API de Security Command Center v1 o las bibliotecas de cliente v1 de Security Command Center.
Para gestionar estos recursos de NotificationConfig
con gcloud CLI, no debes especificar una ubicación al ejecutar el comando gcloud CLI.
Para crear el NotificationConfig
con el lenguaje o la plataforma que elijas, sigue estos pasos:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Haz los cambios siguientes:
NOTIFICATION_NAME
: el nombre de la notificación. Debe tener entre 1 y 128 caracteres y solo puede contener caracteres alfanuméricos, guiones bajos o guiones.PARENT
: el ámbito de la jerarquía de recursos al que se aplica la notificación (organization
,folder
oproject
).PARENT_ID
: el ID de la organización, la carpeta o el proyecto principal, especificado en el formatoorganizations/123
,folders/456
oprojects/789
.LOCATION
: la ubicación de Security Command Center en la que se va a ; si la residencia de datos está habilitada, usaeu
,sa
ous
; de lo contrario, usa el valorglobal
.NOTIFICATION_DESCRIPTION
: una descripción de la notificación de no más de 1024 caracteres.PUBSUB_TOPIC
: el tema de Pub/Sub que recibirá las notificaciones. Su formato esprojects/PROJECT_ID/topics/TOPIC
.FILTER
: la expresión que defines para seleccionar qué resultados se envían a Pub/Sub. Por ejemplo,state=\"ACTIVE\"
.
Terraform
Para crear un NotificationConfig
para una organización, sigue estos pasos:
Para crear un NotificationConfig
de una carpeta, sigue estos pasos:
Crear un NotificationConfig
para un proyecto:
Go
Java
Node.js
Python
Las notificaciones se publican en el tema de Pub/Sub que has especificado.
Para publicar notificaciones, se crea una cuenta de servicio con el formato service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
.
Esta cuenta de servicio se crea cuando creas tu primer NotificationConfig
y se le asigna automáticamente el rol securitycenter.notificationServiceAgent
en la política de gestión de identidades y accesos de PUBSUB_TOPIC al crear la configuración de notificaciones. Este rol de cuenta de servicio es necesario para que funcionen las notificaciones.
Conceder acceso al perímetro en Controles de Servicio de VPC
Si usas Controles de Servicio de VPC y tu tema de Pub/Sub forma parte de un proyecto que está dentro de un perímetro de servicio, debes conceder acceso a los proyectos para crear notificaciones.
Para conceder acceso a los proyectos, crea reglas de entrada y salida para las entidades y los proyectos que se utilicen para crear notificaciones. Las reglas permiten acceder a los recursos protegidos y permiten que Pub/Sub verifique que los usuarios tienen el permiso setIamPolicy
en el tema de Pub/Sub.
Antes de crear NotificationConfig
Antes de completar los pasos que se indican en Crear un NotificationConfig, sigue estos pasos.
Consola
-
En la Google Cloud consola, ve a la página Controles de Servicio de VPC.
- Selecciona tu organización o proyecto.
- Si has seleccionado una organización, haz clic en Seleccionar una política de acceso y, a continuación, selecciona la política de acceso asociada al perímetro que quieras actualizar.
-
Haz clic en el nombre del perímetro que quieras actualizar.
Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. En esas entradas, comprueba el camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
- Haz clic en Editar perímetro.
- Haz clic en Política de salida.
- Haz clic en Añadir una regla de salida.
-
En la sección DE, define los siguientes detalles:
- En Identidad, selecciona Seleccionar identidades y grupos.
- Haz clic en Añadir identidades.
-
Introduce la dirección de correo del principal que se ha usado para llamar a la API de Security Command Center.
- Selecciona el principal o pulsa INTRO y, a continuación, haz clic en Añadir identidades.
-
En la sección PARA, indica los siguientes detalles:
- En Proyecto, selecciona Todos los proyectos.
- En Roles de operaciones o de gestión de identidades y accesos, selecciona Seleccionar operaciones.
-
Haz clic en Añadir operaciones y, a continuación, añade las siguientes operaciones:
- Añade el servicio pubsub.googleapis.com.
- Haz clic en Todos los métodos.
- Haz clic en Añadir todos los métodos.
- Añade el servicio pubsub.googleapis.com.
- Haz clic en Política de entrada.
- Haz clic en Añadir una regla de entrada.
-
En la sección DE, define los siguientes detalles:
- En Identidad, selecciona Seleccionar identidades y grupos.
- Haz clic en Añadir identidades.
-
Introduce la dirección de correo del principal que se ha usado para llamar a la API de Security Command Center.
- Selecciona el principal o pulsa INTRO y, a continuación, haz clic en Añadir identidades.
- En Fuentes, selecciona Todas las fuentes.
-
En la sección PARA, indica los siguientes detalles:
- En Proyecto, selecciona Seleccionar proyectos.
- Haz clic en Añadir proyectos y, a continuación, añade el proyecto que contiene el tema de Pub/Sub.
- En Roles de operaciones o de gestión de identidades y accesos, selecciona Seleccionar operaciones.
-
Haz clic en Añadir operaciones y, a continuación, añade las siguientes operaciones:
- Añade el servicio pubsub.googleapis.com.
- Haz clic en Todos los métodos.
- Haz clic en Añadir todos los métodos.
- Añade el servicio pubsub.googleapis.com.
- Haz clic en Guardar.
gcloud
-
Si aún no se ha definido un proyecto de cuota, hazlo. Elige un proyecto que tenga habilitada la API Access Context Manager.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Sustituye
QUOTA_PROJECT_ID
por el ID del proyecto que quieras usar para la facturación y la cuota. -
Crea un archivo llamado
egress-rule.yaml
con el siguiente contenido:- egressFrom: identities: - PRINCIPAL_ADDRESS egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Sustituye
PRINCIPAL_ADDRESS
por la dirección de la cuenta principal que se ha usado para llamar a la API de Security Command Center. -
Crea un archivo llamado
ingress-rule.yaml
con el siguiente contenido:- ingressFrom: identities: - PRINCIPAL_ADDRESS sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Sustituye
PRINCIPAL_ADDRESS
por la dirección de la cuenta principal que se ha usado para llamar a la API de Security Command Center. -
Añade la regla de salida al perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-egress-policies=egress-rule.yaml
Haz los cambios siguientes:
-
PERIMETER_NAME
: el nombre del perímetro. Por ejemplo,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. En esas entradas, comprueba el camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
-
Añade la regla de entrada al perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Haz los cambios siguientes:
-
PERIMETER_NAME
: el nombre del perímetro. Por ejemplo,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. En esas entradas, comprueba el camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Consulta más información sobre las reglas de entrada y salida.
Crear una regla de entrada para NotificationConfig
Para crear una regla de entrada para un NotificationConfig
, sigue las instrucciones de Crear un NotificationConfig y, a continuación, completa los pasos que se indican a continuación.
Consola
-
Vuelve a abrir el perímetro de servicio de la sección anterior.
- Haz clic en Política de entrada.
- Haz clic en Añadir una regla de entrada.
-
En la sección DE, define los siguientes detalles:
- En Identidad, selecciona Seleccionar identidades y grupos.
- Haz clic en Añadir identidades.
-
Escribe la dirección de correo del agente del servicio
NotificationConfig
. La dirección del agente de servicio tiene el siguiente formato:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
Sustituye
ORGANIZATION_ID
por el ID de tu organización. - Selecciona el agente de servicio o pulsa INTRO y, a continuación, haz clic en Añadir identidades.
- En Fuentes, selecciona Todas las fuentes.
-
En la sección PARA, indica los siguientes detalles:
- En Proyecto, selecciona Seleccionar proyectos.
- Haz clic en Añadir proyectos y, a continuación, añade el proyecto que contiene el tema de Pub/Sub.
- En Roles de operaciones o de gestión de identidades y accesos, selecciona Seleccionar operaciones.
-
Haz clic en Añadir operaciones y, a continuación, añade las siguientes operaciones:
- Añade el servicio pubsub.googleapis.com.
- Haz clic en Todos los métodos.
- Haz clic en Añadir todos los métodos.
- Añade el servicio pubsub.googleapis.com.
- Haz clic en Guardar.
gcloud
-
Si aún no se ha definido un proyecto de cuota, hazlo. Elige un proyecto que tenga habilitada la API Access Context Manager.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Sustituye
QUOTA_PROJECT_ID
por el ID del proyecto que quieras usar para la facturación y la cuota. -
Crea un archivo llamado
ingress-rule.yaml
con el siguiente contenido:- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Sustituye
ORGANIZATION_ID
por el ID de tu organización. -
Añade la regla de entrada al perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Haz los cambios siguientes:
-
PERIMETER_NAME
: el nombre del perímetro. Por ejemplo,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. En esas entradas, comprueba el camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Consulta más información sobre las reglas de entrada y salida.
Los proyectos, usuarios y cuentas de servicio seleccionados ahora pueden acceder a los recursos protegidos y crear notificaciones.
Si has seguido todos los pasos de esta guía y las notificaciones funcionan correctamente, ahora puedes eliminar lo siguiente:
- La regla de entrada de la cuenta principal
- La regla de salida de la cuenta principal
Esas reglas solo eran necesarias para configurar NotificationConfig
. Sin embargo, para que las notificaciones sigan funcionando, debes mantener la regla de entrada de NotificationConfig
, que le permite publicar notificaciones en tu tema de Pub/Sub detrás del perímetro de servicio.
Siguientes pasos
- Consulta cómo habilitar las notificaciones de chat y de correo electrónico en tiempo real.
- Consulta cómo gestionar la API Notifications.
- Consulta información sobre cómo filtrar notificaciones.