Automatische Labelingbeleid Voor Microsoft 365 Gegevensbescherming

💼 Management Samenvatting

Automatische labelingbeleid in Microsoft 365 zorgt ervoor dat gevoelige informatie consequent wordt herkend, geclassificeerd en beschermd, zonder afhankelijk te zijn van handmatige acties van gebruikers. Een volwassen auto-labelingstrategie legt de basis voor betrouwbare databescherming in het hele Microsoft Purview-ecosysteem.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
100u (tech: 40u)
Van toepassing op:
Microsoft 365 E5
Microsoft Purview
Exchange Online
SharePoint Online
OneDrive for Business
Microsoft Teams
Overheidsorganisaties

Nederlandse overheidsorganisaties verwerken dagelijks grote hoeveelheden persoonsgegevens, staatsvertrouwelijke documenten en bestuurlijke dossiers. Wanneer classificatie volledig aan gebruikers wordt overgelaten, ontstaan onvermijdelijk gaten: documenten worden niet gelabeld, labels worden verkeerd gekozen of beveiligingsinstellingen worden verwijderd om de samenwerking te versnellen. Toezichthouders zoals de Autoriteit Persoonsgegevens en de Algemene Rijksarchivaris verlangen echter aantoonbare borging dat informatie met een hoge gevoeligheid altijd wordt beschermd. Auto-labeling reduceert menselijke fouten, versnelt de reactie op nieuwe dreigingsinformatie en maakt het mogelijk om bewijslast voor BIO, AVG en NIS2 te leveren zonder dat elke afdeling eigen Excel-overzichten hoeft bij te houden. Daarnaast maken groeiende datasets en AI-ondersteunde werkstromen het praktisch onmogelijk om uitsluitend met handmatige labeling te blijven werken: alleen geautomatiseerde detectieregels kunnen de benodigde schaal en snelheid leveren.

PowerShell Modules Vereist
Primary API: Microsoft Purview Compliance portal en Security & Compliance PowerShell
Connection: Connect-IPPSSession of Microsoft Graph PowerShell (met app-registratie)
Required Modules: ExchangeOnlineManagement

Implementatie

Dit artikel beschrijft hoe een organisatiebrede auto-labelingarchitectuur wordt ontworpen, geïmplementeerd en beheerd binnen Microsoft 365. We behandelen de juridische en organisatorische eisen, de technische bouwstenen in Microsoft Purview, de manier waarop detectieregels en trainable classifiers worden ingericht, en hoe auto-labeling wordt gekoppeld aan beleid voor gegevensverliespreventie, encryptie en record management. Daarbij wordt expliciet ingegaan op de Nederlandse context: hoe veranker je beleid in de Baseline Informatiebeveiliging Overheid, hoe sluit je aan bij archief- en openbaarheidseisen, en hoe toon je richting auditors aan dat automatische labeling daadwerkelijk werkt. Het artikel bevat tevens verwijzingen naar het bijbehorende PowerShell-script dat controleert of de essentiële auto-labelingbeleid zijn geconfigureerd en dat een basisconfiguratie kan uitrollen.

Governance, verplichtingen en randvoorwaarden

Een auto-labelingbeleid kan alleen effectief zijn wanneer governance en juridische kaders helder zijn vastgelegd. Nederlandse overheidsorganisaties vallen onder de Baseline Informatiebeveiliging Overheid (BIO), de Archiefwet, de Wet open overheid (Woo) en de AVG. Deze kaders vereisen dat informatie met een specifieke gevoeligheid of bewaarplicht identificeerbaar en aantoonbaar beschermd wordt. Het governancekader begint daarom met een organisatorisch vastgestelde classificatiestructuur, waarin per informatieklasse is vastgelegd welke kenmerken een document of bericht heeft, welke beschermingsmaatregelen nodig zijn en welke bewaartermijnen gelden. Auto-labeling moet deze structuur automatiseren; dat betekent dat juristen, informatiebeheerders, security officers en functioneel beheerders gezamenlijk bepalen welke detectiecriteria bij elke klasse horen en welke diensten (Exchange, SharePoint, Teams, Viva Engage, OneDrive) onder het beleid vallen.

Vanuit complianceperspectief moet je kunnen aantonen dat de auto-labelingregels aansluiten op termenkaders zoals BIO 10.01, 10.02 en 16.1, AVG artikel 32 (passende technische maatregelen) en NIS2 artikel 21 (risicogerichte beveiliging). Dit vereist documentatie van de besluitvorming: per label en beleid wordt vastgelegd welke risicoanalyse eraan ten grondslag ligt, welke wet- en regelgeving is meegewogen en welke uitzonderingenscenario's bestaan. Daarnaast beschrijft de governance hoe wijzigingen worden aangebracht wanneer classificatieschema's worden aangepast, bijvoorbeeld na een reorganisatie, fusie of wijziging van ketensamenwerking met andere overheden. Een change board of Security Governance Board besluit over nieuwe detectieregels en verhoogde beschermingsniveaus, zodat auto-labeling geen losstaand IT-initiatief blijft maar onderdeel wordt van het integrale risicobeheer.

Licentietechnisch moeten organisaties minimaal beschikken over Microsoft 365 E5 of aanvullende Purview Information Protection-licenties om auto-labeling in alle workloads in te schakelen. Verder zijn specifieke rollen nodig: een Compliance Administrator of Information Protection Administrator configureert policies, terwijl een Security Operator de inzet bewaakt en rapportages levert. Er moet ook budget en capaciteit zijn voor data stewards die trainable classifiers trainen en valideren. Zonder deze randvoorwaarden verzandt auto-labeling in een eenmalig project; met goede governance ontstaat een doorlopende cyclus waarbij beleid, tooling en organisatie elkaar versterken.

Tot slot is afstemming met informatiebeheer essentieel. Auto-labeling bepaalt welke documenten direct onder archief- of vernietigingsregimes vallen en welke informatie mogen worden gedeeld met ketenpartners. Documenteer daarom hoe beleid samenwerkt met retention policies, DLP-regels en ediscoveryprocessen. Definieer escalatieprocedures voor situaties waarin auto-labeling opdrachten uitlokt die botsen met de dagelijkse werkpraktijk, bijvoorbeeld wanneer een label automatische versleuteling toepast waardoor een ketenpartner geen toegang meer heeft. Door deze governance vooraf te regelen, voorkom je dat gebruikers auto-labeling massaal uitschakelen of omzeilen.

Architectuur, ontwerprichtlijnen en detectiemodellen

Een robuuste auto-labelingarchitectuur combineert rule-based detectie, trainable classifiers en contextuele signalen uit Microsoft 365. Rule-based detectie gebruikt vooraf gedefinieerde patronen zoals BSN's, vertrouwelijkheidsaanduidingen of projectcodes. Trainable classifiers analyseren voorbeeldsets en herkennen documenten die inhoudelijk lijken op getrainde voorbeelden, bijvoorbeeld raadsvoorstellen of aanbestedingsdossiers. Contextuele signalen leveren extra duiding, zoals het team waarin een document is gemaakt of het gebruik van specifieke metagegevens. Bij het ontwerp van een auto-labelingbeleid maak je per label een matrix waarin staat welke signalen verplicht, optioneel of juist uitsluitingscriteria zijn. Dit voorkomt dat een label wordt geactiveerd omdat slechts één willekeurig patroon wordt gedetecteerd.

Ontwerpprincipes schrijven voor dat auto-labeling niet alleen beveiligingsmaatregelen triggert, maar ook duidelijke gebruikersfeedback levert. Elke automatische labelingactie moet gebruikers informeren waarom het label is toegepast, welke beperkingen gelden (encryptie, watermerk, externe delen) en hoe ze bezwaar kunnen maken. Dit stimuleert acceptatie en zorgt ervoor dat gebruikers fouten kunnen melden, waardoor detectiemodellen worden verbeterd. Daarnaast moeten labels hiërarchisch zijn opgebouwd: basislabels voor algemeen gebruik, gevoeligheidslabels per keten of programma en aanvullende labels voor juridische statussen zoals 'Staatsgeheim'. Elk niveau kent eigen auto-labelingregels met prioriteiten, zodat het meest beschermende label wint wanneer meerdere regels van toepassing zijn.

Technisch gezien is het raadzaam om policies op te knippen per workload en per gevoeligheidslaag. Exchange Online heeft bijvoorbeeld regels voor uitgaande e-mail met BSN's, terwijl SharePoint en OneDrive policies bevatten die mappen scannen op sleutelwoorden die horen bij aanbestedingen. Teams-chats vragen om lichtere maar realtime detectie. Door policies modulair te houden, kunnen teams incrementeel uitbreiden en per onderdeel testen zonder de hele tenant te beïnvloeden. Bovendien kunnen sommige policies in audit-modus draaien, waardoor je eerst rapportages verzamelt en pas daarna afdwingende maatregelen activeert. Dit beperkt verstoringen en maakt het mogelijk om stakeholders concreet te laten zien welke impact auto-labeling heeft.

Een geavanceerd design houdt rekening met integratie naar andere Purview-functies. Labels moeten naadloos samenwerken met Data Loss Prevention, Insider Risk Management, eDiscovery en record management. Dat betekent dat label-ID's consistent zijn, dat DLP-regels kunnen filteren op labelnamen en dat eDiscovery-zoekopdrachten labels gebruiken als selectiecriterium. Documenteer deze relaties expliciet, zodat architecten begrijpen hoe wijzigingen in één onderdeel effect hebben op de rest van de informatiebeveiligingsketen. Maak ten slotte een architectuurdecision record (ADR) per groot labelpakket; hierin leg je vast waarom bepaalde detectieregels zijn gekozen, welke alternatieven zijn verworpen en welke technische beperkingen gelden. Dat levert waardevolle audittrail op wanneer auditors bewijsmateriaal opvragen.

Implementatie, adoptie en operationele workflow

Implementatie start met een pilot waarin een beperkt aantal labels en policies wordt uitgerold binnen een gecontroleerde groep, bijvoorbeeld het CISO-team en de afdeling Juridische Zaken. In deze fase verzamel je telemetrie over hoeveel documenten automatisch worden gelabeld, hoeveel uitzonderingen gebruikers aanvragen en welke foutpositieven optreden. De resultaten worden gedeeld met het governanceboard dat beslist over opschaling. Documenteer elke wijziging in detectieregels, zodat later kan worden aangetoond waarom het beleid is aangepast. Zodra de pilot stabiel is, publiceer je de policies naar bredere groepen en plan je gerichte communicatie en training per rol.

Operationeel beheer vereist nauwe samenwerking tussen het SOC, informatiebeheerders en functioneel beheerders van Purview. Het SOC bewaakt of auto-labelingalerts duiden op misconfiguraties of aanvallen (bijvoorbeeld massaal downgraden van labels). Informatiebeheerders beoordelen steekproefsgewijs of automatisch gelabelde documenten overeenkomen met de archief- en bewaarplichten. Functioneel beheerders onderhouden de policies, trainen nieuwe classifiers en zorgen ervoor dat nieuwe SharePoint-sites, Teams en Viva Spaces standaard aan auto-labeling worden toegevoegd. Leg deze taken vast in RACI-matrices en voeg ze toe aan onboardingprogramma's voor nieuwe medewerkers, zodat kennis niet verdwijnt wanneer sleutelpersonen vertrekken.

Gebruikersadoptie hangt af van heldere communicatie en tooling die inzicht geeft in automatische beslissingen. Voorzie gebruikers van meldingen in Office-apps en Teams waarin kort staat waarom een label is toegepast en welke stappen mogelijk zijn. Bied selfserviceformulieren waarmee gebruikers foutieve labeling kunnen rapporteren zonder het gehele label te verwijderen. Organiseer periodieke kennissessies voor sleutelafdelingen (beleid, juridische zaken, projecten) waarin je laat zien hoe auto-labeling werkt, welke nieuwe labels zijn toegevoegd en welke incidenten zijn voorkomen dankzij automatische detectie. Combineer deze communicatie met rapportages die het bestuur inzicht geven in de waarde: minder incidentele datalekken, beter overzicht van gevoelige dossiers en sneller reageren op Woo-verzoeken omdat documenten netjes zijn geclassificeerd.

Tot slot hoort bij implementatie een volwassen release- en testproces. Elke nieuwe policy of wijziging doorloopt een lifecycle met ontwerp, peer review, testtenant, gecontroleerde productie-release en terugvalplan. Testsets bevatten representatieve documenten, waaronder gevoelige voorbeelden die in een beveiligde testomgeving worden opgeslagen. Resultaten van deze testen worden opgeslagen in het configuratiedossier zodat auditors kunnen verifiëren dat auto-labeling niet willekeurig is geïmplementeerd. Door deze workflow consequent te volgen, blijft auto-labeling betrouwbaar, schaalbaar en aantoonbaar compliant.

Monitoring, analytics en aantoonbaarheid

Gebruik PowerShell-script auto-labeling-policies.ps1 (functie Invoke-Monitoring) – Controleert of de vereiste auto-labelingbeleid bestaan, actief zijn en recente reviewdata hebben, en genereert een samenvatting voor audits..

Monitoring richt zich op zowel kwantitatieve indicatoren (hoeveel documenten zijn automatisch gelabeld, welke labels worden het meest toegepast, hoeveel uitzonderingen vragen gebruikers aan) als kwalitatieve signalen (klachten, foutmeldingen, lessons learned). Microsoft Purview biedt dashboards voor auto-labeling, maar veel organisaties exporteren de data naar een SIEM of Power BI om eigen rapportages te maken waarin trends zichtbaar worden. Belangrijke indicatoren zijn onder meer het percentage gevoelige documenten zonder label, het aantal documenten dat na auto-labeling handmatig wordt gewijzigd en de tijd tussen detectie van nieuwe dreigingen en implementatie van bijbehorende detectieregels. Deze indicatoren worden gedeeld met het bestuur en vormen input voor risicodialogen.

Naast dashboards zijn logbestanden cruciaal. Auditlogs in Purview registreren wie policies heeft gewijzigd, welke labels automatisch zijn toegepast en of gebruikers labels hebben verwijderd. Deze logbestanden moeten minimaal zeven jaar beschikbaar blijven om te voldoen aan archief- en auditvereisten. Het SOC kan deze logs gebruiken om verdachte activiteiten te detecteren, zoals het plotseling uitschakelen van kritieke policies of het massaal verlagen van labels door één gebruiker. Combineer logging met alerts in Microsoft Defender for Cloud Apps zodat afwijkend gedrag direct tot incidentrespons leidt.

Aantoonbaarheid richting toezichthouders vereist gestructureerde rapportages. Stel per kwartaal een rapport op met een overzicht van policies, laatste reviewdatum, verantwoordelijk eigenaar, detectieregels en verbeteracties. Koppel deze rapportage aan het PowerShell-script zodat de gegevens niet handmatig hoeven te worden verzameld. Voeg bewijsmateriaal toe zoals screenshots van Purview-dashboards, exportbestanden van gelabelde documenten en beslisnotities van het governanceboard. Door deze dossiervorming structureel bij te houden, kunnen auditors snel zien dat auto-labeling integraal onderdeel is van de control-omgeving.

Remediatie, automatisering en continue verbetering

Gebruik PowerShell-script auto-labeling-policies.ps1 (functie Invoke-Remediation) – Maakt een baseline auto-labelingbeleid aan of werkt bestaande policies bij met aanbevolen detectieregels en reviewmetadata..

Remediatie start wanneer monitoring afwijkingen ontdekt: ontbrekende policies, uitgeschakelde regels, achterstallige reviews of inconsistent gebruik. Het bijbehorende script kan een basisbeleid genereren dat alle kritieke workloads afdekt en standaarddetecties met Nederlandse BSN-, KvK- en rijksprojectcodes bevat. Vervolgens vullen data stewards het beleid aan met sectorspecifieke patronen. Elke remediatieactie wordt vastgelegd in een verbeterlog inclusief eigenaar, beoogde opleverdatum en koppeling met risico's uit het ISMS. Zo ontstaat een traceerbare keten van bevinding naar maatregel en verificatie.

Continue verbetering vereist dat je auto-labeling voedt met lessons learned uit incidenten, Woo-verzoeken en audits. Wanneer bijvoorbeeld een datalek ontstaat omdat een document in een legacy-systeem niet werd gelabeld, voeg je nieuwe detectieregels toe of breid je policies uit naar extra repositories. Train nieuwe classifiers met geanonimiseerde voorbeeldsets zodat herkenning steeds nauwkeuriger wordt. Plan daarnaast periodieke stress-tests waarin grote hoeveelheden documenten bewust worden aangeboden om te controleren of policies schaalbaar zijn en geen wachtrijen veroorzaken.

Automatisering strekt zich ook uit tot lifecyclebeheer. Gebruik Infrastructure as Code (Git, pipelines) voor Purview-configuraties zodat wijzigingen worden geversioneerd en peer-reviewed. Integreer het PowerShell-script in CI/CD-pipelines voor compliance checks voordat nieuwe sites of teams worden uitgerold. Documenteer rollback-stappen voor het geval een policy onbedoeld workflow's blokkeert. Door remediatie, automatisering en governance te combineren, blijft auto-labeling een betrouwbaar en aantoonbaar onderdeel van de Nederlandse Baseline voor Veilige Cloud.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# .SYNOPSIS Controleert en configureert automatische labelingbeleid in Microsoft 365 .DESCRIPTION Helpt organisaties binnen de Nederlandse Baseline voor Veilige Cloud om auto-labeling policies in Microsoft Purview te monitoren en waar nodig bij te sturen. Het script maakt gebruik van Security & Compliance PowerShell en ondersteunt monitoring, remediatie, revert en lokale debugruns. .NOTES Filename: auto-labeling-policies.ps1 Author: Nederlandse Baseline voor Veilige Cloud Category: information-protection Workload: m365 .EXAMPLE .\auto-labeling-policies.ps1 -Monitoring Controleert of de baseline auto-labeling policies bestaan en actueel zijn. .EXAMPLE .\auto-labeling-policies.ps1 -Remediation Maakt of actualiseert de baseline auto-labeling policy met aanbevolen detectieregels. #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param( [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf, [switch]$DebugMode ) $ErrorActionPreference = 'Stop' $script:BaselinePolicyName = "Baseline - Auto Labeling - Vertrouwelijke Gegevens" $script:BaselineRuleName = "$($script:BaselinePolicyName) - Rule" $script:TargetInfoTypes = @("Netherlands Citizen Service Number (BSN)", "EU Debit Card Number", "EU National Identification Number", "EU Tax Identification Number", "EU Passport Number") $script:RequiredWorkloads = @("Exchange", "SharePoint", "OneDrive", "Teams") $script:MaxReviewDays = 365 function Write-Header { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Auto Labeling Policies" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan } function Connect-ComplianceService { <# .SYNOPSIS Maakt verbinding met Security & Compliance PowerShell. #> try { $existing = Get-PSSession | Where-Object { $_.ConfigurationName -eq "Microsoft.Exchange" -and $_.State -eq "Opened" -and $_.Name -like "*IPPSSession*" } if (-not $existing) { Write-Host "Verbinden met Microsoft Purview..." -ForegroundColor Gray Connect-IPPSSession -ShowBanner:$false -ErrorAction Stop | Out-Null } } catch { Write-Host "[FAIL] Verbinding mislukt: $($_.Exception.Message)" -ForegroundColor Red throw } } function Get-AutoLabelPolicyStatus { <# .SYNOPSIS Haalt statusinformatie op voor alle auto-labeling policies. #> try { $policies = Get-AutoSensitivityLabelPolicy -ErrorAction Stop $results = @() foreach ($policy in $policies) { $rules = Get-AutoSensitivityLabelRule -Policy $policy.Name -ErrorAction SilentlyContinue $lastReview = $policy.AdditionalProperties["lastReviewDate"] $results += [PSCustomObject]@{ Name = $policy.Name Enabled = $policy.Mode -ne "Off" Mode = $policy.Mode Workloads = $policy.Workload -join ", " RulesPresent = $rules.Count -gt 0 InfoTypes = ($rules | ForEach-Object { $_.ContentContainsSensitiveInformation | ForEach-Object { $_.Name } }) -join ", " LastModified = $policy.WhenChangedUTC LastReviewDate = if ($lastReview) { $lastReview } else { $policy.WhenChangedUTC } } } return $results } catch { Write-Host "[FAIL] Ophalen van policies mislukt: $($_.Exception.Message)" -ForegroundColor Red throw } } function Invoke-Monitoring { if ($DebugMode) { Write-Host "[MODE] Debug: voorbeeldgegevens" -ForegroundColor Yellow return [PSCustomObject]@{ PolicyName = $script:BaselinePolicyName Exists = $true Enabled = $true Workloads = $script:RequiredWorkloads -join ", " LastReviewDate = (Get-Date).AddDays(-120) Compliant = $true } } Connect-ComplianceService $status = Get-AutoLabelPolicyStatus $baseline = $status | Where-Object { $_.Name -eq $script:BaselinePolicyName } if (-not $baseline) { Write-Host "[WARN] Baseline policy ontbreekt: $($script:BaselinePolicyName)" -ForegroundColor Yellow return [PSCustomObject]@{ PolicyName = $script:BaselinePolicyName Exists = $false Enabled = $false Workloads = "" LastReviewDate = $null Compliant = $false } } $workloads = if ($baseline.Workloads) { $baseline.Workloads.Split(",").Trim() } else { @() } $missingWorkloads = $script:RequiredWorkloads | Where-Object { $_ -notin $workloads } $reviewAge = (New-TimeSpan -Start [DateTime]$baseline.LastReviewDate -End (Get-Date)).Days $isCompliant = $baseline.Enabled -and $baseline.RulesPresent -and ($missingWorkloads.Count -eq 0) -and ($reviewAge -le $script:MaxReviewDays) Write-Host "Policy: $($baseline.Name)" -ForegroundColor Gray Write-Host " Enabled : $($baseline.Enabled)" -ForegroundColor Gray Write-Host " Workloads : $($baseline.Workloads)" -ForegroundColor Gray Write-Host " InfoTypes : $($baseline.InfoTypes)" -ForegroundColor Gray Write-Host " Last review : $([DateTime]$baseline.LastReviewDate)" -ForegroundColor Gray if ($missingWorkloads) { Write-Host "[WARN] Ontbrekende workloads: $($missingWorkloads -join ', ')" -ForegroundColor Yellow } if ($reviewAge -gt $script:MaxReviewDays) { Write-Host "[WARN] Review ouder dan $script:MaxReviewDays dagen." -ForegroundColor Yellow } if ($isCompliant) { Write-Host "[OK] Auto-labeling baseline voldoet aan criteria." -ForegroundColor Green } else { Write-Host "[WARN] Auto-labeling baseline voldoet niet aan alle criteria." -ForegroundColor Yellow } return [PSCustomObject]@{ PolicyName = $baseline.Name Exists = $true Enabled = $baseline.Enabled Workloads = $baseline.Workloads LastReviewDate = $baseline.LastReviewDate Compliant = $isCompliant } } function Initialize-Policy { <# .SYNOPSIS Maakt een baseline auto-labeling policy aan met standaarddetecties. #> Write-Host "Aanmaken baseline policy..." -ForegroundColor Gray $policy = New-AutoSensitivityLabelPolicy ` -Name $script:BaselinePolicyName ` -Comment "Baseline auto-labeling policy voor vertrouwelijke gegevens (Nederlandse Baseline voor Veilige Cloud)" ` -Workload $script:RequiredWorkloads ` -Mode Enforce ` -ErrorAction Stop return $policy } function Initialize-Rule { <# .SYNOPSIS Maakt de baseline rule inclusief gevoeligheidspatronen. #> Write-Host "Aanmaken baseline rule..." -ForegroundColor Gray $sensitiveInfo = @() foreach ($type in $script:TargetInfoTypes) { $sensitiveInfo += @{ Name = $type; ThresholdConfidenceLevel = "Medium"; MinCount = 1 } } New-AutoSensitivityLabelRule ` -Name $script:BaselineRuleName ` -Policy $script:BaselinePolicyName ` -Priority 1 ` -Mode Enforce ` -ContentContainsSensitiveInformation $sensitiveInfo ` -ErrorAction Stop | Out-Null } function Invoke-Remediation { if ($DebugMode) { Write-Host "[MODE] Debug: remediatievoorbeeld" -ForegroundColor Yellow Write-Host "Zou policy '$($script:BaselinePolicyName)' aanmaken of bijwerken." -ForegroundColor Gray Write-Host "Target workloads: $($script:RequiredWorkloads -join ', ')" -ForegroundColor Gray Write-Host "Info types: $($script:TargetInfoTypes -join ', ')" -ForegroundColor Gray return } Connect-ComplianceService $policy = Get-AutoSensitivityLabelPolicy -Identity $script:BaselinePolicyName -ErrorAction SilentlyContinue if (-not $policy) { if ($WhatIf) { Write-Host "[WhatIf] Policy '$($script:BaselinePolicyName)' zou worden aangemaakt." -ForegroundColor Yellow } else { $policy = Initialize-Policy } } else { Write-Host "Policy bestaat al, controleren op benodigde workloads..." -ForegroundColor Gray $missing = $script:RequiredWorkloads | Where-Object { $_ -notin $policy.Workload } if ($missing -and -not $WhatIf) { Write-Host "Bijwerken workloads naar volledige set." -ForegroundColor Gray Set-AutoSensitivityLabelPolicy -Identity $script:BaselinePolicyName -Workload $script:RequiredWorkloads -ErrorAction Stop } if ($policy.Mode -eq "Off" -and -not $WhatIf) { Set-AutoSensitivityLabelPolicy -Identity $script:BaselinePolicyName -Mode Enforce -ErrorAction Stop } } $rule = Get-AutoSensitivityLabelRule -Policy $script:BaselinePolicyName -Identity $script:BaselineRuleName -ErrorAction SilentlyContinue if (-not $rule) { if ($WhatIf) { Write-Host "[WhatIf] Rule '$($script:BaselineRuleName)' zou worden aangemaakt." -ForegroundColor Yellow } else { Initialize-Rule } } Write-Host "[OK] Remediatie uitgevoerd." -ForegroundColor Green } function Invoke-Revert { if ($DebugMode) { Write-Host "[MODE] Debug: revert voorbeeld" -ForegroundColor Yellow return } if (-not $WhatIf) { $confirm = Read-Host "Weet u zeker dat u de baseline auto-labeling policy wilt verwijderen? (ja/nee)" if ($confirm -ne "ja") { Write-Host "Actie geannuleerd." -ForegroundColor Yellow return } } Connect-ComplianceService $rule = Get-AutoSensitivityLabelRule -Policy $script:BaselinePolicyName -Identity $script:BaselineRuleName -ErrorAction SilentlyContinue if ($rule) { if ($WhatIf) { Write-Host "[WhatIf] Rule '$($script:BaselineRuleName)' zou worden verwijderd." -ForegroundColor Yellow } else { Remove-AutoSensitivityLabelRule -Identity $script:BaselineRuleName -Confirm:$false -ErrorAction Stop } } $policy = Get-AutoSensitivityLabelPolicy -Identity $script:BaselinePolicyName -ErrorAction SilentlyContinue if ($policy) { if ($WhatIf) { Write-Host "[WhatIf] Policy '$($script:BaselinePolicyName)' zou worden verwijderd." -ForegroundColor Yellow } else { Remove-AutoSensitivityLabelPolicy -Identity $script:BaselinePolicyName -Confirm:$false -ErrorAction Stop } } Write-Host "[OK] Revert afgerond." -ForegroundColor Green } Write-Header try { if ($Monitoring) { $result = Invoke-Monitoring if ($result) { Write-Host "`nSamenvatting:" -ForegroundColor Cyan Write-Host " Policy : $($result.PolicyName)" -ForegroundColor Gray Write-Host " Bestaat : $($result.Exists)" -ForegroundColor Gray Write-Host " Compliant : $($result.Compliant)" -ForegroundColor Gray } } elseif ($Remediation) { Invoke-Remediation } elseif ($Revert) { Invoke-Revert } else { Write-Host "Gebruik één van de opties: -Monitoring, -Remediation, -Revert, -DebugMode, -WhatIf" -ForegroundColor Yellow } } catch { Write-Host "[FAIL] $($_.Exception.Message)" -ForegroundColor Red throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Handmatige labeling blijft foutgevoelig waardoor vertrouwelijke documenten zonder bescherming circuleren, meldplichten worden gemist en de organisatie geen bewijs kan leveren van passende maatregelen onder BIO, AVG en NIS2.

Management Samenvatting

Ontwerp en beheer een auto-labelingbeleid in Microsoft Purview dat alle gevoelige documenten en e-mails automatisch detecteert en labelt. Koppel dit aan governance, monitoring en PowerShell-automatisering voor aantoonbare compliance.