Ejecución de cuadernos en el lago de datos de Microsoft Sentinel

Los cuadernos de Jupyter Notebook proporcionan un entorno interactivo para explorar, analizar y visualizar datos en el lago de datos Microsoft Sentinel y las tablas federadas. Con los cuadernos, puede escribir y ejecutar código, documentar el flujo de trabajo y ver los resultados, todo en un solo lugar. Esto facilita la exploración de datos, la compilación de soluciones de análisis avanzados y el uso compartido de información con otros usuarios. Al aprovechar Python y Apache Spark dentro de Visual Studio Code, los cuadernos le ayudan a transformar los datos de seguridad sin procesar en inteligencia accionable.

En este artículo se muestra cómo explorar e interactuar con datos de Data Lake mediante cuadernos de Jupyter Notebook en Visual Studio Code.

Requisitos previos

Incorporación al lago de datos Microsoft Sentinel

Para usar cuadernos en el lago de datos Microsoft Sentinel, primero debe incorporarlos al lago de datos. Si no se ha incorporado al lago de datos de Sentinel, consulte Incorporación a Microsoft Sentinel lago de datos. Si se ha incorporado recientemente al lago de datos, puede tardar algún tiempo hasta que se ingiere suficiente volumen de datos para poder crear análisis significativos mediante cuadernos.

Permissions

Microsoft Entra ID roles proporcionan un acceso amplio a todas las áreas de trabajo del lago de datos. También puede conceder acceso a áreas de trabajo individuales mediante Azure roles de RBAC. Los usuarios con Azure permisos de RBAC para Microsoft Sentinel áreas de trabajo pueden ejecutar cuadernos en esas áreas de trabajo en el nivel de lago de datos. Para obtener más información, vea Roles y permisos en Microsoft Sentinel.

Opcionalmente, Microsoft Sentinel ámbito o RBAC de nivel de fila se puede configurar para restringir aún más el acceso a los datos dentro de un área de trabajo. Cuando está habilitado, el ámbito de nivel de fila limita los datos devueltos por las consultas en función del ámbito asignado por el usuario. Si el ámbito de nivel de fila no está configurado, el modelo de permisos de nivel de área de trabajo existente se aplica sin cambios. Para obtener más información, vea Configurar Microsoft Sentinel ámbito (RBAC de nivel de fila) (versión preliminar).

Para crear nuevas tablas personalizadas en el nivel de análisis, se debe asignar a la identidad administrada de Data Lake el rol Colaborador de Log Analytics en el área de trabajo de Log Analytics.

Para asignar el rol, siga estos pasos:

  1. En el Azure Portal, vaya al área de trabajo de Log Analytics a la que desea asignar el rol.
  2. Seleccione Control de acceso (IAM) en el panel de navegación izquierdo.
  3. Seleccione Agregar asignación de roles.
  4. En la tabla Rol, seleccione Colaborador de Log Analytics y, a continuación, seleccione Siguiente.
  5. Seleccione Identidad administrada y seleccione Seleccionar miembros.
  6. La identidad administrada de Data Lake es una identidad administrada asignada por el sistema denominada msg-resources-<guid>. Seleccione la identidad administrada y seleccione Seleccionar.
  7. Seleccione Revisar y asignar.

Para obtener más información sobre cómo asignar roles a identidades administradas, consulte Asignación de roles Azure mediante el Azure Portal.

Instalar Visual Studio Code y la extensión Microsoft Sentinel

Si aún no tiene Visual Studio Code, descargue e instale Visual Studio Code para Mac, Linux o Windows.

La extensión de Microsoft Sentinel para Visual Studio Code (VS Code) se instala desde marketplace de extensiones. Para instalar la extensión, siga estos pasos:

  1. Seleccione el Marketplace extensiones en la barra de herramientas de la izquierda.
  2. Busque Sentinel.
  3. Seleccione la extensión Microsoft Sentinel y seleccione Instalar.
  4. Una vez instalada la extensión, el Microsoft Sentinel el icono de sentinel aparece en la barra de herramientas izquierda.

Captura de pantalla que muestra la ubicación del mercado de extensiones.

Instale la extensión de GitHub Copilot para Visual Studio Code para habilitar la finalización de código y sugerencias en cuadernos.

  1. Busque GitHub Copilot en Marketplace de extensiones e instálelo.
  2. Después de la instalación, inicie sesión en GitHub Copilot con su cuenta de GitHub.

Exploración de tablas de niveles de Data Lake

Después de instalar la extensión Microsoft Sentinel, puede empezar a explorar las tablas de niveles de Data Lake y crear cuadernos de Jupyter Notebook para analizar los datos.

Inicio de sesión en la extensión Microsoft Sentinel

  1. Seleccione el Microsoft Sentinel el icono de sentinel en la barra de herramientas de la izquierda.

  2. Aparece un cuadro de diálogo con el texto siguiente La extensión "Microsoft Sentinel" quiere iniciar sesión con Microsoft. Seleccione Permitir.

    Captura de pantalla que muestra el cuadro de diálogo de inicio de sesión.

  3. Seleccione el nombre de la cuenta para completar el inicio de sesión.

    Captura de pantalla que muestra la lista de selección de cuentas en la parte superior de la página.

    Si tiene varias cuentas de invitado asociadas a su inicio de sesión, puede cambiar sin problemas entre cuentas. Para cambiar entre cuentas, seleccione el nombre de la cuenta en la parte inferior izquierda de la ventana de Visual Studio Code. Solo se puede seleccionar una cuenta a la vez.

    Captura de pantalla que muestra cómo cambiar cuentas en Visual Studio Code.

    Importante

    Al cambiar entre cuentas, se desconectan las sesiones de pyspark activas.

Visualización de tablas y trabajos de Data Lake

Una vez que inicie sesión, la extensión Sentinel muestra una lista de tablas y trabajos de Lake en el panel izquierdo. Las tablas se agrupan por la base de datos y la categoría. Las tablas federadas se muestran en la categoría Tablas federadas en Tablas del sistema. Seleccione una tabla para ver las definiciones de columna.

Para obtener información sobre los trabajos, vea Trabajos y programación. Para obtener más información sobre las tablas federadas, consulte Uso de tablas federadas en el lago de datos de Microsoft Sentinel.

Captura de pantalla que muestra la lista de tablas, trabajos y metadatos de la tabla seleccionada.

Creación de un cuaderno

  1. Para crear un cuaderno, use uno de los métodos siguientes.

  2. Escriba > en el cuadro de búsqueda o presione Ctrl+Mayús+P y, a continuación, escriba Crear nuevo Jupyter Notebook. Captura de pantalla que muestra cómo crear un cuaderno desde la barra de búsqueda.

  3. Seleccione Archivo > nuevo archivo y, a continuación, seleccione Jupyter Notebook en la lista desplegable.
    Captura de pantalla en la que se muestra cómo crear un nuevo cuaderno en el menú de archivos.

  4. En el nuevo cuaderno, pegue el código siguiente en la primera celda.

    from sentinel_lake.providers import MicrosoftSentinelProvider
    data_provider = MicrosoftSentinelProvider(spark)
    
    table_name = "EntraGroups"  
    df = data_provider.read_table(table_name)  
    df_filtered = df.select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId").show(100,   truncate=False)  
    
    # Transform the dataframe
    df_transformed = df.filter(df.mail.isNotNull()).select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId")
    
    write_options = {
         'mode': 'overwrite'
     }
    # Save to a new table
    data_provider.save_as_table(df_transformed, "EntraGroups_Processed_SPRK", write_options=write_options)
    

El editor proporciona la finalización de código de IntelliSense para la MicrosoftSentinelProvider clase y los nombres de tabla en el lago de datos.

  1. Seleccione el triángulo Ejecutar para ejecutar el código en el cuaderno. Los resultados se muestran en el panel de salida debajo de la celda de código.
    Captura de pantalla que muestra cómo ejecutar una celda del cuaderno.

  2. Seleccione Microsoft Sentinel en la lista para obtener una lista de grupos en tiempo de ejecución. Captura de pantalla que muestra el selector en tiempo de ejecución.

  3. Seleccione Medio para ejecutar el cuaderno en el grupo de tiempo de ejecución de tamaño medio. Para obtener más información sobre los distintos tiempos de ejecución, consulte Selección del entorno de ejecución de Microsoft Sentinel adecuado. Captura de pantalla que muestra el selector de tamaño del grupo de ejecución.

Nota:

Al seleccionar el kernel, se inicia la sesión de Spark y se ejecuta el código en el cuaderno. Después de seleccionar el grupo, la sesión puede tardar entre 3 y 5 minutos en iniciarse. Posteriormente se ejecuta más rápido, ya que la sesión ya está activa.

Cuando se inicia la sesión, se ejecuta el código del cuaderno y los resultados se muestran en el panel de salida debajo de la celda de código, por ejemplo: captura de pantalla que muestra los resultados de la ejecución de una celda del cuaderno.

Para ver cuadernos de ejemplo que muestran cómo interactuar con el lago de datos de Microsoft Sentinel, consulte Cuadernos de ejemplo para Microsoft Sentinel lago de datos.

Barra de estado

La barra de estado de la parte inferior del cuaderno proporciona información sobre el estado actual del cuaderno y la sesión de Spark. La barra de estado incluye la siguiente información:

  • Porcentaje de uso de núcleo virtual para el grupo de Spark seleccionado. Mantenga el puntero sobre el porcentaje para ver el número de núcleos virtuales usados y el número total de núcleos virtuales disponibles en el grupo. Los porcentajes representan el uso actual en cargas de trabajo interactivas y de trabajo para la cuenta que ha iniciado sesión.

  • Estado de conexión de la sesión de Spark, por ejemplo Connecting, , Connectedo Not Connected.

Captura de pantalla que muestra la barra de estado en la parte inferior del cuaderno.

Establecer tiempos de espera de sesión

Puede establecer las advertencias de tiempo de espera y tiempo de espera de sesión para cuadernos interactivos. Esta configuración se conserva en la configuración de la extensión para que se conserven entre sesiones.

Para cambiar el tiempo de espera, seleccione el estado de conexión en la barra de estado de la parte inferior del cuaderno. Seleccione una de las opciones siguientes:

  • Establecer período de tiempo de espera de sesión: establece el tiempo en minutos antes de que se agote el tiempo de espera de la sesión. El valor predeterminado es 30 minutos.

  • Restablecer período de tiempo de espera de sesión: restablece el tiempo de espera de la sesión al valor predeterminado de 30 minutos.

  • Establecer período de advertencia de tiempo de espera de sesión: establece el tiempo en minutos antes del tiempo de espera en que se muestra una advertencia de que la sesión está a punto de agotarse el tiempo de espera. El valor predeterminado es 5 minutos.

  • Restablecer período de advertencia de tiempo de espera de sesión: restablece la advertencia de tiempo de espera de sesión al valor predeterminado de 5 minutos.

    Captura de pantalla que muestra la configuración de tiempo de espera de sesión.

Uso de GitHub Copilot en cuadernos

Use GitHub Copilot para ayudarle a escribir código en cuadernos. GitHub Copilot proporciona sugerencias de código y autocompletar en función del contexto del código. Para usar GitHub Copilot, asegúrese de que tiene instalada la extensión GitHub Copilot en Visual Studio Code.

Copie el código de los cuadernos de ejemplo para Microsoft Sentinel data lake y guárdelo en la carpeta notebooks para proporcionar contexto para GitHub Copilot. GitHub Copilot podrá sugerir finalizaciones de código en función del contexto del cuaderno.

En el ejemplo siguiente se muestra GitHub Copilot generar una revisión de código.

Captura de pantalla que muestra GitHub Copilot generar una revisión de código.

Microsoft Sentinel clase Provider

Para conectarse al lago de datos de Microsoft Sentinel, use la SentinelLakeProvider clase . Esta clase forma parte del access_module.data_loader módulo y proporciona métodos para interactuar con el lago de datos. Para usar esta clase, impórela y cree una instancia de la clase mediante una spark sesión.

from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)

Para obtener más información sobre los métodos disponibles, vea Microsoft Sentinel referencia de clase Provider.

Seleccione el grupo de tiempo de ejecución adecuado.

Hay tres grupos en tiempo de ejecución disponibles para ejecutar los cuadernos de Jupyter Notebook en la extensión Microsoft Sentinel. Cada grupo está diseñado para diferentes cargas de trabajo y requisitos de rendimiento. La elección del grupo de tiempo de ejecución afecta al rendimiento, el costo y el tiempo de ejecución de los trabajos de Spark.

Grupo en tiempo de ejecución Casos de uso recomendados Características
Small Desarrollo, pruebas y análisis exploratorio ligero.
Cargas de trabajo pequeñas con transformaciones sencillas.
Rentabilidad priorizada.
Adecuado para cargas de trabajo pequeñas
Transformaciones sencillas.
Menor costo, tiempo de ejecución más largo.
Medio Trabajos ETL con combinaciones, agregaciones y entrenamiento de modelos de ML.
Cargas de trabajo moderadas con transformaciones complejas.
Rendimiento mejorado con respecto a Small.
Controla el paralelismo y las operaciones moderadas que consumen mucha memoria.
Large Cargas de trabajo de aprendizaje profundo y aprendizaje automático.
Escalofríos de datos extensos, combinaciones grandes o procesamiento en tiempo real.
Tiempo de ejecución crítico.
Alta capacidad de proceso y memoria.
Retrasos mínimos.
Lo mejor para cargas de trabajo grandes, complejas o temporales.

Nota:

Cuando se accede por primera vez, las opciones del kernel pueden tardar unos 30 segundos en cargarse.
Después de seleccionar un grupo en tiempo de ejecución, la sesión puede tardar entre 3 y 5 minutos en iniciarse.

Visualización de mensajes, registros y errores

Los registros de mensajes y los mensajes de error se muestran en tres áreas de Visual Studio Code.

  1. Panel Salida .

    1. En el panel Salida, seleccione Microsoft Sentinel en la lista desplegable.
    2. Seleccione Depurar para incluir entradas de registro detalladas.

    Captura de pantalla que muestra el panel de salida.

  2. Los mensajes en línea del cuaderno proporcionan comentarios e información sobre la ejecución de celdas de código. Estos mensajes incluyen actualizaciones de estado de ejecución, indicadores de progreso y notificaciones de error relacionadas con el código de la celda anterior

  3. Un elemento emergente de notificación en la esquina inferior derecha de Visual Studio Code, también conocido como mensaje del sistema, proporciona alertas en tiempo real y actualizaciones sobre el estado de las operaciones en el cuaderno y la sesión de Spark. Estas notificaciones incluyen mensajes, advertencias y alertas de error, como la conexión correcta a una sesión de Spark y las advertencias de tiempo de espera.

    Captura de pantalla que muestra un mensaje del sistema y un mensaje de error en línea.

Trabajos y programación

Puede programar que los trabajos se ejecuten en momentos o intervalos específicos mediante la extensión de Microsoft Sentinel para Visual Studio Code. Los trabajos permiten automatizar las tareas de procesamiento de datos para resumir, transformar o analizar datos en el lago de datos Microsoft Sentinel. Los trabajos también se usan para procesar datos y escribir resultados en tablas personalizadas en el nivel de lago de datos o en el nivel de análisis. Para obtener más información sobre cómo crear y administrar trabajos, consulte Creación y administración de trabajos de Jupyter Notebook.

Parámetros y límites de servicio para cuadernos de VS Code

En la sección siguiente se enumeran los parámetros y límites del servicio para Microsoft Sentinel data lake cuando se usan cuadernos de VS Code.

Categoría Parámetro/límite
Tabla personalizada en el nivel de análisis Las tablas personalizadas del nivel de análisis no se pueden eliminar de un cuaderno; Use Log Analytics para eliminar estas tablas. Para obtener más información, vea Agregar o eliminar tablas y columnas en Azure Supervisión de registros
Tiempo de espera del socket web de puerta de enlace 2 horas
Tiempo de espera de consulta interactiva 2 horas
Tiempo de espera de inactividad de sesión interactiva 20 minutos
Idioma Python
Tiempo de espera de consulta de Graph 7,5 minutos
Tiempo de espera del trabajo del cuaderno 8 horas
Número máximo de trabajos simultáneos de cuadernos 3, los trabajos posteriores se ponen en cola
Número máximo de usuarios simultáneos en consultas interactivas 8-10 en piscina grande
Tiempo de inicio de sesión La sesión de proceso de Spark tarda entre 5 y 6 minutos en iniciarse. Puede ver el estado de la sesión en la parte inferior del cuaderno de VS Code.
Bibliotecas admitidas Solo se admiten las bibliotecas de Azure Synapse 3.4 y la biblioteca del proveedor de Microsoft Sentinel para las funciones abstractas para consultar el lago de datos. No se admiten instalaciones pip ni bibliotecas personalizadas.
Límite de experiencia de usuario de VS Code para mostrar registros 100 000 filas

Solución de problemas

Para ver errores y soluciones comunes al trabajar con cuadernos, consulte Solución de problemas de cuadernos en el lago de datos Microsoft Sentinel.