Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il existe deux méthodes principales pour personnaliser le déploiement du contenu de votre référentiel sur Microsoft Sentinel espaces de travail. Chaque méthode utilise des fichiers et une syntaxe différents. Tenez compte de ces exemples pour commencer. Avant de commencer, vérifiez que les conditions préalables requises pour la connexion au référentiel et le déploiement sont en place.
| Méthode de personnalisation | Options de déploiement couvertes |
|---|---|
| Flux de travail GitHub Pipeline DevOps |
Personnaliser le déclencheur de déploiement de votre connexion Personnaliser votre chemin de déploiement Activation des déploiements intelligents |
| Fichiers de configuration | Contrôler l’ordre de priorité de vos déploiements de contenu Choisir d’exclure des fichiers de contenu spécifiques des déploiements Mettre à l’échelle les déploiements sur différents espaces de travail en mappant des fichiers de paramètres à des fichiers de contenu spécifiques |
Prérequis
Pour personnaliser un déploiement de référentiel, vous avez besoin d’une connexion de référentiel existante. Pour en créer un, consultez Déployer du contenu personnalisé à partir de votre référentiel. Après avoir créé la connexion, vérifiez que vous répondez à ces exigences :
- Accès collaborateur à votre dépôt GitHub ou accès administrateur de projet à votre dépôt Azure DevOps
- Actions activées pour GitHub et Pipelines activés pour Azure DevOps
- Vérifiez que les fichiers de contenu personnalisés que vous souhaitez déployer dans vos espaces de travail sont dans un format pris en charge. Pour connaître les formats pris en charge, consultez Planifier le contenu de votre dépôt.
Pour plus d’informations sur les types de contenu déployables, consultez Planifier le contenu de votre dépôt.
Personnaliser le workflow ou le pipeline
Le workflow par défaut déploie uniquement le contenu modifié depuis le dernier déploiement, en fonction des validations dans le référentiel. Personnalisez le flux de travail ou le pipeline pour configurer différents déclencheurs de déploiement, ou pour déployer du contenu exclusivement à partir d’un dossier racine spécifique.
Sélectionnez l’un des onglets suivants en fonction de votre type de connexion :
Pour personnaliser votre flux de déploiement GitHub :
Dans GitHub, accédez à votre dépôt et recherchez votre workflow dans le répertoire .github/workflows .
Le fichier de flux de travail est le fichier YML commençant par sentinel-deploy-xxxxx.yml. Ouvrez ce fichier et le nom du flux de travail s’affiche sur la première ligne et a la convention de nommage par défaut suivante :
Deploy Content to <workspace-name> [<deployment-id>].Par exemple :
name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]Sélectionnez le bouton crayon en haut à droite de la page pour ouvrir le fichier à modifier, puis modifiez le déploiement comme suit :
Pour modifier le déclencheur de déploiement, mettez à jour la
onsection du code qui décrit l’événement déclenchant l’exécution du workflow.Par défaut, cette configuration est définie sur
on: push, ce qui signifie que le workflow est déclenché à n’importe quel envoi (push) vers la branche connectée, y compris les modifications apportées au contenu existant et les ajouts de nouveau contenu au référentiel. Par exemple :on: push: branches: [ main ] paths: - `**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml`Modifiez ces paramètres, par exemple, pour planifier l’exécution périodique du flux de travail ou pour combiner différents événements de flux de travail.
Pour plus d’informations, voir Configurer les événements de workflow dans la documentation GitHub.
Pour désactiver les déploiements intelligents :
Le comportement de déploiement intelligent est configuré séparément du déclencheur du workflow dans la
onsection. Accédez à lajobssection de votre workflow. Remplacez la valeur par défautsmartDeploymentdetrueparfalse. Une fois cette modification validée, la fonctionnalité de déploiement intelligent est désactivée et tous les déploiements futurs pour cette connexion redéployent tous les fichiers de contenu pertinents du dépôt dans les espaces de travail connectés.Pour modifier le chemin de déploiement :
Dans la configuration par défaut indiquée pour la
onsection, les caractères génériques (**) de la première ligne de lapathssection indiquent que la branche entière se trouve dans le chemin des déclencheurs de déploiement.Cette configuration par défaut signifie qu’un flux de déploiement est déclenché chaque fois que ce contenu est envoyé à n’importe quelle partie de la branche connectée.
Dans la
jobssection, la configuration par défaut inclutdirectory: '${{ github.workspace }}'. Ledirectoryparamètre indique que toute la branche GitHub est dans le chemin du déploiement du contenu, sans filtrage pour les chemins de dossier.Pour déployer du contenu uniquement à partir d’un chemin de dossier spécifique, ajoutez-le aux configurations
pathsetdirectory. Par exemple, pour déployer du contenu uniquement à partir d’un dossier racine nomméSentinelContent, mettez à jour votre code comme suit :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'
Pour plus d’informations, consultez la syntaxe du workflow GitHub Actions pour les filtres de chemin dans la documentation GitHub.
Important
Dans GitHub comme dans Azure DevOps, veillez à ce que les répertoires des chemins du déclencheur et de déploiement restent cohérents.
Mettre à l’échelle vos déploiements avec des fichiers de paramètres
Plutôt que de passer des paramètres en tant que valeurs inline dans vos fichiers de contenu, envisagez d’utiliser un fichier de paramètres Bicep ou un fichier JSON qui contient les valeurs des paramètres. Ensuite, mappez ces fichiers de paramètres aux fichiers de contenu Microsoft Sentinel associés pour mieux mettre à l’échelle vos déploiements sur différents espaces de travail.
Il existe plusieurs façons de mapper des fichiers de paramètres aux fichiers de contenu. Gardez à l’esprit que les fichiers de paramètres Bicep prennent uniquement en charge les modèles de fichiers Bicep, mais les fichiers de paramètres JSON prennent en charge les deux. Le pipeline de déploiement de référentiels prend en compte les fichiers de paramètres dans l’ordre suivant :
Existe-t-il un mappage dans le sentinel-deployment.config?
Pour plus d’informations, consultez Personnaliser la configuration de votre connexion.Existe-t-il un fichier de paramètres mappé à l’espace de travail ? Oui, les fichiers de contenu se trouvent dans le même répertoire avec un fichier de paramètres mappé à l’espace de travail correspondant à l’un des modèles suivants :
.<WorkspaceID.bicepparam.parameters-WorkspaceID>
<>.jsonExiste-t-il un fichier de paramètres par défaut ? Oui, les fichiers de contenu se trouvent dans le même répertoire avec un fichier de paramètres correspondant à l’un des modèles suivants :
.bicepparam
.parameters.json
Évitez les conflits avec plusieurs déploiements d’espace de travail en mappant vos fichiers de paramètres via le fichier de configuration ou en spécifiant l’ID de l’espace de travail dans le nom de fichier.
Important
Une fois qu’une correspondance de fichier de paramètres est déterminée en fonction de la priorité de mappage, le pipeline ignore tous les mappages restants.
La modification du fichier de paramètres mappé répertorié dans le sentinel-deployment.config déclenche le déploiement de son fichier de contenu couplé. L’ajout ou la modification d’un fichier de paramètres mappés à l’espace de travail ou d’un fichier de paramètres par défaut déclenche également un déploiement des fichiers de contenu couplés avec les paramètres nouvellement modifiés, sauf si un mappage de paramètres de priorité plus élevé est en place. Les autres fichiers de contenu ne sont pas déployés tant que la fonctionnalité de déploiements intelligents est toujours activée dans le fichier de définition de workflow/pipeline.
Personnaliser la configuration de votre connexion
Le script de déploiement pour les référentiels prend en charge l’utilisation d’un fichier de configuration de déploiement pour chaque branche de dépôt à compter de juillet 2022. Le fichier JSON de configuration vous permet de mapper les fichiers de paramètres aux fichiers de contenu pertinents, de hiérarchiser le contenu spécifique dans les déploiements et d’exclure du contenu spécifique des déploiements.
Important
La création, la suppression ou la modification du fichier sentinel-deployment.config déclenche un déploiement complet de tout le contenu du référentiel en fonction de la configuration mise à jour.
Créez le fichiersentinel-deployment.config à la racine de votre dépôt.
Incluez votre contenu structuré dans trois sections facultatives,
"prioritizedcontentfiles":,"excludecontentfiles":et"parameterfilemappings":. Si aucune section n’est incluse ou si le fichier .config est omis, le processus de déploiement s’exécute toujours. Les sections non valides ou non reconnues sont ignorées.
Voici un exemple du contenu entier d’un fichier sentinel-deployment.config valide. Cet exemple se trouve également dans l’exemple de référentiels CICD 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"
}
Remarque
N’utilisez pas la barre oblique inverse « \ » dans l’un des chemins de contenu. Utilisez plutôt la barre oblique « / ».
Pour prioriser les fichiers de contenu :
À mesure que la quantité de contenu dans votre dépôt augmente, les temps de déploiement peuvent augmenter. Ajoutez du contenu sensible au facteur temps à cette section afin de prioriser son déploiement lorsqu’un déclencheur se produit.
Ajoutez des noms de chemin d’accès complets à la
"prioritizedcontentfiles":section. La correspondance de caractères génériques n’est pas prise en charge pour l’instant.Pour exclure les fichiers de contenu, modifiez la
"excludecontentfiles":section avec les noms complets des chemins individuels .json fichiers de contenu.Pour cartographier les paramètres :
Le script de déploiement accepte trois méthodes de mappage (mappages de fichiers de configuration, fichiers de paramètres mappés à l’espace de travail et fichiers de paramètres par défaut), comme décrit dans Mettre à l’échelle vos déploiements avec des fichiers de paramètres. Le mappage des paramètres via le sentinel-deployment.config est prioritaire et garantit qu’un fichier de paramètres donné est mappé à ses fichiers de contenu associés. Modifiez la section
"parameterfilemappings":avec l’ID de l’espace de travail de votre connexion cible et les chemins d’accès complets de chaque fichier .json.