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.

Anpassningsmetod Distributionsalternativ som omfattas
GitHub-arbetsflöde
DevOps-pipeline
Anpassa anslutningens distributionsutlösare
Anpassa din distributionssökväg
Smart distributionsaktivering
Konfigurationsfiler Kontrollera den prioriterade ordningen för dina innehållsdistributioner
Välj att exkludera specifika innehållsfiler från distributioner
Skala distributioner över olika arbetsytor genom att mappa parameterfiler till specifika innehållsfiler

Förutsättningar

För att kunna anpassa en lagringsplatsdistribution måste det finnas en lagringsplatsanslutning. Mer information om hur du skapar anslutningen finns i Distribuera anpassat innehåll från lagringsplatsen. När anslutningen har upprättats gäller följande krav:

  • 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 har ett format som stöds. Information om format som stöds finns i Planera lagringsplatsens innehåll.

Mer information om distributionsbara innehållstyper 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. Anpassa 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`
      

      Ändra till exempel de här inställningarna 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 Bicep-parameterfil eller en JSON-fil som innehåller parametervärdena. Mappa sedan dessa parameterfiler till tillhörande Microsoft Sentinel-innehållsfiler för att skala dina distributioner på olika arbetsytor bättre.

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 prioriteten för parameterfilmappningar.

  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 arbetsytans ID i filnamnet.

Viktigt!

När en parameterfilmatchning bestäms baserat på mappningspriorencen 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. Om du lägger till eller ändrar en arbetsytemappad parameterfil eller en standardparameterfil utlöses även 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. När du lägger till, tar bort eller ändrar den här konfigurationsfilen utlöses en fullständig distribution av allt innehåll på lagringsplatsen enligt den uppdaterade konfigurationen.

    Skärmbild av en databasrotkatalog. 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-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 Microsoft Sentinel CICD-lagringsplatser.

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

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. Ändra avsnittet "parameterfilemappings": med målanslutningens arbetsyte-ID och fullständiga sökvägsnamn för enskilda .json filer.

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