Dela via


Anpassa lagringsplatsdistributioner (offentlig förhandsversion)

Det finns två huvudsakliga sätt att anpassa distributionen av lagringsplatsens innehåll till Microsoft Sentinel-arbetsytor. Varje metod använder olika filer och syntax, så tänk på de här exemplen för att komma igång.

  • Ändra GitHub-arbetsflödet eller DevOps-pipelinen för att anpassa distributionsalternativ som din anslutnings distributionsutlösare, distributionssökväg eller användning av smarta distributioner.

  • Använd den nyligen introducerade konfigurationsfilen för att styra den prioriterade ordningen för dina innehållsdistributioner, välja att exkludera specifika innehållsfiler från dessa distributioner eller mappa parameterfiler till specifika innehållsfiler.

Viktigt!

Funktionen Microsoft Sentinel-lagringsplatser finns för närvarande i FÖRHANDSVERSION. Se kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure för ytterligare juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet.

Krav och omfång

Microsoft Sentinel stöder för närvarande anslutningar till GitHub- och Azure DevOps-lagringsplatser. Innan du ansluter din Microsoft Sentinel-arbetsyta till källkontrolllagringsplatsen kontrollerar du att du har:

  • En ägarroll i resursgruppen som innehåller din Microsoft Sentinel-arbetsyta eller en kombination av rollerna Administratör för användaråtkomst och Sentinel-deltagare för att skapa anslutningen
  • Samarbetspartners åtkomst till din GitHub-lagringsplats eller projektadministratörsåtkomst till din Azure DevOps-lagringsplats
  • Åtgärder som är aktiverade för GitHub och Pipelines aktiverade för Azure DevOps
  • Se till att anpassade innehållsfiler som du vill distribuera till dina arbetsytor finns i relevanta ARM-mallar (Azure Resource Manager)

Mer information finns i Verifiera ditt innehåll.

Anpassa arbetsflödet eller pipelinen

Standardarbetsflödet distribuerar endast innehåll som ändrats sedan den senaste distributionen, baserat på incheckningar till lagringsplatsen. Men du kan behöva andra anpassningar, till exempel för att konfigurera olika distributionsutlösare eller för att distribuera innehåll exklusivt från en specifik rotmapp.

Välj någon av följande flikar beroende på din anslutningstyp:

Så här anpassar du ditt GitHub-distributionsarbetsflöde:

  1. I GitHub går du till lagringsplatsen och hittar arbetsflödet i katalogen .github/workflows .

    Arbetsflödesfilen är YML-filen som börjar med sentinel-deploy-xxxxx.yml. Öppna filen och arbetsflödets namn visas på den första raden och har följande standardnamnkonvention: Deploy Content to <workspace-name> [<deployment-id>].

    Till exempel: name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]

  2. Välj pennknappen längst upp till höger på sidan för att öppna filen för redigering och ändra sedan distributionen på följande sätt:

    • Om du vill ändra distributionsutlösaren uppdaterar on du avsnittet i koden, som beskriver händelsen som utlöser arbetsflödet som ska köras.

      Som standard är den här konfigurationen inställd on: pushpå , vilket innebär att arbetsflödet utlöses vid varje push-överföring till den anslutna grenen, inklusive både ändringar av befintligt innehåll och tillägg av nytt innehåll till lagringsplatsen. Till exempel:

      on:
          push:
              branches: [ main ]
              paths:
              - `**`
              - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
              - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      

      Du kanske vill ändra de här inställningarna, till exempel för att schemalägga arbetsflödet så att det körs regelbundet eller för att kombinera olika arbetsflödeshändelser tillsammans.

      Mer information finns i GitHub-dokumentationen om hur du konfigurerar arbetsflödeshändelser.

    • Så här inaktiverar du smarta distributioner: Beteendet för smarta distributioner är separat från distributionsutlösaren som beskrivs. Gå till avsnittet i jobs arbetsflödet. smartDeployment Växla standardvärdet från true till false. När den här ändringen har utförts inaktiveras funktionen för smart distribution och alla framtida distributioner för den här anslutningen distribuerar om alla lagringsplatsens relevanta innehållsfiler till de anslutna arbetsytorna.

    • Så här ändrar du distributionssökvägen:

      I standardkonfigurationen som visas för on avsnittet anger jokertecken (**) på den första raden i paths avsnittet att hela grenen är i sökvägen för distributionsutlösarna.

      Den här standardkonfigurationen innebär att ett distributionsarbetsflöde utlöses när innehållet skickas till någon del av grenen.

      Senare i filen jobs innehåller avsnittet följande standardkonfiguration: directory: '${{ github.workspace }}'. Den här raden anger att hela GitHub-grenen är i sökvägen för innehållsdistributionen, utan att filtrera efter mappsökvägar.

      Om du bara vill distribuera innehåll från en specifik mappsökväg lägger du till det i både konfigurationen paths directory och . Om du till exempel bara vill distribuera innehåll från en rotmapp med namnet SentinelContentuppdaterar du koden på följande sätt:

      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'
      

Mer information finns i GitHub-dokumentationen om GitHub Actions och redigering av GitHub-arbetsflöden.

Viktigt!

I både GitHub och Azure DevOps kontrollerar du att du håller katalogerna för utlösare och distributionsvägar konsekventa.

Skala dina distributioner med parameterfiler

I stället för att skicka parametrar som infogade värden i innehållsfilerna bör du överväga att använda en JSON-fil som innehåller parametervärdena. Mappa sedan dessa JSON-parameterfiler till deras associerade Sentinel-innehållsfiler för att skala dina distributioner på olika arbetsytor bättre. Det finns flera sätt att mappa parameterfiler till Sentinel-filer och distributionspipelinen för lagringsplatser tar hänsyn till dem i följande ordning:

A diagram showing the precedence of parameter file mappings.

  1. Finns det en mappning i sentinel-deployment.config? Mer information finns i Anpassa anslutningskonfigurationen.
  2. Finns det en mappad parameterfil för arbetsytan? Ja, det är en parameterfil i samma katalog som innehållsfilerna som slutar med .parameters-WorkspaceID><.json
  3. Finns det en standardparameterfil? Ja, alla parameterfiler i samma katalog som innehållsfilerna som slutar med .parameters.json

Det rekommenderas att mappa parameterfilerna via konfigurationsfilen eller genom att ange arbetsytans ID i filnamnet för att undvika sammandrabbningar i scenarier med flera distributioner.

Viktigt!

När en parameterfilmatchning bestäms baserat på ovanstående mappningspriorence ignorerar pipelinen eventuella återstående mappningar.

Om du ändrar den mappade parameterfilen som anges i sentinel-deployment.config utlöses distributionen av den kopplade innehållsfilen. Att lägga till eller ändra en .parameters-WorkspaceID<>.json fil eller .parameters.json fil utlöser också en distribution av de kopplade innehållsfilerna tillsammans med de nyligen ändrade parametrarna, såvida inte en högre prioritetsparametermappning finns på plats. Andra innehållsfiler distribueras inte så länge funktionen för smarta distributioner fortfarande är aktiverad i definitionsfilen för arbetsflöde/pipeline.

Anpassa anslutningskonfigurationen

Distributionsskriptet för lagringsplatser stöder användningen av en distributionskonfigurationsfil för varje lagringsplatsgren från och med juli 2022. JSON-konfigurationsfilen hjälper dig att mappa parameterfiler till relevanta innehållsfiler, prioritera specifikt innehåll i distributioner och exkludera specifikt innehåll från distributioner.

  1. Skapa filen sentinel-deployment.config i roten på lagringsplatsen. Om du lägger till, tar bort eller ändrar den här konfigurationsfilen kommer det att leda till en fullständig distribution av allt innehåll på lagringsplatsen enligt den uppdaterade konfigurationen.

    Screenshot of a repository root directory. The RepositoriesSampleContent is shown with the location of the sentinel-deployment.config file.

  2. Inkludera JSON-strukturerat innehåll i tre valfria avsnitt, "prioritizedcontentfiles":, "excludecontentfiles":och "parameterfilemappings":. Om inga avsnitt ingår eller om .config-filen utelämnas körs distributionsprocessen fortfarande. Ogiltiga eller okända avsnitt ignoreras.

Här är ett exempel på hela innehållet i en giltig sentinel-deployment.config-fil . Det här exemplet finns också i exemplet med Sentinel CICD-lagringsplatser.

{
  "prioritizedcontentfiles": [
    "parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
    "workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
    "Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.json"
  ], 
  "excludecontentfiles": [
     "Detections/Sample/PaloAlto-PortScanning.json",
     "parameters"
  ],
  "parameterfilemappings": {
    "879001c8-2181-4374-be7d-72e5dc69bd2b": {
      "Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.json": "parameters/samples/parameter-file-1.json"
    },
    "9af71571-7181-4cef-992e-ef3f61506b4e": {
      "Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
    }
  },
  "DummySection": "This shouldn't impact deployment"
}

Kommentar

Använd inte omvänt snedstreck i någon av innehållssökvägarna. Använd snedstrecket "/" i stället.

  • Så här prioriterar du innehållsfiler:

    När mängden innehåll på lagringsplatsen växer kan distributionstiderna öka. Lägg till tidskänsligt innehåll i det här avsnittet för att prioritera distributionen när en utlösare inträffar.

    Lägg till fullständiga sökvägsnamn i "prioritizedcontentfiles": avsnittet. Jokerteckenmatchning stöds inte just nu.

  • Om du vill undanta innehållsfiler ändrar du avsnittet "excludecontentfiles": med fullständiga sökvägsnamn för enskilda .json innehållsfiler.

  • Så här mappar du parametrar:

    Distributionsskriptet accepterar tre metoder för att mappa parametrar enligt beskrivningen i Skala dina distributioner med parameterfiler. Mappning av parametrar via sentinel-deployment.config har högsta prioritet och garanterar att en viss parameterfil mappas till dess associerade innehållsfiler. "parameterfilemappings": Ändra bara avsnittet med målanslutningens arbetsyte-ID och fullständiga sökvägsnamn för enskilda .json filer.

Nästa steg

Det finns en exempellagringsplats som visar distributionskonfigurationsfilen och alla tre parametermappningsmetoderna. Mer information finns i Exempel på Sentinel CICD-lagringsplatser.

Överväg dessa resurser om du vill ha mer information om ARM-mallar: