Anpassa lagringsplatsdistributioner

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. Innan du börjar kontrollerar du att nödvändiga krav för lagringsplatsanslutning och distribution finns på plats.

Anpassningsmetod Driftsättningsalternativ som tas upp
GitHub-arbetsflöde
DevOps-pipeline
Anpassa anslutningens distributionsutlösare
Anpassa distributionsvägen
Aktivering av Smart-distributioner
Konfigurationsfiler Kontrollera den prioriterade ordningen för dina innehållsdistributioner
Välj att undanta specifika innehållsfiler från distributioner
Skala distributioner över olika arbetsytor genom att mappa parameterfiler till specifika innehållsfiler

Förhandskrav

Om du vill anpassa en lagringsplatsdistribution behöver du en befintlig lagringsplatsanslutning. Information om hur du skapar ett finns i Distribuera anpassat innehåll från lagringsplatsen. När du har skapat anslutningen måste du uppfylla följande krav:

  • Samarbetspartners åtkomst till din GitHub-lagringsplats eller projektadministratörsåtkomst till din Azure DevOps-lagringsplats
  • Åtgärder aktiverade för GitHub och pipelines som är aktiverade för Azure DevOps
  • Se till att anpassade innehållsfiler som du vill distribuera till dina arbetsytor har ett format som stöds. Format som stöds finns i Planera ditt lagringsplatsinnehåll.

Mer information om distributionsbara innehållstyper finns i Planera ditt lagringsplatsinnehåll.

Anpassa arbetsflödet eller pipelinen

Standardarbetsflödet distribuerar endast innehåll som ändrats sedan den senaste distributionen, baserat på incheckningar till lagringsplatsen. Anpassa arbetsflödet eller pipelinen för att konfigurera olika distributionstriggers, eller för att distribuera innehåll uteslutande från en specifik rotmapp.

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

För att anpassa ditt GitHub-distributionsarbetsflöde:

  1. I GitHub går du till din lagringsplats 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:

    • För att ändra distributionstriggern, uppdatera on avsnittet i koden som beskriver händelsen som triggar arbetsflödet.

      Som standard är den här konfigurationen inställd på on: push, 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 på 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`
      

      Ändra dessa inställningar, 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.

      För mer information, se Konfigurera arbetsflödeshändelser i GitHub-dokumentationen.

    • För att inaktivera smarta utplaceringar:

      Smart distributionsbeteende konfigureras separat från arbetsflödestriggern i avsnittet on . Gå till avsnittet jobs i arbetsflödet. smartDeployment Växla standardvärdet från true till false. När den här ändringen har utförts stängs funktionen för smart distribution av och alla framtida distributioner för den här anslutningen distribuerar om alla lagringsplatsens relevanta innehållsfiler till de anslutna arbetsytorna.

    • För att ändra distributionsvägen:

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

      Denna standardkonfiguration innebär att ett distributionsflöde triggas varje gång innehåll skickas till någon del av den anslutna grenen.

      I jobs avsnittet ingår standardkonfigurationen .directory: '${{ github.workspace }}' Inställningen directory anger att hela GitHub-grenen finns i vägen för innehållsdistributionen, utan filtrering för några mappvägar.

      Om du bara vill distribuera innehåll från en specifik mappsökväg lägger du till det i både paths och konfigurationen directory . 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'
      

För mer information, se GitHub Actions arbetsflödessyntax för vägfilter i GitHub-dokumentationen.

Viktigt

I både GitHub och Azure DevOps kontrollerar du att du håller utlösarsökvägen och distributionssökvägens kataloger 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 Bicep-parameterfil eller en JSON-fil som innehåller parametervärdena. Mappa sedan parameterfilerna till deras associerade Microsoft Sentinel innehållsfiler för att skala distributionerna bättre på olika arbetsytor.

Det finns flera sätt att mappa parameterfiler till innehållsfilerna. Tänk på att Bicep-parameterfiler endast stöder Bicep-filmallar, men JSON-parameterfiler stöder båda. Distributionspipelinen för lagringsplatser tar hänsyn till parameterfiler i följande ordning:

Ett diagram som visar prioritetsordningen för mappningar av parameterfiler.

  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, innehållsfilerna finns i samma katalog med en arbetsytemappad parameterfil som matchar något av följande mönster:
    .<WorkspaceID.bicepparam.parameters-WorkspaceID>
    <>.json

  3. Finns det en standardparameterfil? Ja, innehållsfilerna finns i samma katalog med en parameterfil som matchar något av följande mönster:
    .bicepparam
    .parameters.json

Undvik konflikter med flera arbetsytedistributioner genom att mappa parameterfilerna via konfigurationsfilen eller ange arbetsyte-ID:t i filnamnet.

Viktigt

När en parameterfilmatchning har fastställts baserat på mappningsprioritet ignorerar pipelinen eventuella återstående mappningar.

Om du ändrar den mappade parameterfilen som anges i sentinel-deployment.config utlöses distributionen av dess länkade innehållsfil. Att lägga till eller ändra en mappad parameterfil för arbetsytan eller en standardparameterfil 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.

Viktigt

När du skapar, tar bort eller ändrar sentinel-deployment.config-filen utlöses en fullständig distribution av allt lagringsplatsinnehåll enligt den uppdaterade konfigurationen.

  1. Skapa filen sentinel-deployment.config i roten av ditt repo.

    Skärmbild av rotkatalogen i en lagringsplats. RepositoriesSampleContent visas med platsen för filen sentinel-deployment.config.

  2. Inkludera ditt strukturerade innehåll i tre valfria avsnitt, "prioritizedcontentfiles":, "excludecontentfiles":och "parameterfilemappings":. Om inga avsnitt ingår eller om .config fil 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 kan också hittas i exemplet Microsoft Sentinel CICD repositories.

{
  "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"
}

Obs!

Använd inte tecknet bakstreck ("\") i någon av sökvägarna till innehåll. Använd snedstrecket "/" i stället.

  • För att prioritera innehållsfiler:

    I takt med att mängden innehåll på lagringsplatsen växer kan distributionstiderna öka. Lägg till tidskänsligt innehåll i detta avsnitt för att prioritera driftsättningen när en utlösare aktiveras.

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

  • För att utesluta innehållsfiler, ändra "excludecontentfiles": avsnittet med fullständiga sökvägnamn för enskilda .json innehållsfiler.

  • För att kartlägga parametrar:

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