Habilitar notificaciones de chat y de correo electrónico en tiempo real

Información general

Security Command Center proporciona notificaciones en tiempo real de los resultados en laGoogle Cloud consola. En esta guía se describe cómo usar Google Cloud servicios y APIs de terceros para ampliar esa función y recibir notificaciones casi en tiempo real en aplicaciones de correo y chat. Cuando completes la guía, recibirás alertas sobre nuevos hallazgos en los servicios de terceros configurados sin tener que iniciar sesión en la consola Google Cloud , lo que te permitirá priorizar las vulnerabilidades y las amenazas más rápidamente. Consulta más información sobre los distintos tipos de vulnerabilidades y amenazas en Security Command Center.

Topología

En esta guía, crearás la configuración que se muestra en el siguiente diagrama.

Flujo de trabajo de notificaciones casi en tiempo real (haz clic para ampliar)
Flujo de trabajo de notificaciones casi en tiempo real de Security Command Center (haz clic en la imagen para ampliarla)

Objetivos

En esta guía, harás lo siguiente:

  1. Configura un tema de Pub/Sub.
  2. Configura Slack, Webex Teams y Twilio SendGrid Mail.
  3. Escribe código en Cloud Run Functions.
  4. Configura las funciones de Pub/Sub y Cloud Run para enviar notificaciones a Slack, Webex Teams o Twilio SendGrid Mail cada vez que se escriba una nueva incidencia de gravedad alta o crítica en Security Command Center.
  5. Soluciona problemas con las notificaciones.

Costes

En este tutorial se usan componentes facturables de Google Cloud, como los siguientes:

  • Pub/Sub
  • Cloud Run Functions
  • Cloud Build

Usa la calculadora de precios para generar una estimación de costes en función del uso previsto.

Antes de empezar

Para completar esta guía, debes tener los siguientes roles de Gestión de Identidades y Accesos (IAM):

  • Administrador de la organización (roles/resourcemanager.organizationAdmin)
  • Administrador del centro de seguridad (roles/securitycenter.admin)
  • Administrador de seguridad (roles/iam.securityAdmin)
  • Un rol con el permiso serviceusage.services.use, como Propietario (roles/owner), Editor (roles/editor) o un rol personalizado
  • Crear cuentas de servicio (roles/iam.serviceAccountCreator)
  • Editor de Pub/Sub (roles/pubsub.editor)
  • Administrador de cuenta de facturación (roles/billing.admin)

Los roles de gestión de identidades y accesos de Security Command Center se pueden conceder a nivel de organización, carpeta o proyecto. La posibilidad de ver, editar, crear o actualizar hallazgos, recursos y fuentes de seguridad depende del nivel de acceso que se te haya concedido. Para obtener más información sobre los roles de Security Command Center, consulta Control de acceso.

Configurar un proyecto

Sigue estos pasos para crear o seleccionar un proyecto.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  14. Tiempo estimado: se tarda aproximadamente una hora en configurar y probar las notificaciones de un solo servicio.

    Configurar un tema de Pub/Sub

    Pub/Sub es un servicio de mensajería en tiempo real que permite enviar y recibir mensajes entre aplicaciones independientes. Consulta más información sobre Pub/Sub.

    En esta sección, configurará Security Command Center para que publique resultados en un tema de Pub/Sub.

    Para configurar un tema de Pub/Sub y suscribirte a él, sigue estos pasos:

    1. Especifique su proyecto de Google Cloud en una variable de entorno.

      export PROJECT_ID=PROJECT_ID
      

      Sustituye PROJECT_ID por el ID del proyecto.

    2. Especifica tu Google Cloud organización en una variable de entorno.

      export ORG_ID=ORG_ID
      

      Sustituye ORG_ID por el ID de tu organización.

    3. Define el ID de proyecto para los comandos de gcloud.

      gcloud config set project PROJECT_ID
      
    4. Crea el tema de Pub/Sub en el que se publican las notificaciones.

      gcloud pubsub topics create scc-critical-and-high-severity-findings-topic
      
    5. Especifica el tema en una variable de entorno.

      export TOPIC=projects/$PROJECT_ID/topics/scc-critical-and-high-severity-findings-topic
      
    6. Crea la suscripción que notifica a las funciones de Cloud Run para que envíen un correo o un mensaje de chat cuando se publiquen mensajes en el tema.

      gcloud pubsub subscriptions create scc-critical-and-high-severity-findings-sub \
        --topic scc-critical-and-high-severity-findings-topic
      
    7. Configura Security Command Center para que publique notificaciones en el tema. Se puede usar cualquier filtro compatible con la API ListFindings.

      El siguiente filtro publica notificaciones de las vulnerabilidades activas de gravedad alta y crítica en la ubicación global. Más información sobre cómo filtrar resultados

       gcloud scc notifications create scc-critical-high-severity \
           --pubsub-topic=$TOPIC \
           --organization=$ORG_ID \
           --location=global \
           --filter "(severity=\"HIGH\" OR severity=\"CRITICAL\") AND state=\"ACTIVE\""
      

    A continuación, crea o configura tu aplicación de correo o de chat para recibir notificaciones de Pub/Sub.

    Configurar una aplicación de mensajería

    En esta sección se describe cómo usar Pub/Sub y funciones de Cloud Run o funciones de Cloud Run (1.ª gen.) para habilitar notificaciones casi en tiempo real para la API Mail de Twilio SendGrid, Slack y Webex Teams.

    Correo de Twilio SendGrid

    Para habilitar las notificaciones por correo, sigue estos pasos:

    • Crea una cuenta de la API Mail de Twilio SendGrid y obtén una clave de API.
    • Crea y despliega una función de Cloud Run que envíe correos cuando se reciban notificaciones de Pub/Sub.

    Crear una cuenta de la API Mail de Twilio SendGrid

    En esta sección, crearás una cuenta de la API Mail de Twilio SendGrid y obtendrás una clave de API. Si ya tienes habilitado SendGrid, ve a la sección Obtener una clave de API de correo de Twilio SendGrid y asegúrate de que tu clave de API tenga los permisos adecuados.

    1. Ve a la Google Cloud consola.
      Ve a la Google Cloud consola
    2. En el cuadro de búsqueda de la parte superior de la página, busca API de correo de SendGrid. Búsqueda de SendGrid
    3. En la página siguiente, selecciona el plan que se ajuste a tus necesidades.

      Si es necesario, selecciona un proyecto para asociarlo a SendGrid. Es posible que necesites los permisos adecuados para gestionar las compras de la cuenta de facturación asociada al proyecto.

    4. Lee los términos y, si estás de acuerdo, haz clic en Suscribirme.

    5. Activa el servicio SendGrid haciendo clic en Registrarse en SendGrid.

    6. En la pantalla de registro, introduce un nombre de usuario, una contraseña y una dirección de correo electrónico. Acepta los términos del servicio y haz clic en Continuar.

    7. En el cuadro de diálogo de confirmación, haz clic en Volver a Google.

    Obtener una clave de API de correo de Twilio SendGrid

    1. Haz clic en Gestionar claves de API en el sitio web de SendGrid. Se abrirá una nueva pestaña con el sitio web de SendGrid. Gestionar claves de API

    2. Rellena el formulario o inicia sesión si se te solicita. A continuación, haz clic en Empezar.

    3. En el panel de menú, despliega Configuración y haz clic en Claves de API.

    4. En la siguiente pantalla, haz clic en el botón Crear clave de API.

    5. En Nombre de clave de API, introduce "Notificaciones por correo de SCC", selecciona Acceso completo y, a continuación, haz clic en el botón Crear y ver.

      Nombre de la clave de API

    6. Se te mostrará la clave de API. Registre el valor. Necesitarás estos datos en la siguiente sección.

    7. Haz clic en Listo. Se te mostrará el conjunto actual de claves de API. Cierra la pestaña y vuelve a la consola Google Cloud .

    A continuación, despliega una función de Cloud Run para enviar notificaciones a una dirección de correo electrónico.

    Crear la función de Cloud Run de SendGrid

    En esta sección, implementarás una función que envía notificaciones a tu cuenta de correo.

    1. Ve a Cloud Run Functions.
      Ir a Cloud Run Functions

    2. Asegúrate de que estás usando el mismo PROJECT_ID que usaste para crear el tema de Pub/Sub.

    3. Haz clic en Crear función. Función SendGrid

    4. Asigna el valor send-high-and-critical-finding-email-notification al campo Nombre de la función y Pub/Sub al campo Tipo de activador.

    5. Selecciona el tema de Pub/Sub que has creado en Configurar un tema de Pub/Sub.

    6. Haz clic en Guardar y, a continuación, en Siguiente.

    7. En la página siguiente, selecciona Python 3.8 en Entorno de ejecución. El ejemplo de código de esta sección está escrito en Python, pero puedes usar cualquier lenguaje compatible con las funciones de Cloud Run.

    8. En la lista de archivos, haz clic en requirements.txt y añade lo siguiente al campo de texto: sendgrid.

      Requisitos de SendGrid

    9. Haz clic en main.py y sustituye el contenido por el siguiente fragmento de código.

      import base64
      import json
      from sendgrid import SendGridAPIClient
      from sendgrid.helpers.mail import Mail
      
      def send_email_notification(event, context):
          """Triggered from a message on a Pub/Sub topic.
          Args:
               event (dict): Event payload.
               context (google.cloud.functions.Context): Metadata for the event.
          """
          pubsub_message = base64.b64decode(event['data']).decode('utf-8')
          message_json = json.loads(pubsub_message)
          message = Mail(
              from_email='noreply@yourdomain.com',
              to_emails='$EMAIL_ADDRESS',
              subject='New High or Critical Severity Finding Detected',
              html_content='A new high or critical severity finding was
              detected: ' + ''.join(message_json['finding']['category']))
          try:
              sg = SendGridAPIClient('$SENDGRID_EMAIL_API_KEY')
              response = sg.send(message)
              print(response.status_code)
              print(response.body)
              print(response.headers)
          except Exception as e:
              print(e)
      
          print(pubsub_message)
      
    10. Haz los cambios siguientes:

      • Cambia noreply@yourdomain.com por la dirección de correo desde la que quieras que se envíen los mensajes.
      • Cambia$EMAIL_ADDRESS por la dirección de correo del destinatario. Nota: Esta variable puede contener una matriz de direcciones de correo electrónico (['user1@yourdomain.com', 'user2@yourdomain.com']) o puedes escribir código personalizado para crear una variable dinámica que se asigne, por ejemplo, a una lista rotatoria de personas de guardia.
      • Cambia $SENDGRID_EMAIL_API_KEY por la clave de API que ya tengas o por la que hayas creado en la sección anterior.
    11. Ve al campo Punto de entrada e introduce el nombre de la función del fragmento de código (send_email_notification en este ejemplo).

    12. Haz clic en Desplegar. Se te redirigirá a la lista de funciones de Cloud Run, donde deberías ver la nueva función. Cuando aparezca una marca de verificación verde junto al nombre de la función, significa que se ha implementado correctamente. El proceso puede tardar unos minutos. Despliegue de la función SendGrid

    Slack

    Para enviar notificaciones a un canal de Slack, haz lo siguiente:

    • Crea una aplicación de Slack con los privilegios suficientes para publicar mensajes en un canal público de Slack.
    • Crea y despliega una función de Cloud Run que publique mensajes de chat en Slack cuando se reciban notificaciones de Pub/Sub.

    Crear una aplicación de Slack

    En esta sección, crearás una aplicación de Slack para recibir notificaciones.

    1. Ve a Aplicaciones de la API de Slack. La página se abre en una pestaña nueva.
    2. Inicia sesión o crea una cuenta.

    3. Selecciona Crear una aplicación.

    4. En Nombre de la aplicación, escriba SCC Finding Notifier.

    5. Selecciona el espacio de trabajo de Slack de desarrollo en el que quieras que el bot de Slack publique mensajes y, a continuación, haz clic en Crear aplicación.

    6. En el panel de navegación, selecciona OAuth y permisos.

      Permisos de Slack

    7. Ve a la sección Scopes (Ámbitos). Los ámbitos se dividen en dos categorías:

      • Ámbitos de tokens de bots
      • Ámbitos de token de usuario
    8. Para este ejercicio, no es necesario que añada un ámbito de token de usuario. En Ámbitos de token de bot, haz clic en Añadir un ámbito de OAuth e introduce lo siguiente:

      • chat:write
      • chat:write.public

        Permisos de Slack
    9. Desplázate hasta la parte superior de la página OAuth y permisos y haz clic en Instalar aplicación en Workspace.

    10. En el cuadro de diálogo de confirmación, haz clic en Permitir.

    11. Copia el token de acceso de OAuth del usuario bot para usarlo en la función de Cloud.

    A continuación, despliega una función de Cloud Run para enviar notificaciones a un grupo de Slack.

    Crear la función de Cloud Run de Slack

    En esta sección, implementarás una función para enviar notificaciones a tu cuenta de Slack.

    1. Ve a Cloud Run Functions.
      Ir a Cloud Run Functions

    2. Asegúrate de usar el mismo PROJECT_ID en el que se creó el tema de Pub/Sub.

    3. Haz clic en Crear función. Función SendGrid

    4. Asigna el valor slack-chat-high-and-critical-findings a Nombre de la función y Pub/Sub a Tipo de activador.

    5. Selecciona el tema de Pub/Sub que has creado en Configurar un tema de Pub/Sub.

    6. Haz clic en Guardar y, a continuación, en Siguiente.

    7. En la página siguiente, selecciona Python 3.8 en Entorno de ejecución. El ejemplo de código de esta sección está escrito en Python, pero puedes usar cualquier lenguaje compatible con las funciones de Cloud Run.

    8. Ve a la lista de archivos. Haz clic en requirements.txt y añade lo siguiente: requests. Requisitos de Slack

    9. Haz clic en main.py y sustituye su contenido por el siguiente fragmento de código.

      import base64
      import json
      import requests
      
      TOKEN = "BOT_ACCESS_TOKEN"
      
      def send_slack_chat_notification(event, context):
          pubsub_message = base64.b64decode(event['data']).decode('utf-8')
          message_json = json.loads(pubsub_message)
          finding = message_json['finding']
      
          requests.post("https://slack.com/api/chat.postMessage", data={
              "token": TOKEN,
              "channel": "#general",
              "text": f"A high severity finding {finding['category']} was detected!"
          })
      
    10. Sustituye BOT_ACCESS_TOKEN por el token de acceso OAuth de usuario bot que has creado con la aplicación de Slack.

    11. Ve al campo Punto de entrada e introduce el nombre de la función del fragmento de código (send_slack_chat_notification en este ejemplo).

    12. Haz clic en Desplegar. Se te redirigirá a la lista de funciones de Cloud Run, donde deberías ver la nueva función. Cuando aparezca una marca de verificación verde junto al nombre de la función, significa que se ha implementado correctamente. El proceso puede tardar un par de minutos. Los mensajes aparecen en el canal de Slack #general. Función de Slack

    WebEx

    Para enviar notificaciones a tu cuenta de Webex Teams, haz lo siguiente:

    • Crea una cuenta de servicio que tenga permisos para recuperar recursos de Security Command Center.
    • Crea un bot de Webex con los privilegios suficientes para publicar mensajes en tu espacio de trabajo.
    • Crea y despliega una función de Cloud Run que se suscriba a Pub/Sub y publique mensajes de chat en WebEx cuando se reciban notificaciones del tema de Pub/Sub.

    Crear una cuenta de servicio

    De forma predeterminada, las funciones de Cloud Run no pueden obtener recursos de Security Command Center. En esta sección, aprovisionará una cuenta de servicio que permita a las funciones de Cloud Run recuperar los recursos asociados a las detecciones.

    1. Ponle un nombre a tu cuenta de servicio y especifícala como variable de entorno.

      export SERVICE_ACCOUNT=ACCOUNT_NAME
      
    2. Crea la cuenta de servicio de tu proyecto.

      gcloud iam service-accounts create $SERVICE_ACCOUNT \
       --display-name "Service Account for SCC Finding Notifier WebEx Cloud Function" \
       --project $PROJECT_ID
      
    3. Asigna el rol securitycenter.assetsViewer a la cuenta de servicio a nivel de organización.

       gcloud organizations add-iam-policy-binding $ORG_ID \
         --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \
         --role='roles/securitycenter.assetsViewer'
      

    Crear un bot de Webex

    En esta sección, creará un bot de Webex que publicará mensajes en su espacio de trabajo.

    1. Inicia sesión en tu cuenta de Webex Teams y ve a la página Nuevo bot.

    2. En Nombre del bot, escribe "SCC Finding Notifier".

    3. Selecciona un nombre de usuario del bot descriptivo pero único (your-name-scc-finding-notifier-demo).

    4. En Icono, selecciona Predeterminado 1.

    5. En Descripción, escribe "Bot que notifica al equipo cuando se publica un resultado de gravedad alta o crítica en Security Command Center".

    6. Haz clic en Añadir bot.

    7. En la página de confirmación, copia el token de acceso del bot y guárdalo para usarlo en la función de Cloud Run.

    Añadir un bot de Webex a un espacio de trabajo

    En esta sección, se añade el bot de Webex a un espacio de trabajo.

    1. En el espacio de Webex en el que quieras que el bot publique notificaciones, despliega el panel de actividad. Panel de WebEx

    2. Selecciona Añadir personas.

    3. Escribe "SCC Finding Notifier" en el campo de texto y selecciona el bot que has creado en el menú desplegable. WebEx add

    4. Selecciona el botón Añadir y, a continuación, cierra el panel.

    5. Obtén el ID de sala del espacio de trabajo de la función de Cloud Run. En un ordenador, ve a https://developer.webex.com/docs/api/v1/rooms/list- rooms e inicia sesión si es necesario. Esta página usa la API WebEx para mostrar las salas a las que perteneces. Salas de WebEx

    6. Ve al panel de búsqueda.

    7. Selecciona la pestaña Probar en la parte superior del panel.

    8. Deja todas las opciones con sus valores predeterminados y haz clic en Ejecutar.

    9. En la pestaña Respuesta, recibirás una respuesta en formato JSON con una lista de items (o habitaciones). Busca el title de la sala en la que quieras que aparezcan las notificaciones y anota el valor id asociado. WebEx
response

    A continuación, despliega una función de Cloud Run para enviar notificaciones a tu espacio de trabajo de Webex.

    Crear la función de Cloud Run de Webex

    En esta sección, implementará una función para enviar notificaciones a su cuenta de Webex.

    1. Ve a Cloud Run Functions.
      Ir a Cloud Run Functions

    2. Selecciona el mismo PROJECT_ID en el que se creó el tema de Pub/Sub.

    3. Haz clic en Crear función. Función de WebEx

    4. Asigna el valor webex-teams-high-and-critical-findings al Nombre de la función y el valor Pub/Sub al Tipo de activador.

    5. Selecciona el tema de Pub/Sub que has creado en Configurar un tema de Pub/Sub.

    6. Despliega el campo Variables, redes y configuración avanzada.

    7. En Cuenta de servicio, busca y selecciona la cuenta de servicio webex-cloud-function-saque has creado. Variables de WebEx

    8. Haz clic en Guardar y, a continuación, en Siguiente.

    9. En la página siguiente, selecciona Python 3.8 en Entorno de ejecución. El ejemplo de código de esta sección está escrito en Python, pero puedes usar cualquier lenguaje compatible con las funciones de Cloud Run.

    10. Ve a la lista de archivos. Haz clic en requirements.txt y añade lo siguiente:

      • requests==2.25.1
      • google-cloud-securitycenter==1.1.0 Requisitos de WebEx
    11. Haz clic en main.py y sustituye el contenido por el siguiente fragmento de código.

      #!/usr/bin/env python3
      import base64
      import json
      
      import requests
      from google.cloud import securitycenter_v1
      
      WEBEX_TOKEN = "WEBEX_TOKEN"
      ROOM_ID = "ROOM_ID"
      
      TEMPLATE = """
      **Severity:** {severity}\n
      **Asset:** {asset}\n
      **SCC Category:** {category}\n
      **Project:** {project}\n
      **First observed:** {create_time}\n
      **Last observed:** {event_time}\n
      **Link to finding:** {finding_link}
      """
      
      PREFIX = "https://console.cloud.google.com/security/command-center/findings"
      
      def get_finding_detail_page_link(finding_name):
          """Constructs a direct link to the finding detail page."""
          org_id = finding_name.split("/")[1]
          return f"{PREFIX}?organizationId={org_id}&resourceId={finding_name}"
      
      def get_asset(parent, resource_name):
          """Retrieves the asset corresponding to `resource_name` from SCC."""
          client = securitycenter_v1.SecurityCenterClient()
          resp = client.list_assets(
              securitycenter_v1.ListAssetsRequest(
                  parent=parent,
                  filter=f'securityCenterProperties.resourceName="{resource_name}"',
              )
          )
          page = next(resp.pages)
          if page.total_size == 0:
              return None
          asset = page.list_assets_results[0].asset
          return json.loads(securitycenter_v1.Asset.to_json(asset))
      
      def send_webex_teams_notification(event, context):
          """Send the notification to WebEx Teams."""
          pubsub_message = base64.b64decode(event["data"]).decode("utf-8")
          message_json = json.loads(pubsub_message)
          finding = message_json["finding"]
      
          parent = "/".join(finding["parent"].split("/")[0:2])
          asset = get_asset(parent, finding["resourceName"])
      
          requests.post(
              "https://webexapis.com/v1/messages",
              json={
                  "roomId": ROOM_ID,
                  "markdown": TEMPLATE.format(
                      severity=finding["severity"],
                      asset=asset["securityCenterProperties"]["resourceDisplayName"],
                      category=finding["category"],
                      project=asset["resourceProperties"]["project"],
                      create_time=finding["createTime"],
                      event_time=finding["eventTime"],
                      finding_link=get_finding_detail_page_link(finding["name"]),
                  ),
              },
              headers={"Authorization": f"Bearer {WEBEX_TOKEN}"},
          )
      
    12. Haz los cambios siguientes:

      • WEBEX_TOKEN con el token de acceso del bot de la sección Crear un bot de Webex.
      • ROOM_ID con el ID de sala de la sección Añadir bot de Webex al espacio de trabajo.
    13. Ve al campo Punto de entrada e introduce el nombre de la función del fragmento de código (send_webex_teams_notification en este ejemplo).

    14. Haz clic en Desplegar. Se te redirigirá a la lista de funciones de Cloud Run, donde deberías ver la nueva función. Cuando aparezca una marca de verificación verde junto al nombre de la función, significa que se ha implementado correctamente. El proceso puede tardar unos minutos. Implementación de WebEx

    Si has completado los pasos anteriores para el servicio seleccionado sin errores, la configuración habrá finalizado y empezarás a recibir notificaciones. Importante:

    • Recibes un correo o un mensaje de chat independiente por cada hallazgo crítico o de gravedad alta. La frecuencia o el número de notificaciones dependen de los recursos de tu organización.
    • Las notificaciones se publican y se envían casi en tiempo real. Sin embargo, no se garantiza la inmediatez de los correos o mensajes, y varios factores pueden provocar retrasos, como problemas con Twilio Sendgrid Mail, tu sistema de correo, Slack o WebEx.

    Para cambiar el flujo de trabajo de las notificaciones, puedes hacer lo siguiente:

    • Cambia los destinatarios actualizando tu función de Cloud Run.
    • Para cambiar qué resultados activan las notificaciones, actualiza el filtro del tema de Pub/Sub.

    Probar notificaciones

    Para comprobar si las notificaciones están configuradas correctamente, siga las instrucciones que se indican a continuación para cambiar el estado de las incidencias de gravedad alta entre activo e inactivo.

    1. Ve a la página Resultados de Security Command Center.
      Ve a la página Resultados
    2. Si se te solicita, selecciona tu organización.
    3. En el panel Filtros rápidos, desplázate hacia abajo hasta la sección Gravedad y selecciona Alta o Crítica. El panel Resultados de la consulta de detecciones se actualiza para mostrar las detecciones de la gravedad seleccionada.
    4. En el panel Resultados de la consulta de detecciones, selecciona una detección marcando la casilla situada junto a su nombre.
    5. En el menú Cambiar estado activo de la barra de acciones Resultados de la consulta de vulnerabilidades, selecciona Inactivo. Si la consulta de hallazgos actual solo muestra hallazgos activos, el hallazgo se elimina de los resultados de la consulta.
    6. En el panel Filtros rápidos, desplázate hacia abajo hasta la sección Estado y cambia las selecciones para que solo esté seleccionada la opción Inactivo. El panel Resultados de la consulta de hallazgos se actualiza para mostrar solo los hallazgos inactivos.
    7. En el panel Resultados de la consulta de detecciones, selecciona la detección que has marcado como inactiva.
    8. En el menú Cambiar estado activo de la barra de acciones Resultados de la consulta de vulnerabilidades, selecciona Activo.
    9. Consulta tu correo o servicio de mensajería. Deberías ver un mensaje similar a las imágenes que se muestran a continuación.

    Email:

    Notificación por correo electrónico

    Slack:

    Notificación de Slack

    Los mensajes enviados a WebEx, que contienen más información en esta guía, se parecen a la siguiente imagen.

    Notificación de WebEx

    Solución de problemas

    Si no se envían ni se reciben correos ni mensajes de chat, sigue los pasos que se indican a continuación para identificar y resolver posibles problemas.

    • Correo de Twilio SendGrid:

      • Para evitar que los correos se envíen a la carpeta de spam, añade el valor from_email a tu lista de direcciones permitidas o configura la autenticación de remitentes en SendGrid.
      • Asegúrate de no superar el límite de frecuencia de tu plan de SendGrid.
      • Los correos fallidos se pueden detectar a través de los informes de SendGrid.
        • Es posible que la política de DMARC de tu dominio o proveedor de correo bloquee los mensajes de remitentes no autenticados. Consulta cómo gestiona SendGrid la identidad del remitente. Si hay un error, prueba con otra dirección de correo en el from_email valor.
    • Twilio Sendgrid Mail, Slack y WebEx:

      1. Consulta los registros de Stackdriver de tu función de Cloud Run para determinar si se está invocando. Si no se invoca, asegúrate de que las notificaciones estén configuradas correctamente.

      2. Si se está invocando la función de Cloud Run, es posible que se esté fallando. Comprueba si hay errores en las funciones de Cloud Run mediante Google Cloud Error Reporting de la consola.

    Eliminar los recursos utilizados

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en este tutorial, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.

    Eliminar el proyecto

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Eliminar recursos concretos

    1. Elimina la configuración de notificaciones:

      gcloud scc notifications delete scc-critical-high-severity \
          --organization=ORG_ID \
          --location=global
      

      Sustituye ORG_ID por el ID de tu organización.

      Para mantener tu configuración y pausar temporalmente las notificaciones, comenta las llamadas send o post en tu función de Cloud Run.

    2. Elimina tu función de Cloud Run:

      1. Ve a Cloud Run Functions.
        Ir a Cloud Run Functions
      2. Marca la casilla situada junto a la función que quieras eliminar.
      3. Haz clic en Eliminar .
    3. Elimina la cuenta de servicio:

      1. Ve a la página Cuentas de servicio.
        Ir a la página Cuentas de servicio
      2. Selecciona un proyecto.
      3. Selecciona la cuenta de servicio que quieras eliminar y, a continuación, haz clic en Eliminar .

    Siguientes pasos