Freigeben über


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:

  1. 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]

  2. 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 den smartDeployment-Standardwert von true auf false. 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 Abschnitts paths 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 Konfiguration directory hinzu. Wenn Inhalte also beispielsweise nur aus einem Stammordner namens SentinelContent 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:

Diagramm: Rangfolge der Zuordnungen der Parameterdatei.

  1. Gibt es eine Zuordnung in der sentinel-deployment.config-Datei?
    Weitere Informationen finden Sie unter Anpassen der Verbindungskonfiguration.

  2. 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>.json

  3. Gibt 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.

  1. 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.

    Screenshot: Repository-Stammverzeichnis. Der RepositorySampleContent wird mit dem Speicherort der sentinel-deployment.config-Datei angezeigt.

  2. 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.

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.