Anpassen von Repositorybereitstellungen (Public Preview)
Es gibt zwei primäre Möglichkeiten, die Bereitstellung Ihrer Repositoryinhalte an Microsoft Sentinel-Arbeitsbereiche anzupassen. Jede Methode verwendet verschiedene Dateien und eine andere Syntax, sodass Sie diese Beispiele für den Einstieg berücksichtigen sollten.
Anpassungsmethode | Abgedeckte Bereitstellungsoptionen |
---|---|
GitHub-Workflow DevOps-Pipeline |
Anpassen des Bereitstellungstriggers Ihrer Verbindung Anpassen Ihres Bereitstellungspfads Aktivierung intelligenter Bereitstellungen |
Konfigurationsdateien | Steuern der priorisierten Reihenfolge Ihrer Inhaltsbereitstellungen Auswählen, dass bestimmte Inhaltsdateien aus Bereitstellungen ausgeschlossen werden Skalieren von Bereitstellungen in verschiedenen Arbeitsbereichen durch Zuordnen von Parameterdateien zu bestimmten Inhaltsdateien |
Wichtig
Das Microsoft Sentinel-Feature Repositorys befindet sich derzeit in der Vorschauphase. Die ergänzenden Nutzungsbedingungen für Microsoft Azure-Vorschauversionen enthalten weitere rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.
Voraussetzungen
Um eine Repositorybereitstellung anzupassen, muss eine Repositoryverbindung vorhanden sein. Weitere Informationen zum Herstellen einer Verbindung finden Sie unter Bereitstellen benutzerdefinierter Inhalte aus Ihrem Repository. Nachdem die Verbindung hergestellt wurde, gelten die folgenden Voraussetzungen:
- Zugriff als Mitwirkende auf Ihr GitHub-Repository oder Zugriff als Projektadministratoren auf Ihr Azure DevOps-Repository
- Aktivierte Aktionen für GitHub und aktivierte Pipelines für Azure DevOps.
- Stellen Sie sicher, dass benutzerdefinierte Inhaltsdateien, die Sie in Ihren Arbeitsbereichen bereitstellen möchten, in einem unterstützten Format vorliegen. Unterstützte Formate finden Sie unter Planen des Repositoryinhalts.
Weitere Informationen zu bereitstellbaren Inhaltstypen finden Sie unter Überprüfen Ihrer Inhalte.
Anpassen des Workflows oder der Pipeline
Der Standardworkflow stellt nur Inhalte bereit, die seit der letzten Bereitstellung, geändert wurden und zwar basierend auf Commits für das Repository. Führen Sie eine Anpassung durch, um verschiedene Bereitstellungstrigger zu konfigurieren oder Inhalte nur aus einem bestimmten Stammordner bereitzustellen.
Wählen Sie je nach Verbindungstyp eine der folgenden Registerkarten aus:
So passen Sie Ihren GitHub-Bereitstellungsworkflow an:
Wechseln Sie auf GitHub zu Ihrem Repository, und suchen Sie im Verzeichnis .github/workflows nach Ihrem Workflow.
Die Workflowdatei ist die YML-Datei ab sentinel-deploy-xxxxx.yml. Wenn Sie diese Datei öffnen, wird der Name des Workflows in der ersten Zeile angezeigt und hat die folgende Standardnamenskonvention:
Deploy Content to <workspace-name> [<deployment-id>]
.Beispiel:
name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]
Klicken Sie rechts oben auf der Seite auf die Stiftschaltfläche, um die Datei zur Bearbeitung zu öffnen, und ändern Sie die Bereitstellung wie folgt:
Aktualisieren Sie zum Ändern des Bereitstellungstriggers den Codeabschnitt
on
. Darin wird das Ereignis beschrieben, das die Ausführung des Workflows auslöst.Standardmäßig ist diese Konfiguration auf
on: push
festgelegt. Das bedeutet, dass der Workflow bei jedem Pushvorgang für den verbundenen Branch ausgelöst wird. Dies schließt sowohl Änderungen an vorhandenen Inhalten als auch das Hinzufügen neuer Inhalte zum Repository ein. Zum Beispiel:on: push: branches: [ main ] paths: - `**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
Ändern Sie diese Einstellungen, um beispielsweise die regelmäßige Ausführung des Workflows zu planen oder verschiedene Workflowereignisse miteinander zu kombinieren.
Weitere Informationen zum Konfigurieren von Workflowereignissen finden Sie in der GitHub-Dokumentation.
So deaktivieren Sie intelligente Bereitstellungen: Das Verhalten intelligenter Bereitstellung ist unabhängig von dem oben beschriebenen Bereitstellungstrigger. Navigieren Sie zum Abschnitt
jobs
Ihres Workflows. Ändern Sie densmartDeployment
-Standardwert vontrue
auffalse
. Nach dem Commit dieser Änderung werden die Funktionen für intelligente Bereitstellungen deaktiviert, und alle zukünftigen Bereitstellungen für diese Verbindung stellen alle relevanten Inhaltsdateien des Repositorys in den verbundenen Arbeitsbereichen erneut bereit.So ändern Sie den Bereitstellungspfad:
In der dargestellten Standardkonfiguration für den Abschnitt
on
geben die Platzhalter (**
) in der ersten Zeile des Abschnittspaths
an, dass sich der gesamte Branch am Pfad für die Bereitstellungstrigger befindet.Diese Standardkonfiguration bedeutet, dass jedes Mal, wenn Inhalte an einen beliebigen Teil des Branchs gepusht werden, ein Bereitstellungsworkflow ausgelöst wird.
Der Abschnitt
jobs
weiter unten in der Datei enthält die folgende Standardkonfiguration:directory: '${{ github.workspace }}'
. Diese Zeile gibt an, dass sich der gesamte GitHub-Branch am Pfad für die Inhaltsbereitstellung befindet und nicht nach Ordnerpfaden gefiltert wird.Wenn Inhalte nur von einem bestimmten Ordnerpfad aus bereitgestellt werden sollen, fügen Sie ihn sowohl der Konfiguration
paths
als auch der Konfigurationdirectory
hinzu. Wenn Inhalte also beispielsweise nur aus einem Stammordner namensSentinelContent
bereitgestellt werden sollen, aktualisieren Sie Ihren Code wie folgt: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'
Weitere Informationen zu GitHub Actions sowie zur Bearbeitung von GitHub-Workflows finden Sie in der GitHub-Dokumentation.
Wichtig
Die Triggerpfad- und Bereitstellungspfadverzeichnisse müssen sowohl bei GitHub als auch bei Azure DevOps konsistent sein.
Skalieren Ihrer Bereitstellungen mithilfe von Parameterdateien
Anstatt Parameter als Inlinewerte in Ihren Inhaltsdateien zu übergeben, können Sie eine Bicep-Parameterdatei oder eine JSON-Datei verwenden, die die Parameterwerte enthält. Sie können diese Parameterdateien dann den entsprechenden Microsoft Sentinel-Inhaltsdateien zuordnen, um Ihre Bereitstellungen über verschiedene Arbeitsbereiche hinweg besser skalieren zu können.
Es gibt verschiedene Möglichkeiten, Parameterdateien den Inhaltsdateien zuzuordnen. Beachten Sie, dass Bicep-Parameterdateien nur Bicep-Dateivorlagen unterstützen, aber JSON-Parameterdateien unterstützen beide. Die Bereitstellungspipeline für Repositorys berücksichtigt Parameterdateien in der folgenden Reihenfolge:
Gibt es eine Zuordnung in der sentinel-deployment.config-Datei?
Weitere Informationen finden Sie unter Anpassen der Verbindungskonfiguration.Gibt es eine Parameterdatei, die dem Arbeitsbereich zugeordnet ist? Ja, die Inhaltsdateien befinden sich im selben Verzeichnis mit einer vom Arbeitsbereich zugeordneten Parameterdatei, die einem der folgenden Muster entspricht:
.<WorkspaceID>.bicepparam
.parameters-<WorkspaceID>.jsonGibt es eine Standardparameterdatei? Ja, die Inhaltsdateien befinden sich im selben Verzeichnis mit einer Parameterdatei, die einem der folgenden Muster entspricht:
.bicepparam
.parameters.json
Vermeiden Sie Konflikte mit mehreren Arbeitsbereichsbereitstellungen, indem Sie die Parameterdateien über die Konfigurationsdatei zuordnen oder die Arbeitsbereichs-ID im Dateinamen angeben.
Wichtig
Sobald eine Übereinstimmung mit einer Parameterdatei auf Grundlage der Zuordnungspriorität festgestellt wurde, ignoriert die Pipeline alle verbleibenden Zuordnungen.
Durch eine Änderung der in der sentinel-deployment.config-Datei aufgeführten zugeordneten Parameterdatei wird die Bereitstellung der zugehörigen Inhaltsdatei ausgelöst. Das Hinzufügen oder Ändern einer vom Arbeitsbereich zugeordneten Parameterdatei oder einer Standardparameterdatei löst ebenfalls eine Bereitstellung der zugehörigen Inhaltsdateien zusammen mit den neu geänderten Parametern aus, sofern keine Parameterzuordnung mit einer höheren Priorität vorhanden ist. Andere Inhaltsdateien werden nicht bereitgestellt, solange die Funktion für intelligente Bereitstellungen in der Definitionsdatei für den Workflow/die Pipeline noch aktiviert ist.
Anpassen der Verbindungskonfiguration
Das Bereitstellungsskript für Repositorys unterstützt die Verwendung einer Bereitstellungskonfigurationsdatei für jede Repositoryverzweigung ab Juli 2022. Mit der JSON-Konfigurationsdatei können Sie Parameterdateien relevanten Inhaltsdateien zuordnen, bestimmte Inhalte in Bereitstellungen priorisieren und diese Inhalte aus Bereitstellungen ausschließen.
Erstellen Sie die Datei sentinel-deployment.config im Stammverzeichnis Ihres Repositorys. Wenn Sie diese Konfigurationsdatei hinzufügen, löschen oder ändern, führt dies zu einer vollständigen Bereitstellung aller Inhalte im Repository gemäß der aktualisierten Konfiguration.
Fügen Sie Ihre strukturierten Inhalte in drei optionalen Abschnitten ein:
"prioritizedcontentfiles":
,"excludecontentfiles":
und"parameterfilemappings":
. Wenn keine Abschnitte enthalten sind oder die .config-Datei ausgelassen wird, wird der Bereitstellungsprozess trotzdem ausgeführt. Ungültige oder nicht erkannte Abschnitte werden ignoriert.
Hier finden Sie ein Beispiel für den gesamten Inhalt einer gültigen sentinel-deployment.config-Datei. Dieses Beispiel finden Sie auch im Beispiel für Microsoft Sentinel CI/CD-Repositorys.
{
"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"
}
Hinweis
Verwenden Sie keine umgekehrten Schrägstriche „\“ in Inhaltspfaden. Verwenden Sie stattdessen den Schrägstrich „/“.
So priorisieren Sie Inhaltsdateien:
Mit wachsender Anzahl an Inhalten in Ihrem Repository erhöht sich die Bereitstellungszeit möglicherweise. Fügen Sie zeitkritische Inhalte zu diesem Abschnitt hinzu, um deren Bereitstellung zu priorisieren, wenn ein Trigger auftritt.
Fügen Sie vollständige Pfadnamen zum Abschnitt
"prioritizedcontentfiles":
hinzu. Das Abgleichen von Platzhaltern wird zu diesem Zeitpunkt nicht unterstützt.Ändern Sie den Abschnitt
"excludecontentfiles":
mit den vollständigen Pfadnamen einzelner JSON-Inhaltsdateien, um Inhaltsdateien auszuschließen.So ordnen Sie Parameter zu:
Das Bereitstellungsskript akzeptiert drei Methoden zum Zuordnen von Parametern, wie im Abschnitt Skalieren Ihrer Bereitstellungen mithilfe von Parameterdateien beschrieben. Die Zuordnung von Parametern über die sentinel-deployment.config-Datei hat die höchste Priorität und garantiert, dass den zugehörigen Inhaltsdateien eine vorgegebene Parameterdatei zugeordnet wird. Ändern Sie den Abschnitt
"parameterfilemappings":
mit der Arbeitsbereichs-ID Ihrer Zielverbindung und den vollständigen Pfadnamen der einzelnen JSON-Dateien.
Zugehöriger Inhalt
Es ist ein Beispielrepository verfügbar, das die Bereitstellungskonfigurationsdatei und alle drei Parameterzuordnungsmethoden demonstriert. Weitere Informationen finden Sie im Beispiel für Microsoft Sentinel CI/CD-Repositorys.