Migración a La Cumbre de innovación:
Obtenga información sobre cómo migrar y modernizar a Azure puede aumentar el rendimiento, la resistencia y la seguridad de su empresa, lo que le permite adoptar completamente la inteligencia artificial.Regístrese ahora
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Creación de un conector sin código para Microsoft Sentinel
Artículo
Codeless Connector Platform (CCP) proporciona a asociados, usuarios avanzados y desarrolladores la capacidad de crear conectores personalizados para ingerir datos en Microsoft Sentinel.
Los conectores creados con la CCP son totalmente SaaS, sin requisitos para las instalaciones de servicio. También incluyen supervisión de estado y soporte técnico completo de Microsoft Sentinel.
Siga los siguientes pasos para crear el conector CCP y conectar el origen de datos a Microsoft Sentinel
Compilar el conector de datos
Creación de la plantilla de Resource Manager
Implementar el conector
Conecte Microsoft Sentinel al origen de datos y empiece a ingerir datos
En este artículo se muestra cómo completar cada paso y proporcionar un conector sin código de ejemplo para compilar a lo largo del proceso.
¿En qué se diferencia este CCP de la versión anterior?
La versión inicial de la CCP fue anunciada en enero de 2022. Desde entonces, hemos mejorado en la plataforma y ya no se recomienda la versión heredada. Esta nueva versión de la CCP tiene las siguientes mejoras clave:
Mejor compatibilidad con varios tipos de autenticación y paginación.
Admite reglas de recopilación de datos estándar (DCR).
La interfaz de usuario y las partes de configuración de conexión del conector sin código ahora son independientes. Esto permite la creación de conectores con varias conexiones que no eran posibles anteriormente.
Requisitos previos
Antes de compilar un conector, comprenda el origen de datos y cómo Microsoft Sentinel debe conectarse.
Punto de conexión de recopilación de datos (DCE)
Un DCE es un requisito para un DCR. Solo se crea un DCE por implementación de DCR del área de trabajo del análisis de registros. Cada DCR implementado para un área de trabajo de Microsoft Sentinel usa el mismo DCE. Para más información sobre cómo crear uno o si necesita uno nuevo, consulte puntos de conexión de recopilación de datos en Azure Monitor.
Esquema de las tablas de salida.
Es importante comprender la forma del flujo de datos y los campos que desea incluir en la tabla de salida. Haga referencia a la documentación del origen de datos o analice ejemplos de salida suficientes.
Estructura de solicitud y respuesta HTTP al origen de datos
Autenticación requerida por el origen de datos. Por ejemplo, si el origen de datos requiere un token firmado con un certificado, la referencia de API del conector de datos especifica que no se admite la autenticación de certificado.
Opciones de paginación para el origen de datos
Probar las API
Se recomienda probar los componentes con una herramienta de prueba de API como una de las siguientes:
En escenarios en los que tiene datos confidenciales, como credenciales, secretos, tokens de acceso, claves de API y otra información similar, asegúrese de usar una herramienta que proteja los datos con las características de seguridad necesarias, funcione sin conexión o localmente, no sincronice los datos en la nube y no requiera que inicie sesión en una cuenta en línea. De este modo, se reduce el riesgo de exponer datos confidenciales al público.
Compilar el conector de datos
Hay cuatro componentes necesarios para compilar el conector de datos CCP.
Cada componente tiene una sección que detalla el proceso para crear y validar. Tome la JSON de cada componente para el empaquetado final de la plantilla de ARM.
Definición de tabla de salida
Sugerencia
Omita este paso si los datos solo se ingieren en tablas estándar de Log Analytics. Algunos ejemplos de tablas estándar son CommonSecurityLog y ASimDnsActivityLogs. Para obtener más información sobre la lista completa de los tipos de datos estándar admitidos, consulte compatibilidad de transformación de datos para conectores de datos personalizados.
Si el origen de datos no se ajusta al esquema de una tabla estándar, tiene dos opciones:
Crear una tabla personalizada para todos los datos
Crear una tabla personalizada para algunos datos y dividir los datos conformes a una tabla estándar
Use la interfaz de usuario de Log Analytics para un método directo para crear una tabla personalizada junto con un DCR. Si crea la tabla personalizada mediante laAPI de tabla u otro método de programación, agregue el sufijo _CL manualmente al nombre de la tabla. Para obtener más información, consulte Creación de una tabla personalizada.
Las reglas de recopilación de datos (DCR) definen el proceso de recopilación de datos en Azure Monitor. Las DCR especifican qué datos se deben recopilar, cómo transformar esos datos y dónde enviarlos.
Solo hay un DCR que se implementa por conector de datos.
Un DCR debe tener un DCE correspondiente en la misma región.
Cuando se implementa el conector de datos CCP, se crea el DCR si aún no existe.
Consulte la información más reciente sobre DCR en estos artículos:
Para comprender cómo crear un DCR complejo con varios flujos de datos, consulte la sección ejemplo de DCR.
Interfaz de usuario del conector de datos
Este componente representa la interfaz de usuario del conector de datos en la galería de conectores de datos de Microsoft Sentinel. Cada conector de datos puede tener solo una definición de interfaz de usuario.
La propiedad kind para el conector de sondeo de API siempre debe ser Customizable.
Dado que se trata de un tipo de conector de sondeo de API, establezca el tipo de connectivityCriteria en hasDataConnectors
En el ejemplo instructionSteps se incluye un botón de tipo ConnectionToggleButton. Este botón ayuda a desencadenar la implementación de reglas del conector de datos en función de los parámetros de conexión especificados.
Use una herramienta de prueba de API para llamar a la API de definiciones del conector de datos para crear la interfaz de usuario del conector de datos para validarla en la galería de conectores de datos.
La variante GCP permite reducir el tiempo de desarrollo configurando automáticamente las cargas de datos de paginación y respuesta esperadas para el origen de datos de Google Cloud Platform (GCP). Para obtener más información, consulte Referencia de reglas de conexión del conector de datos de GCP
Use una herramienta de prueba de API para llamar a la API del conector de datos para crear el conector de datos que combina las reglas de conexión y los componentes anteriores. Compruebe que el conector ya está conectado en la interfaz de usuario.
Protección de la entrada confidencial
Independientemente de la autenticación que use el conector de datos CCP, siga estos pasos para asegurarse de que la información confidencial se mantiene segura. El objetivo es pasar las credenciales de la plantilla de ARM a la CCP sin dejar objetos confidenciales legibles en el historial de implementaciones.
Crear etiqueta
La definición del conector de datos crea un elemento de interfaz de usuario para solicitar credenciales de seguridad. Por ejemplo, si el conector de datos se autentica en un origen de registro con OAuth, la sección de definición del conector de datos incluye el tipo OAuthForm en las instrucciones. Esto configura la plantilla de ARM para solicitar las credenciales.
Una sección de la plantilla de implementación de ARM proporciona un lugar para que el administrador implemente el conector de datos para escribir la contraseña. Se usa securestring para mantener protegida la información confidencial en un objeto que no se puede leer después de la implementación. Para obtener más información, consulte Recomendaciones de seguridad de parámetros.
JSON
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "[variables('dataConnectorCCPVersion')]",
"parameters": {
"Username": {
"type": "securestring",
"minLength": 1,
"metadata": {
"description": "Enter the username to connect to your data source."
},
"Password": {
"type": "securestring",
"minLength": 1,
"metadata": {
"description": "Enter the API key, client secret or password required to connect."
}
},
// more deployment template information
}
}
Uso de los objetos securestring
Por último, la CCP utiliza los objetos de credenciales en la sección de conector de datos.
La sintaxis extraña para el objeto de credencial, "ClientSecret": "[[parameters('Password')]", no es un error tipográfico.
Para crear la plantilla de implementación que también usa parámetros, debe escapar los parámetros de esa sección con un [ inicial adicional. Esto permite que los parámetros asignen un valor en función de la interacción del usuario con el conector.
Empaquete manualmente una plantilla de Administración de recursos de Azure (ARM) mediante las muestras de código de la plantilla de ejemplo como guía. Estos ejemplos de código se dividen en secciones de plantillas de ARM que debe combinar.
Además de las plantillas de ejemplo, las soluciones publicadas disponibles en el centro de contenido de Microsoft Sentinel usan la CCP para sus conectores de datos. Revise las siguientes soluciones como ejemplos de cómo unir los componentes en una plantilla de ARM.
Implemente el conector sin código como una plantilla personalizada.
Sugerencia
Elimine los recursos que creó en los pasos anteriores. El DCR y la tabla personalizada se crean con la implementación. Si no quita esos recursos antes de la implementación, es más difícil comprobar la plantilla.
Vea el conector sin código en la galería de conectores de datos. Abra el conector de datos y complete los parámetros de autenticación necesarios para conectarse. Una vez conectado correctamente, se crean las tablas y DCR personalizadas. Vea el recurso DCR en el grupo de recursos y las tablas personalizadas del área de trabajo de análisis de registros.
Nota
Puede tardar hasta 30 minutos en ver que los datos comienzan a ingerirse.
Ejemplo
Cada paso para compilar el conector sin código se representa en las secciones de ejemplo siguientes.
Para demostrar un origen de datos complejo con ingesta en más de una tabla, en este ejemplo se incluye un esquema de tabla de salida y un DCR con varios flujos de salida. El ejemplo de DCR los combina junto con sus transformaciones KQL. Los ejemplos de reglas de conexión y definición de interfaz de usuario del conector de datos continúan desde este mismo origen de datos de ejemplo. Por último, la plantilla de solución usa todos estos componentes de ejemplo para mostrar cómo crear el conector de datos CCP de ejemplo.
Datos de ejemplo
Un origen de datos devuelve el siguiente JSON al conectarse a su punto de conexión.
Esta respuesta contiene eventType de Alerta y Archivo. Los eventos de archivo se van a ingerir en la tabla estándar normalizada, AsimFileEventLogs, mientras que los eventos de alerta se van a ingerir en una tabla personalizada.
Tabla personalizada de ejemplo
Para obtener más información sobre la estructura de esta tabla, consulte API de tablas. Los nombres de tabla de registro personalizados deben tener un sufijo _CL.
Para crear este DCR en un entorno de prueba, siga la API de reglas de recopilación de datos. Los elementos del ejemplo de {{double curly braces}} indican variables que requieren valores para facilitar su uso con una herramienta de prueba de API. Al crear este recurso en la plantilla de ARM, las variables expresadas aquí se intercambian por parámetros.
Compile la plantilla de implementación de ARM con la estructura siguiente, que incluye las 4 secciones de los componentes JSON necesarios para compilar el conector de datos CCP:
Una las secciones junto con un editor compatible con JSON, como Visual Code, para minimizar los errores de sintaxis, como comas y corchetes de cierre y paréntesis.
Para guiar el proceso de creación de plantillas, los comentarios aparecen en los metadatosdescription o en línea con notación de comentarios //. Para obtener más información, consulte los Procedimientos recomendados la plantilla de ARM: comentarios.
Considere la posibilidad de usar el kit de herramientas de pruebas de plantillas de ARM (arm-ttk) para validar la plantilla que compile. Para más información, consulte arm-ttk.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"minLength": 1,
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Not used, but needed to pass the arm-ttk test, 'Location-Should-Not-Be-Hardcoded'. Instead the `workspace-location` derived from the log analytics workspace is used."
}
},
"workspace-location": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "[concat('Region to deploy solution resources -- separate from location selection',parameters('location'))]"
}
},
"subscription": {
"defaultValue": "[last(split(subscription().id, '/'))]",
"type": "string",
"metadata": {
"description": "subscription id where Microsoft Sentinel is configured"
}
},
"resourceGroupName": {
"defaultValue": "[resourceGroup().name]",
"type": "string",
"metadata": {
"description": "resource group name where Microsoft Sentinel is configured"
}
},
"workspace": {
"defaultValue": "",
"type": "string",
"metadata": {
"description": "the log analytics workspace enabled for Microsoft Sentinel"
}
}
},
// Next is the variables section here
}
Plantilla de ARM de ejemplo: variables
Estas variables recomendadas ayudan a simplificar la plantilla. Use más o menos según sea necesario. Para más información, consulte Variables en plantillas de ARM.
JSON
"variables": {
"workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]",
"_solutionName": "Solution name", // Enter your solution name
"_solutionVersion": "3.0.0", // must be 3.0.0 or above
"_solutionAuthor": "Contoso", // Enter the name of the author
"_packageIcon": "<img src=\"{LogoLink}\" width=\"75px\" height=\"75px\">", // Enter the http link for the logo. NOTE: This field is only recommended for Azure Global Cloud.
"_solutionId": "azuresentinel.azure-sentinel-solution-azuresentinel.azure-sentinel-MySolution", // Enter a name for your solution with this format but exchange the 'MySolution' portion
"dataConnectorVersionConnectorDefinition": "1.0.0",
"dataConnectorVersionConnections": "1.0.0",
"_solutionTier": "Community", // This designates the appropriate support - all custom data connectors are "Community""_dataConnectorContentIdConnectorDefinition": "MySolutionTemplateConnectorDefinition", // Enter a name for the connector
"dataConnectorTemplateNameConnectorDefinition": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentIdConnectorDefinition')))]",
"_dataConnectorContentIdConnections": "MySolutionTemplateConnections", // Enter a name for the connections this connector makes
"dataConnectorTemplateNameConnections": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentIdConnections')))]",
"_logAnalyticsTableId1": "ExampleConnectorAlerts_CL" // Enter the custom table name - not needed if you are ingesting data into standard tables
// Enter more variables as needed "":""
},
// Next is the resources sections here
Ejemplo de plantilla de ARM: recursos
Hay 5 recursos de implementación de ARM en esta guía de plantilla que hospedan los componentes de compilación del conector de datos CCP 4.