Delen via


Implementaties van opslagplaatsen aanpassen (openbare preview)

Er zijn twee primaire manieren om de implementatie van de inhoud van uw opslagplaats aan te passen aan Microsoft Sentinel-werkruimten. Elke methode maakt gebruik van verschillende bestanden en syntaxis, dus bekijk deze voorbeelden om u op weg te helpen.

  • Wijzig de GitHub-werkstroom of DevOps-pijplijn om implementatieopties aan te passen, zoals de implementatietrigger van uw verbinding, het implementatiepad of het gebruik van slimme implementaties.

  • Gebruik het zojuist geïntroduceerde configuratiebestand om de prioriteitsvolgorde van uw inhoudsimplementaties te beheren, ervoor te kiezen om specifieke inhoudsbestanden van deze implementaties uit te sluiten of parameterbestanden toe te wijzen aan specifieke inhoudsbestanden.

Belangrijk

De functie Microsoft Sentinel-opslagplaatsen is momenteel beschikbaar als PREVIEW-versie. Zie de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor aanvullende juridische voorwaarden die van toepassing zijn op Azure-functies die bèta, preview of anderszins nog niet beschikbaar zijn.

Vereisten en bereik

Microsoft Sentinel ondersteunt momenteel verbindingen met GitHub- en Azure DevOps-opslagplaatsen. Voordat u uw Microsoft Sentinel-werkruimte verbindt met uw opslagplaats voor broncodebeheer, moet u ervoor zorgen dat u het volgende hebt:

  • Een rol Van eigenaar in de resourcegroep die uw Microsoft Sentinel-werkruimte bevat of een combinatie van de rollen Gebruikerstoegang Beheer istrator en Sentinel-inzender om de verbinding te maken
  • Toegang van medewerkers tot uw GitHub-opslagplaats of Project Beheer istratortoegang tot uw Azure DevOps-opslagplaats
  • Acties ingeschakeld voor GitHub en Pijplijnen die zijn ingeschakeld voor Azure DevOps
  • Zorg ervoor dat aangepaste inhoudsbestanden die u in uw werkruimten wilt implementeren, zich in relevante ARM-sjablonen (Azure Resource Manager) bevinden

Zie Uw inhoud valideren voor meer informatie.

De werkstroom of pijplijn aanpassen

De standaardwerkstroom implementeert alleen inhoud die is gewijzigd sinds de laatste implementatie, op basis van doorvoeringen naar de opslagplaats. Maar mogelijk hebt u andere aanpassingen nodig, zoals het configureren van verschillende implementatietriggers of het implementeren van inhoud uitsluitend vanuit een specifieke hoofdmap.

Selecteer een van de volgende tabbladen, afhankelijk van uw verbindingstype:

Uw GitHub-implementatiewerkstroom aanpassen:

  1. Ga in GitHub naar uw opslagplaats en zoek uw werkstroom in de map .github/workflows .

    Het werkstroombestand is het YML-bestand dat begint met sentinel-deploy-xxxxx.yml. Open dat bestand en de naam van de werkstroom wordt weergegeven op de eerste regel en heeft de volgende standaardnaamconventie: Deploy Content to <workspace-name> [<deployment-id>].

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

  2. Selecteer de potloodknop rechtsboven op de pagina om het bestand te openen om het te bewerken en wijzig de implementatie als volgt:

    • Als u de implementatietrigger wilt wijzigen, werkt u de on sectie in de code bij, waarin de gebeurtenis wordt beschreven die de werkstroom activeert om uit te voeren.

      Deze configuratie is standaard ingesteld op on: push, wat betekent dat de werkstroom wordt geactiveerd bij een push naar de verbonden vertakking, inclusief wijzigingen in bestaande inhoud en toevoegingen van nieuwe inhoud aan de opslagplaats. Voorbeeld:

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

      U kunt deze instellingen wijzigen, bijvoorbeeld om de werkstroom periodiek uit te voeren of om verschillende werkstroomevenementen samen te combineren.

      Zie de GitHub-documentatie voor het configureren van werkstroomevenementen voor meer informatie.

    • Slimme implementaties uitschakelen: het gedrag van slimme implementaties is gescheiden van de implementatietrigger die wordt besproken. Navigeer naar de jobs sectie van uw werkstroom. Schakel de smartDeployment standaardwaarde van true in false. Zodra deze wijziging is doorgevoerd, wordt de functionaliteit voor slimme implementatie uitgeschakeld en worden alle toekomstige implementaties voor deze verbinding opnieuw geïmplementeerd in alle relevante inhoudsbestanden van de opslagplaats naar de verbonden werkruimten.

    • Het implementatiepad wijzigen:

      In de standaardconfiguratie die voor de on sectie wordt weergegeven, geven de jokertekens (**) op de eerste regel in de paths sectie aan dat de hele vertakking zich in het pad voor de implementatietriggers bevindt.

      Deze standaardconfiguratie betekent dat een implementatiewerkstroom wordt geactiveerd wanneer inhoud naar een deel van de vertakking wordt gepusht.

      Verderop in het bestand bevat de jobs sectie de volgende standaardconfiguratie: directory: '${{ github.workspace }}'. Deze regel geeft aan dat de volledige GitHub-vertakking zich in het pad voor de inhoudsimplementatie bevindt, zonder te filteren op mappaden.

      Als u alleen inhoud van een specifiek mappad wilt implementeren, voegt u deze toe aan zowel de paths als de directory configuratie. Als u bijvoorbeeld alleen inhoud wilt implementeren vanuit een hoofdmap met de naam SentinelContent, werkt u uw code als volgt bij:

      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'
      

Zie de GitHub-documentatie over GitHub Actions en het bewerken van GitHub-werkstromen voor meer informatie.

Belangrijk

Zorg ervoor dat u in zowel GitHub als Azure DevOps het triggerpad en de implementatiepadmappen consistent houdt.

Uw implementaties schalen met parameterbestanden

In plaats van parameters door te geven als inlinewaarden in uw inhoudsbestanden, kunt u overwegen een JSON-bestand te gebruiken dat de parameterwaarden bevat. Wijs die parameter-JSON-bestanden vervolgens toe aan de bijbehorende Sentinel-inhoudsbestanden om uw implementaties in verschillende werkruimten beter te schalen. Er zijn verschillende manieren om parameterbestanden toe te wijzen aan Sentinel-bestanden en de implementatiepijplijn voor opslagplaatsen beschouwt deze in de volgende volgorde:

A diagram showing the precedence of parameter file mappings.

  1. Is er een toewijzing in de sentinel-deployment.config? Zie Uw verbindingsconfiguratie aanpassen voor meer informatie.
  2. Is er een parameterbestand dat aan de werkruimte is toegewezen? Ja, het is een parameterbestand in dezelfde map als de inhoudsbestanden die eindigen op .parameters-WorkspaceID<>.json
  3. Is er een standaardparameterbestand? Ja, elk parameterbestand in dezelfde map als de inhoudsbestanden die eindigen op .parameters.json

Het wordt aangeraden om uw parameterbestanden toe te wijzen via het configuratiebestand of door de werkruimte-id in de bestandsnaam op te geven om conflicten in scenario's met meerdere implementaties te voorkomen.

Belangrijk

Zodra een overeenkomend parameterbestand wordt bepaald op basis van de bovenstaande toewijzingsprioriteit, negeert de pijplijn eventuele resterende toewijzingen.

Als u het toegewezen parameterbestand wijzigt dat wordt vermeld in sentinel-deployment.config, wordt de implementatie van het gekoppelde inhoudsbestand geactiveerd. Als u een .parameters-WorkspaceID<>.json-bestand of .parameters.json-bestand toevoegt of wijzigt, wordt ook een implementatie van de gekoppelde inhoudsbestanden en de zojuist gewijzigde parameters geactiveerd, tenzij er een hogere prioriteitsparametertoewijzing is ingesteld. Andere inhoudsbestanden worden niet geïmplementeerd zolang de functie slimme implementaties nog steeds is ingeschakeld in het definitiebestand van de werkstroom/pijplijn.

Uw verbindingsconfiguratie aanpassen

Het implementatiescript voor opslagplaatsen ondersteunt het gebruik van een implementatieconfiguratiebestand voor elke opslagplaatsbranch vanaf juli 2022. Met het JSON-configuratiebestand kunt u parameterbestanden toewijzen aan relevante inhoudsbestanden, specifieke inhoud in implementaties prioriteren en specifieke inhoud uitsluiten van implementaties.

  1. Maak het bestand sentinel-deployment.config in de hoofdmap van uw opslagplaats. Als u dit configuratiebestand toevoegt, verwijdert of wijzigt, wordt alle inhoud in de opslagplaats volledig geïmplementeerd volgens de bijgewerkte configuratie.

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

  2. Voeg gestructureerde JSON-inhoud toe in drie optionele secties, "prioritizedcontentfiles":en "excludecontentfiles":"parameterfilemappings":. Als er geen secties zijn opgenomen of als het CONFIGURATIEbestand wordt weggelaten, wordt het implementatieproces nog steeds uitgevoerd. Ongeldige of niet-herkende secties worden genegeerd.

Hier volgt een voorbeeld van de volledige inhoud van een geldig sentinel-deployment.config-bestand . Dit voorbeeld vindt u ook in het voorbeeld van sentinel CICD-opslagplaatsen.

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

Notitie

Gebruik het teken Backslash '\' niet in een van de inhoudspaden. Gebruik in plaats daarvan de slash '/'.

  • Inhoudsbestanden prioriteren:

    Naarmate de hoeveelheid inhoud in uw opslagplaats toeneemt, kunnen de implementatietijden toenemen. Voeg tijdgevoelige inhoud toe aan deze sectie om prioriteit te geven aan de implementatie wanneer er een trigger plaatsvindt.

    Voeg volledige padnamen toe aan de "prioritizedcontentfiles": sectie. Jokertekens worden momenteel niet ondersteund.

  • Als u inhoudsbestanden wilt uitsluiten, wijzigt u de "excludecontentfiles": sectie met volledige padnamen van afzonderlijke .json inhoudsbestanden.

  • Parameters toewijzen:

    Het implementatiescript accepteert drie methoden voor toewijzingsparameters, zoals beschreven in Uw implementaties schalen met parameterbestanden. Toewijzingsparameters via de sentinel-deployment.config hebben de hoogste prioriteit en garanderen dat een bepaald parameterbestand is toegewezen aan de bijbehorende inhoudsbestanden. Wijzig de "parameterfilemappings": sectie met de werkruimte-id van uw doelverbinding en de volledige padnamen van afzonderlijke .json bestanden.

Volgende stappen

Er is een voorbeeldopslagplaats beschikbaar waarin het configuratiebestand voor de implementatie en alle drie de methoden voor parametertoewijzing worden gedemonstreerd. Zie het voorbeeld van Sentinel CICD-opslagplaatsen voor meer informatie.

Bekijk deze bronnen voor meer informatie over ARM-sjablonen: