Exportar resultados en bloque a BigQuery

En este documento se describe cómo iniciar exportaciones en bloque bajo demanda de las detecciones de Security Command Center a BigQuery.

BigQuery es el almacén de datos de analíticas rentable, totalmente gestionado y a escala de petabytes de Google Cloudcon el que puedes ejecutar analíticas de grandes cantidades de datos casi en tiempo real. Para obtener más información sobre BigQuery, consulta la documentación de BigQuery.

Información general

Esta función ofrece una vista general de los resultados hasta un momento determinado. Esta función complementa la exportación continua de BigQuery para ofrecer analíticas e informes completos.

Con las exportaciones en bloque, puedes hacer lo siguiente:

Estructura del conjunto de datos

Los resultados se exportan a BigQuery como filas de la tabla findings, que se agrupa por source_id, finding_id y event_time.

Cada conjunto de datos contiene una tabla findings con los siguientes campos:

Campo Descripción
source_id

Es un identificador único que Security Command Center asigna a la fuente de un hallazgo. Por ejemplo, todas las detecciones de la fuente Detección de anomalías de Cloud tienen el mismo valor source_id.

Ejemplo: 1234567890

finding_id Identificador único que representa la detección. Es único en una fuente de una organización. Es alfanumérico y tiene 32 caracteres o menos.
event_time

Hora en la que se produjo el evento o la hora en la que se actualizó el resultado. Por ejemplo, si el resultado representa un firewall abierto, event_time captura la hora en la que el detector cree que se abrió el firewall. Si el hallazgo se resuelve después, esta hora refleja el momento en que se resolvió.

Ejemplo: 2019-09-26 12:48:00.985000 UTC

bulk_export_id

En el caso de las exportaciones en bloque (Vista previa), se trata de un UUID.

En el caso de las exportaciones continuas, este campo está vacío.

finding

Un registro de datos de evaluación, como seguridad, riesgos, salud o privacidad, que se ingiere en Security Command Center para su presentación, notificación, análisis, prueba de políticas y aplicación. Por ejemplo, una vulnerabilidad de cross-site scripting (XSS) en una aplicación de App Engine es un resultado.

Para obtener más información sobre los campos anidados, consulta la referencia de la API del objeto Finding.

resource

Información relacionada con el Google Cloud recurso asociado a este resultado.

Para obtener más información sobre los campos anidados, consulta la referencia de la API del objeto Resource.

Coste

Se le aplican cargos de BigQuery relacionados con esta función por almacenar datos en BigQuery. Para obtener más información, consulta los precios del almacenamiento de BigQuery.

Antes de empezar

Debe completar estos pasos antes de habilitar esta función.

Configurar permisos

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

Crear un conjunto de datos de BigQuery

Crea un conjunto de datos de BigQuery siguiendo los pasos que se indican en Crear conjuntos de datos.

Habilitar la API de Security Command Center

Para exportar resultados, debes habilitar la API de Security Command Center siguiendo estos pasos:

  1. Ve a la página Biblioteca de APIs de la Google Cloud consola.

    Ir a la biblioteca de APIs

  2. Selecciona el proyecto en el que quieras habilitar la API de Security Command Center.

  3. En el campo Buscar, introduce Security Command Center y, a continuación, haz clic en Security Command Center en los resultados de búsqueda.

  4. En la página de la API que aparece, haz clic en Habilitar.

La API de Security Command Center está habilitada en tu proyecto.

Conceder acceso al perímetro en Controles de Servicio de VPC

Si usas Controles de Servicio de VPC, consulta el artículo Conceder acceso al perímetro en Controles de Servicio de VPC y sigue los pasos que se indican, si es necesario.

Este paso debe repetirse con cada usuario que cree una exportación en bloque para un perímetro de servicio determinado.

Crea una regla de entrada para la nueva exportación masiva de BigQuery

Si usas Controles de Servicio de VPC, consulta el artículo Crear una regla de entrada para la nueva exportación a BigQuery y sigue los pasos que se indican, si es necesario.

Limitaciones de las exportaciones masivas de BigQuery

Ten en cuenta las siguientes restricciones al crear exportaciones en bloque de BigQuery:

  • Solo se permiten tres exportaciones en bloque simultáneas en cualquier momento para una sola organización.
  • Si solicita varias exportaciones masivas no simultáneas al mismo conjunto de datos de BigQuery, las detecciones más recientes de la exportación se añadirán a la tabla findings de BigQuery. Los resultados no se sobrescriben.

Crear una exportación de BigQuery en bloque

La exportación en bloque de resultados solo se puede realizar a nivel de organización.

Para iniciar una exportación en bloque de resultados a una instancia de BigQuery, usa la CLI de gcloud y sigue estos pasos:

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. Selecciona el proyecto en el que has habilitado la API de Security Command Center.

  3. Haz clic en Activar Cloud Shell.

  4. Para crear una configuración de exportación, ejecuta el siguiente comando:

    gcloud scc findings export-to-bigquery PARENT \
        --dataset=DATASET_NAME \
        [--location=LOCATION; default="global"] \
    

    Haz los cambios siguientes:

    • PARENT: nombre relativo del ámbito de exportación. Formato de ejemplo: organizations/ORGANIZATION_ID
    • DATASET_NAME: el nombre del conjunto de datos de BigQuery. Formato de ejemplo: projects/PROJECT_ID/datasets/DATASET_ID
    • LOCATION: la ubicación de Security Command Center en la que se creará una configuración de exportación. Si la residencia de datos está habilitada, usa eu, sa o us. De lo contrario, usa el valor global. Esta variable es opcional.

      Por ejemplo, para crear una exportación en bloque de todos los resultados, ejecuta el siguiente comando:

      gcloud scc findings export-to-bigquery organizations/123
        --dataset=projects/123/datasets/DATASET
      

      En cuanto a la residencia de los datos, el ejemplo anterior llama al endpoint global.

      Para crear la misma exportación en bloque para el endpoint eu, ejecuta el siguiente comando:

      gcloud scc findings export-to-bigquery organizations/123
        --dataset=projects/123/datasets/DATASET
        --location=locations/eu
      

Este comando devuelve un objeto de operación de larga duración que contiene una cadena name que se necesita para monitorizar el estado de la exportación. Para hacer un seguimiento del estado de esta exportación masiva de BigQuery, consulte Ver el estado de una exportación masiva.

Para revisar los resultados, consulta Revisar resultados.

Consultas

Para ver una serie de consultas que puede usar para analizar los datos de resultados, consulte Consultas útiles.

Ver el estado de una exportación en bloque

Para ver el estado de una exportación en bloque, necesitas la long running operation name cadena que se te devolvió cuando creaste la exportación en bloque.

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. Selecciona el proyecto en el que has habilitado la API de Security Command Center.

  3. Haz clic en Activar Cloud Shell.

  4. Para verificar los detalles de la configuración de exportación en bloque, ejecuta el siguiente comando:

    gcloud scc operations describe LONG_RUNNING_OPERATION_NAME \
        --organization=ORGANIZATION_ID
    

    Haz los cambios siguientes:

    • LONG_RUNNING_OPERATION_NAME: la cadena name devuelta cuando creaste la exportación en bloque.
    • ORGANIZATION_ID

      Por ejemplo, para ver el estado de una solicitud de exportación en bloque devuelta name: "long-running-operation-name" de una organización con un ID de organización definido como 123, ejecuta el siguiente comando:

      gcloud scc operations describe long-running-operation-name \
        --organization=123
      
  • Si una exportación se ha completado correctamente, la respuesta contiene done: true.
  • Si una exportación ha fallado, la respuesta contiene un código de error.
  • Si una exportación sigue en curso, la respuesta no contiene ni done: true ni un código de error.

Exportaciones masivas y continuas de BigQuery

Si quiere usar las exportaciones de BigQuery en bloque y continuas juntas en el mismo conjunto de datos de BigQuery, puede hacerlo de dos formas:

  • Crea primero una exportación continua y, después, rellena los datos con una exportación en bloque.

    1. Configura una exportación continua a un conjunto de datos de BigQuery. Una vez que se haya creado la exportación, empezarás a recibir resultados de Security Command Center en tiempo real.

    2. Crea una exportación en bloque con el mismo conjunto de datos de BigQuery de destino. Se exporta una instantánea de todos los resultados de Security Command Center en el momento de la exportación al conjunto de datos seleccionado.

    Una exportación en bloque tarda en ejecutarse. Por lo tanto, si la exportación continua se crea en T1, la exportación en bloque se activa en T2 y la instantánea de los resultados de la exportación en bloque se completa en T3, es posible que se vean registros duplicados entre T1 y T3. Sin embargo, no hay lagunas en los hallazgos.

  • Crea primero una exportación en bloque y, después, una exportación continua.

    1. Crea una exportación en bloque. Se exporta una instantánea de todos los resultados de Security Command Center en el momento en que se ejecutan las exportaciones al conjunto de datos de BigQuery seleccionado.

    2. Configura una exportación continua al mismo conjunto de datos de BigQuery de destino. Una vez que se haya creado la exportación, empezarás a recibir los resultados de Security Command Center en tiempo real.

    Si la exportación masiva se crea en T1, la instantánea de las detecciones de la exportación masiva se completa en T2 y la exportación continua se activa en T3, es posible que falten detecciones entre T2 y T3 en el conjunto de datos de BigQuery.

Siguientes pasos