Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hay dos formas principales de personalizar el despliegue del contenido de su repositorio en las áreas de trabajo de Microsoft Sentinel. Cada método usa diferentes archivos y sintaxis, por lo que considere estos ejemplos para empezar. Antes de comenzar, asegúrese de que se cumplen los requisitos previos de implementación y conexión del repositorio necesarios.
| Método de personalización | Opciones de implementación cubiertas |
|---|---|
| Flujo de trabajo de GitHub Pipeline de DevOps |
Personalice el activador de implementación de su conexión Personalización de la ruta de implementación Habilitación de implementaciones inteligentes |
| Archivos de configuración | Controlar el orden priorizado de las implementaciones de contenido Elija excluir archivos de contenido específicos de las implementaciones. Escalado de implementaciones en diferentes áreas de trabajo mediante la asignación de archivos de parámetros a archivos de contenido específicos |
Requisitos previos
Para personalizar una implementación de repositorio, necesita una conexión de repositorio existente. Para crear uno, consulte Implementación de contenido personalizado desde el repositorio. Después de crear la conexión, asegúrese de cumplir estos requisitos:
- Acceso del colaborador al repositorio de GitHub o al acceso del administrador de proyectos al repositorio de DevOps de Azure
- Acciones habilitadas para GitHub y canalizaciones habilitadas para Azure DevOps
- Asegúrese de que los archivos de contenido personalizados que desea implementar en las áreas de trabajo están en un formato compatible. Para ver los formatos admitidos, consulte Planear el contenido del repositorio.
Para obtener más información sobre los tipos de contenido que se pueden implementar, vea Planear el contenido del repositorio.
Personalización del flujo de trabajo o la canalización
El flujo de trabajo predeterminado solo implementa el contenido modificado desde la última implementación, en función de las confirmaciones en el repositorio. Personaliza el flujo de trabajo o la canalización para configurar diferentes desencadenantes de despliegue, o para desplegar contenido exclusivamente desde una carpeta raíz específica.
Seleccione una de las pestañas siguientes en función del tipo de conexión:
Para personalizar tu flujo de trabajo de despliegue en GitHub:
En GitHub, vaya al repositorio y busque el flujo de trabajo en el directorio .github/workflows .
El archivo de flujo de trabajo es el archivo YML que empieza por sentinel-deploy-xxxxx.yml. Abra ese archivo y el nombre del flujo de trabajo se muestra en la primera línea y tiene la siguiente convención de nomenclatura predeterminada:
Deploy Content to <workspace-name> [<deployment-id>].Por ejemplo:
name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]Seleccione el botón de lápiz situado en la parte superior derecha de la página para abrir el archivo para su edición y, a continuación, modifique la implementación de la siguiente manera:
Para modificar el disparador de despliegue, actualiza la
onsección del código que describe el evento que desencadena la ejecución del flujo de trabajo.De forma predeterminada, esta configuración se establece en
on: push, lo que significa que el flujo de trabajo se desencadena en cualquier inserción en la rama conectada, incluidas las modificaciones en el contenido existente y las adiciones de contenido nuevo en el repositorio. Por ejemplo:on: push: branches: [ main ] paths: - `**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml`Cambie esta configuración, por ejemplo, para programar que el flujo de trabajo se ejecute periódicamente o para combinar eventos de flujo de trabajo diferentes.
Para más información, consulta Configurar eventos de flujo de trabajo en la documentación de GitHub.
Para desactivar los despliegues inteligentes:
El comportamiento de despliegue inteligente se configura por separado del disparador del flujo de trabajo en la
onsección. Vaya a lajobssección del flujo de trabajo. Cambie elsmartDeploymentvalor predeterminado detrueafalse. Una vez confirmado este cambio, se desactiva la funcionalidad de implementación inteligente y todas las implementaciones futuras de esta conexión vuelven a implementar todos los archivos de contenido pertinentes del repositorio en las áreas de trabajo conectadas.Para modificar la ruta de despliegue:
En la configuración predeterminada que se muestra de la sección
on, los caracteres comodín (**) de la primera línea de la secciónpathsindican que toda la rama forma parte de la ruta de los desencadenadores de implementación.Esta configuración predeterminada significa que se activa un flujo de trabajo de despliegue cada vez que ese contenido se envía a cualquier parte de la rama conectada.
En la
jobssección, la configuración predeterminada incluyedirectory: '${{ github.workspace }}'. Ladirectoryconfiguración indica que toda la rama de GitHub está en la ruta para el despliegue de contenido, sin filtrar ninguna ruta de carpeta.Para implementar contenido solo desde una ruta de carpeta específica, agréguelo tanto a la configuración
pathscomo a ladirectory. Por ejemplo, para implementar contenido solo desde una carpeta raíz denominadaSentinelContent, actualice el código de la siguiente manera:paths: - `SentinelContent/**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml` ... directory: '${{ github.workspace }}/SentinelContent'
Para más información, consulta la sintaxis del flujo de trabajo de Acciones de GitHub para filtros de ruta en la documentación de GitHub.
Importante
Tanto en GitHub como en Azure DevOps, asegúrese de que los directorios de las rutas de acceso del desencadenador y de implementación sean coherentes.
Escalado de las implementaciones con archivos de parámetros
En lugar de pasar parámetros como valores insertados en los archivos de contenido, considere la posibilidad de usar un archivo de parámetros de Bicep o un archivo JSON que contenga los valores de parámetro. A continuación, asigne esos archivos de parámetros a sus archivos de contenido Microsoft Sentinel asociados para escalar mejor las implementaciones en diferentes áreas de trabajo.
Hay varias maneras de asignar archivos de parámetros a los archivos de contenido. Tenga en cuenta que los archivos de parámetros de Bicep solo admiten plantillas de archivo de Bicep, pero los archivos de parámetros JSON admiten ambos. La canalización de implementación de repositorios tiene en cuenta los archivos de parámetros en el orden siguiente:
¿Hay un mapeo en sentinel-deployment.config?
Para obtener más información, consulte Personalice la configuración de la conexión.¿Hay un archivo de parámetros asignado al área de trabajo? Sí, los archivos de contenido están en el mismo directorio, con un archivo de parámetros asignado al área de trabajo que coincida con uno de estos patrones:
.<WorkspaceID>.bicepparam
.parameters-<WorkspaceID>.json¿Hay un archivo de parámetros predeterminado? Sí, los archivos de contenido están en el mismo directorio con un archivo de parámetros que coincide con uno de estos patrones:
.bicepparam
.parameters.json
Para evitar conflictos con despliegues de varios espacios de trabajo, asocie los archivos de parámetros mediante el archivo de configuración o especifique el identificador del espacio de trabajo en el nombre del archivo.
Importante
Una vez que se determina qué archivo de parámetros coincide en función del orden de prioridad de las asignaciones, la canalización ignora las asignaciones restantes.
La modificación del archivo de parámetros asignado que se muestra en sentinel-deployment.config desencadena la implementación de su archivo de contenido emparejado. Agregar o modificar un archivo de parámetros asignado al área de trabajo o un archivo de parámetros predeterminado también desencadena una implementación de los archivos de contenido emparejados junto con los parámetros recién modificados, a menos que se haya implementado una asignación de parámetros de prioridad superior. Otros archivos de contenido no se implementan siempre que la característica de implementaciones inteligentes siga estando habilitada en el archivo de definición de flujo de trabajo o canalización.
Personalización de la configuración de conexión
El script de implementación para repositorios admite el uso de un archivo de configuración de implementación para cada rama de repositorio a partir de julio de 2022. El archivo JSON de configuración le ayuda a asignar archivos de parámetros a archivos de contenido pertinentes, priorizar contenido específico en implementaciones y excluir contenido específico de las implementaciones.
Importante
La creación, eliminación o modificación del archivo sentinel-deployment.config desencadena una implementación completa de todo el contenido del repositorio según la configuración actualizada.
Cree el archivo sentinel-deployment.config en la raíz de su repositorio.
Incluya el contenido estructurado en tres secciones opcionales,
"prioritizedcontentfiles":,"excludecontentfiles":y"parameterfilemappings":. Si no se incluye ninguna sección o se omite el archivo .config, el proceso de implementación sigue ejecutándose. Se omiten las secciones no válidas o no reconocidas.
Este es un ejemplo del contenido completo de un archivo sentinel-deployment.config válido. Este ejemplo también puede encontrarse en el ejemplo de repositorios de CI/CD de Microsoft Sentinel.
{
"prioritizedcontentfiles": [
"parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
"workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
"Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.bicep"
],
"excludecontentfiles": [
"Detections/Sample/PaloAlto-PortScanning.json",
"parameters"
],
"parameterfilemappings": {
"879001c8-2181-4374-be7d-72e5dc69bd2b": {
"Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.bicep": "parameters/samples/auzredeploy.bicepparam"
},
"9af71571-7181-4cef-992e-ef3f61506b4e": {
"Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
}
},
"DummySection": "This shouldn't impact deployment"
}
Nota:
No use el carácter de barra diagonal inversa "\" en ninguna de las rutas de acceso de contenido. En su lugar, use la barra diagonal "/".
Para priorizar los archivos de contenido:
A medida que aumenta la cantidad de contenido del repositorio, los tiempos de implementación pueden aumentar. Agregue contenido sensible al tiempo a esta sección para priorizar su implementación cuando se produzca un desencadenador.
Agregue nombres de ruta completos a la sección
"prioritizedcontentfiles":. No se admite la coincidencia de caracteres comodín en este momento.Para excluir archivos de contenido, modifica la
"excludecontentfiles":sección con los nombres completos de rutas de los archivos de contenido individuales .json.Para mapear los parámetros:
El script de implementación acepta tres métodos de parámetros de asignación (asignaciones de archivos de configuración, archivos de parámetros asignados al área de trabajo y archivos de parámetros predeterminados), como se describe en Escalado de las implementaciones con archivos de parámetros. La asignación de parámetros a través de la sentinel-deployment.config tiene la prioridad más alta y garantiza que un archivo de parámetros determinado se asigna a sus archivos de contenido asociados. Modifique la sección
"parameterfilemappings":con el ID del área de trabajo de la conexión de destino y las rutas de acceso completas de los archivos .json individuales.