Sdílet prostřednictvím


Přizpůsobení nasazení úložiště (Public Preview)

Nasazení obsahu úložiště do pracovních prostorů Služby Microsoft Sentinel můžete přizpůsobit dvěma primárními způsoby. Každá metoda používá různé soubory a syntaxi, proto zvažte tyto příklady, abyste mohli začít.

  • Upravte pracovní postup GitHubu nebo kanál DevOps a upravte možnosti nasazení, jako je trigger nasazení vašeho připojení, cesta nasazení nebo využití inteligentních nasazení.

  • Pomocí nově zavedeného konfiguračního souboru můžete řídit pořadí nasazení obsahu podle priority, zvolit vyloučení konkrétních souborů obsahu z těchto nasazení nebo mapování souborů parametrů na konkrétní soubory obsahu.

Požadavky a obor

Microsoft Sentinel v současné době podporuje připojení k úložištím GitHub a Azure DevOps. Před připojením pracovního prostoru Microsoft Sentinelu k úložišti správy zdrojového kódu se ujistěte, že máte:

  • Role Vlastník ve skupině prostředků, která obsahuje váš pracovní prostor Microsoft Sentinelu nebo kombinaci rolí User Accessu Správa istrator a Přispěvatel služby Sentinel za účelem vytvoření připojení
  • Přístup spolupracovníka k úložišti GitHub nebo projectu Správa istratoru k úložišti Azure DevOps
  • Povolené akce pro GitHub a Pipelines pro Azure DevOps
  • Ujistěte se, že vlastní soubory obsahu, které chcete nasadit do pracovních prostorů, jsou v příslušných šablonách Azure Resource Manageru (ARM).

Další informace najdete v tématu Ověření obsahu.

Přizpůsobení pracovního postupu nebo kanálu

Výchozí pracovní postup nasadí obsah upravený pouze od posledního nasazení na základě potvrzení do úložiště. Možná ale budete potřebovat další přizpůsobení, jako je konfigurace různých triggerů nasazení nebo nasazení obsahu výhradně z konkrétní kořenové složky.

V závislosti na typu připojení vyberte jednu z následujících karet:

Přizpůsobení pracovního postupu nasazení GitHubu:

  1. Na GitHubu přejděte do svého úložiště a vyhledejte svůj pracovní postup v adresáři .github/workflows .

    Soubor pracovního postupu je soubor YML začínající sentinel-deploy-xxxxx.yml. Otevřete tento soubor a název pracovního postupu se zobrazí na prvním řádku a má následující výchozí konvenci pojmenování: Deploy Content to <workspace-name> [<deployment-id>]

    Příklad: name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]

  2. Výběrem tlačítka tužky v pravém horním rohu stránky otevřete soubor pro úpravy a pak upravte nasazení následujícím způsobem:

    • Pokud chcete upravit aktivační událost nasazení, aktualizujte on část v kódu, která popisuje událost, která aktivuje spuštění pracovního postupu.

      Ve výchozím nastavení je tato konfigurace nastavená na on: push, což znamená, že pracovní postup se aktivuje při jakémkoli nasdílení změn do připojené větve, včetně úprav stávajícího obsahu a přidání nového obsahu do úložiště. Příklad:

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

      Můžete chtít změnit tato nastavení, například naplánovat pravidelné spouštění pracovního postupu nebo kombinovat různé události pracovního postupu dohromady.

      Další informace najdete v dokumentaci GitHubu ke konfiguraci událostí pracovního postupu.

    • Zakázání inteligentních nasazení: Chování inteligentních nasazení je oddělené od triggeru nasazení, který je popsán. Přejděte do jobs části pracovního postupu. smartDeployment Přepněte výchozí hodnotu z true do false. Po potvrzení této změny je funkce inteligentního nasazení vypnutá a všechna budoucí nasazení tohoto připojení znovu nasadí všechny relevantní soubory obsahu úložiště do připojených pracovních prostorů.

    • Úprava cesty nasazení:

      Ve výchozí konfiguraci zobrazené pro on oddíl označují zástupné znamény (**) v prvním řádku oddílu paths , že celá větev je v cestě pro triggery nasazení.

      Tato výchozí konfigurace znamená, že pracovní postup nasazení se aktivuje pokaždé, když se obsah odešle do jakékoli části větve.

      Dále v souboru jobs část obsahuje následující výchozí konfiguraci: directory: '${{ github.workspace }}'. Tento řádek označuje, že celá větev GitHubu je v cestě pro nasazení obsahu bez filtrování cest ke složkám.

      Pokud chcete nasadit obsah pouze z určité cesty ke složce, přidejte ho pathsdirectory do konfigurace i do ní. Pokud chcete například nasadit obsah pouze z kořenové složky s názvem SentinelContent, aktualizujte kód následujícím způsobem:

      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'
      

Další informace najdete v dokumentaci k GitHubu v GitHub Actions a úpravách pracovních postupů GitHubu.

Důležité

V GitHubu i Azure DevOps se ujistěte, že jsou cesty triggeru a adresáře cest nasazení konzistentní.

Škálování nasazení pomocí souborů parametrů

Místo předávání parametrů jako vložených hodnot v souborech obsahu zvažte použití souboru JSON, který obsahuje hodnoty parametrů. Pak tyto soubory JSON parametrů namapujte na jejich přidružené soubory obsahu služby Sentinel, abyste mohli lépe škálovat nasazení v různých pracovních prostorech. Soubory parametrů můžete mapovat na soubory Sentinelu několika způsoby a kanál nasazení úložišť je považuje za následující pořadí:

A diagram showing the precedence of parameter file mappings.

  1. Je v souboru sentinel-deployment.config mapování? Další informace najdete v tématu Přizpůsobení konfigurace připojení.
  2. Existuje soubor parametrů mapovaný pracovním prostorem? Ano, jedná se o soubor parametrů ve stejném adresáři jako soubory obsahu, které končí příponou .parameters-WorkspaceID<>.json
  3. Existuje výchozí soubor parametrů? Ano, jakýkoli soubor parametrů ve stejném adresáři jako soubory obsahu, které končí .parameters.json

Doporučujeme mapovat soubory parametrů prostřednictvím konfiguračního souboru nebo zadáním ID pracovního prostoru v názvu souboru, aby nedocházelo ke konfliktům ve scénářích s více nasazeními.

Důležité

Jakmile se určí shoda souboru parametrů na základě výše uvedené priority mapování, kanál bude ignorovat všechna zbývající mapování.

Při úpravě souboru mapovaného parametru uvedeného v souboru sentinel-deployment.config se aktivuje nasazení souboru spárovaného obsahu. Přidání nebo úprava souboru .parameters-WorkspaceID<>.json nebo souboru .parameters.json také aktivuje nasazení spárovaných souborů obsahu spolu s nově upravenými parametry, pokud není zavedeno mapování parametrů s vyšší prioritou. Jiné soubory obsahu se nenasazují, pokud je funkce inteligentních nasazení stále povolená v definičním souboru pracovního postupu nebo kanálu.

Přizpůsobení konfigurace připojení

Skript nasazení pro úložiště podporuje použití konfiguračního souboru nasazení pro každou větev úložiště od července 2022. Konfigurační soubor JSON vám pomůže namapovat soubory parametrů na relevantní soubory obsahu, určit prioritu konkrétního obsahu v nasazeních a vyloučit konkrétní obsah z nasazení.

  1. Vytvořte soubor sentinel-deployment.config v kořenovém adresáři úložiště. Přidání, odstranění nebo úprava tohoto konfiguračního souboru způsobí úplné nasazení veškerého obsahu v úložišti podle aktualizované konfigurace.

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

  2. Zahrnutí strukturovaného obsahu JSON do tří volitelných částí, "prioritizedcontentfiles":, "excludecontentfiles":a "parameterfilemappings":. Pokud nejsou zahrnuty žádné oddíly nebo není vynechán soubor .config, proces nasazení stále běží. Neplatné nebo nerozpoznané oddíly se ignorují.

Tady je příklad celého obsahu platného souboru sentinel-deployment.config . Tuto ukázku najdete také v ukázce úložišť CICD služby Sentinel.

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

Poznámka:

Nepoužívejte zpětné lomítko "\" v žádném z cest k obsahu. Místo toho použijte lomítko /.

  • Určení priority souborů obsahu:

    S rostoucím množstvím obsahu v úložišti se může zvýšit doba nasazení. Přidejte do této části časově citlivý obsah, abyste při výskytu triggeru upřednostněli jeho nasazení.

    Přidejte do oddílu "prioritizedcontentfiles": úplné názvy cest. Porovnávání zástupných znaků se v tuto chvíli nepodporuje.

  • Chcete-li vyloučit soubory obsahu, upravte "excludecontentfiles": oddíl s úplnými názvy cest jednotlivých .json souborů obsahu.

  • Mapování parametrů:

    Skript nasazení přijímá tři metody mapování parametrů, jak je popsáno ve škálování nasazení pomocí souborů parametrů. Mapování parametrů prostřednictvím sentinel-deployment.config má nejvyšší prioritu a zaručuje, že se daný soubor parametrů mapuje na přidružené soubory obsahu. Jednoduše upravte "parameterfilemappings": oddíl s ID pracovního prostoru cílového připojení a úplnými názvy cest jednotlivých .json souborů.

Další kroky

K dispozici je ukázkové úložiště, které demonstruje konfigurační soubor nasazení a všechny tři metody mapování parametrů. Další informace najdete v ukázce úložišť CICD služby Sentinel.

Další informace o šablonách ARM najdete v těchto zdrojích informací: