Implementaties van opslagplaatsen aanpassen (openbare preview)

Er zijn twee belangrijke manieren om de implementatie van de inhoud van uw opslagplaats aan te passen aan Microsoft Sentinel werkruimten. Elke methode gebruikt verschillende bestanden en syntaxis, dus bekijk deze voorbeelden om aan de slag te gaan.

Aanpassingsmethode Implementatieopties behandeld
GitHub-werkstroom
DevOps-pijplijn
De implementatietrigger van uw verbinding aanpassen
Uw implementatiepad aanpassen
Slimme implementaties inschakelen
Configuratiebestanden De prioriteitsvolgorde van uw inhoudsimplementaties beheren
Specifieke inhoudsbestanden uitsluiten van implementaties
Implementaties schalen in verschillende werkruimten door parameterbestanden toe te koppelen aan specifieke inhoudsbestanden

Belangrijk

De functie Microsoft Sentinel Opslagplaatsen is momenteel in PREVIEW. Zie de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer juridische voorwaarden die van toepassing zijn op Azure functies die in bètaversie, preview of anderszins nog niet algemeen beschikbaar zijn.

Vereisten

Als u een implementatie van opslagplaatsen wilt aanpassen, moet er een opslagplaatsverbinding bestaan. Zie Aangepaste inhoud implementeren vanuit uw opslagplaats voor meer informatie over het maken van de verbinding. Nadat de verbinding is gemaakt, zijn de volgende vereisten van toepassing:

  • Toegang van medewerkers tot uw GitHub-opslagplaats of projectbeheerdertoegang tot uw Azure DevOps-opslagplaats
  • Acties ingeschakeld voor GitHub en Pijplijnen ingeschakeld voor Azure DevOps
  • Zorg ervoor dat aangepaste inhoudsbestanden die u in uw werkruimten wilt implementeren, een ondersteunde indeling hebben. Zie De inhoud van uw opslagplaats plannen voor ondersteunde indelingen.

Zie De inhoud van uw opslagplaats plannen voor meer informatie over implementeerbare inhoudstypen.

De werkstroom of pijplijn aanpassen

De standaardwerkstroom implementeert alleen inhoud die is gewijzigd sinds de laatste implementatie, op basis van doorvoeringen in de opslagplaats. Aanpassen om verschillende implementatietriggers te configureren of om inhoud uitsluitend vanuit een specifieke hoofdmap te implementeren.

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 voor bewerking 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 waarmee de werkstroom wordt uitgevoerd.

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

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

      Wijzig deze instellingen, bijvoorbeeld om te plannen dat de werkstroom periodiek wordt uitgevoerd of om verschillende werkstroom-gebeurtenissen samen te combineren.

      Zie de GitHub-documentatie over het configureren van werkstroom-gebeurtenissen voor meer informatie.

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

    • Het implementatiepad wijzigen:

      In de standaardconfiguratie die wordt weergegeven voor de on sectie, 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 wilt implementeren vanuit een specifiek mappad, 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 het GitHub Actions en 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 Bicep-parameterbestand of een JSON-bestand te gebruiken dat de parameterwaarden bevat. Wijs deze parameterbestanden vervolgens toe aan de bijbehorende Microsoft Sentinel inhoudsbestanden om uw implementaties beter te schalen tussen verschillende werkruimten.

Er zijn verschillende manieren om parameterbestanden toe te wijzen aan de inhoudsbestanden. Houd er rekening mee dat Bicep-parameterbestanden alleen Bicep-bestandssjablonen ondersteunen, maar JSON-parameterbestanden ondersteunen beide. De pijplijn voor de implementatie van opslagplaatsen houdt rekening met parameterbestanden in de volgende volgorde:

Een diagram met de prioriteit van parameterbestandstoewijzingen.

  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, de inhoudsbestanden bevinden zich in dezelfde map met een parameterbestand dat is toegewezen aan een werkruimte die overeenkomt met een van deze patronen:
    .<WorkspaceID.bicepparam.parameters-WorkspaceID>
    <>.json

  3. Is er een standaardparameterbestand? Ja, de inhoudsbestanden bevinden zich in dezelfde map met een parameterbestand dat overeenkomt met een van deze patronen:
    .bicepparam
    .parameters.json

Voorkom conflicten met meerdere werkruimte-implementaties door uw parameterbestanden toe te voegen via het configuratiebestand of de werkruimte-id op te geven in de bestandsnaam.

Belangrijk

Zodra een parameterbestandsovereenkomst is bepaald op basis van de toewijzingsprioriteit, negeert de pijplijn alle resterende toewijzingen.

Als u het toegewezen parameterbestand wijzigt dat wordt vermeld in de sentinel-deployment.config , wordt de implementatie van het gekoppelde inhoudsbestand geactiveerd. Als u een parameterbestand met een werkruimtetoewijzing of een standaardparameterbestand toevoegt of wijzigt, wordt ook een implementatie van de gekoppelde inhoudsbestanden samen met de zojuist gewijzigde parameters geactiveerd, tenzij er een hogere prioriteitsparametertoewijzing is ingesteld. Andere inhoudsbestanden worden niet geïmplementeerd zolang de functie voor 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.

    Schermopname van de hoofdmap van een opslagplaats. De RepositoriesSampleContent wordt weergegeven met de locatie van het sentinel-deployment.config-bestand.

  2. Neem uw gestructureerde inhoud op in drie optionele secties, "prioritizedcontentfiles":, "excludecontentfiles":en "parameterfilemappings":. Als er geen secties zijn opgenomen of als het .config-bestand 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 kunt u ook vinden in het voorbeeld van Microsoft Sentinel CICD-opslagplaatsen.

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

Opmerking

Gebruik het backslashteken '\' niet in een van de inhoudspaden. Gebruik in plaats hiervan 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 optreedt.

    Voeg volledige padnamen toe aan de "prioritizedcontentfiles": sectie. Het koppelen van jokertekens wordt 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 heeft de hoogste prioriteit en garandeert dat een bepaald parameterbestand wordt toegewezen aan de bijbehorende inhoudsbestanden. Wijzig de sectie met de "parameterfilemappings": werkruimte-id van uw doelverbinding en de volledige padnamen van afzonderlijke .json bestanden.

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