Data Retention Policies In Microsoft 365: Bewaartermijnen En Naleving

💼 Management Samenvatting

Data retention policies vormen het concrete instrument waarmee bewaartermijnen in Microsoft 365 daadwerkelijk worden afgedwongen. Waar het retentiebeleid op papier vastlegt welke informatie hoe lang moet worden bewaard, zorgen data retention policies in Microsoft Purview ervoor dat e‑mail, documenten, chats en andere gegevens in Exchange, SharePoint, OneDrive en Teams volgens deze kaders worden bewaard of vernietigd. Voor Nederlandse overheidsorganisaties zijn deze policies onmisbaar om Archiefwet, AVG, BIO en NIS2 niet alleen in theorie, maar ook in de dagelijkse praktijk na te leven.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
100u (tech: 40u)
Van toepassing op:
M365
Exchange Online
SharePoint Online
OneDrive
Teams
Publieke Sector
Overheidsorganisaties

Zonder zorgvuldig ingerichte data retention policies ontstaat er een gevaarlijke kloof tussen beleid en werkelijkheid. Dossiers en communicatie kunnen dan in de tenant blijven bestaan lang nadat de wettelijke bewaartermijn is verstreken, wat leidt tot onnodige privacy- en beveiligingsrisico’s, hogere opslag- en beheerkosten en een onoverzichtelijke informatiehuishouding. Omgekeerd kan foutief ingerichte vernietiging ertoe leiden dat juridisch of archiefwaardig materiaal te vroeg wordt verwijderd, met directe gevolgen voor de bewijspositie bij incidenten, onderzoeken, WOO‑verzoeken en parlementaire verantwoording. Toezichthouders verwachten dat organisaties niet alleen een bewaarschema hebben, maar ook aantoonbaar kunnen laten zien hoe bewaartermijnen technisch zijn geïmplementeerd. Data retention policies zijn daarmee een sleutelmechanisme in de verantwoordingsketen van de Nederlandse overheid.

PowerShell Modules Vereist
Primary API: Microsoft Purview (Security & Compliance PowerShell)
Connection: Connect-IPPSSession
Required Modules: ExchangeOnlineManagement

Implementatie

Dit artikel beschrijft hoe Nederlandse overheidsorganisaties data retention policies in Microsoft 365 ontwerpen, implementeren en onderhouden in samenhang met hun bredere retentie- en archiveringsbeleid. We gaan in op de vertaling van bewaarschema’s naar concrete instellingen in Purview Data Lifecycle Management, de specifieke aandachtspunten per workload en het onderscheid tussen standaardpolicies en uitzonderingen voor bijzondere informatiecategorieën. Vervolgens laten we zien hoe u met behulp van het script `data-retention-policies.ps1` periodiek kunt controleren of policies nog aansluiten op de afgesproken bewaartermijnen, of alle relevante werkbelastingen worden afgedekt en waar optimalisatie nodig is. Het resultaat is een beheersbare, juridisch houdbare en transparante inrichting van data retention policies binnen de Nederlandse Baseline voor Veilige Cloud.

Ontwerp van data retention policies en mapping op bewaarschema’s

De kwaliteit van data retention policies staat of valt met een goede vertaling van het bewaarschema naar concrete technische regels. Het uitgangspunt is altijd een formeel vastgesteld bewaarschema waarin per informatietype de wettelijke en organisatorische bewaartermijn is vastgelegd, inclusief classificatie als blijvend te bewaren, tijdelijk te bewaren of te vernietigen na aflopen van de termijn. In plaats van dit schema letterlijk één-op-één te vertalen naar tientallen afzonderlijke policies, werken volwassen organisaties met een beperkt aantal generieke retentiecategorieën die logisch en uitlegbaar zijn. Denk aan categorieën als "Algemene communicatie", "Bestuurlijke besluitvorming", "Financiële administratie", "Personeelsdossiers" en "Project- en zaakdossiers". Voor elk van deze categorieën wordt vastgesteld welke bewaartermijn geldt, of na afloop vernietiging automatisch of handmatig plaatsvindt, en of er sprake is van blijvend te bewaren archief. Deze keuzes worden niet alleen juridisch onderbouwd, maar ook afgestemd met CISO, FG, informatiebeheerders en lijnmanagement, zodat duidelijk is welke risico’s worden afgedekt en welke rest-risico’s bewust worden geaccepteerd.

Vervolgens wordt per categorie bepaald hoe deze zich vertaalt naar Microsoft 365. In Purview Data Lifecycle Management kunnen organisaties werken met retentielabels, label policies en tenantbrede retention policies. Een praktische aanpak is om voor de meeste gebruikers en werkruimtes een duidelijke standaardpolicy te hanteren (bijvoorbeeld zeven of tien jaar voor algemene communicatie), aangevuld met specifieke labels voor dossiers of informatie die een afwijkende bewaartermijn kent. Belangrijk is dat de naamgeving van policies en labels direct herkenbaar is: een combinatie van organisatieprefix, informatietype en bewaartermijn voorkomt verwarring in beheer en eindgebruik. Daarnaast wordt in de documentatie vastgelegd welke policies zijn bedoeld als technische vertaling van welke onderdelen van het bewaarschema. Zo ontstaat een directe, auditbare mapping tussen juridische eisen en concrete instellingen. Deze mapping is cruciaal bij vragen van toezichthouders of de rekenkamer, omdat daarmee inzichtelijk wordt hoe wet- en regelgeving feitelijk wordt nageleefd in de Microsoft 365‑tenant.

Een valkuil is om uitzonderingen op het bewaarschema in de techniek te verwerken zonder deze formeel vast te leggen. Dat gebeurt bijvoorbeeld wanneer een afdeling aandringt op langere bewaring "voor het gemak" of wanneer old‑style archieven worden gemigreerd zonder dat het bewaarbeleid expliciet wordt herijkt. Om dit te voorkomen, beschrijven governance-afspraken precies hoe wijzigingsverzoeken worden behandeld, wie bevoegd is om nieuwe policies toe te voegen en hoe documentatie wordt bijgewerkt. Elke nieuwe data retention policy moet gekoppeld zijn aan een besluit, waarin de reden, de juridische basis en de impact zijn vastgelegd. Door deze discipline te hanteren, blijven data retention policies beheersbaar, uitlegbaar en consistent met de Nederlandse Baseline voor Veilige Cloud.

Implementatie per workload: Exchange, SharePoint, OneDrive en Teams

Hoewel data retention policies in Purview centraal worden beheerd, verschilt de praktische impact per workload aanzienlijk. In Exchange Online gaat het primair om e‑mailcommunicatie en agenda-items, vaak sterk persoonsgebonden en met grote variatie in gevoeligheid. Voor SharePoint en Teams staat juist de context van samenwerkingsomgevingen, sites en kanalen centraal, waar documenten onderdeel zijn van dossiers, projecten of programma’s. OneDrive wordt vooral gebruikt als persoonlijke werk- en conceptomgeving, waar informatie óf moet doorstromen naar formele dossiervorming, óf na beperkte tijd kan worden verwijderd. Bij het ontwerp van policies moet daarom expliciet worden vastgesteld welke standaardregelingen gelden per workload en welke uitzonderingen nodig zijn. Zo kan bijvoorbeeld worden gekozen voor een generieke policy van tien jaar op Exchange-postvakken, gecombineerd met strengere of langere bewaartermijnen voor mailboxen van bestuurders en topmanagement. Voor SharePoint en Teams kunnen retentielabels en site- of teamgebonden policies worden gebruikt om zaakdossiers, commissie-omgevingen of projectgroepen gezaghebbend te archiveren.

Voor Teams-chats en kanaalberichten gelden specifieke aandachtspunten. Deze content wordt vaak onderschat, terwijl chatgesprekken in de praktijk net zo goed beleidsvorming, besluitvorming en uitwisseling van persoonsgegevens kunnen bevatten als e‑mail of documenten. Organisaties moeten daarom expliciet bepalen welke bewaartermijnen gelden voor 1-op-1-chats, groepschats en kanaalberichten, en hoe dit zich verhoudt tot andere communicatiemiddelen. Een te korte bewaartermijn kan de reconstructie van besluitvorming en incidentafhandeling bemoeilijken, terwijl onbeperkte bewaring onnodige risico’s oplevert. Door gebruik te maken van separate policies voor chatcontent, eventueel gecombineerd met aanvullende governance-afspraken (bijvoorbeeld over het documenteren van besluiten in formele systemen), ontstaat een gebalanceerde inrichting. Daarnaast moet worden nagedacht over gastgebruikers en samenwerkingen met externe partijen: policies moeten ook daar consequent zijn, zodat gevoelige informatie niet buiten het toezicht van de organisatie valt.

Voor OneDrive en persoonlijke werkruimtes ligt de nadruk op dataminimalisatie en doorstroom naar structurele dossiervorming. Een best practice is om een relatief korte standaardbewaartermijn voor persoonlijke opslag te hanteren, gecombineerd met duidelijke instructies en tooling om definitieve stukken tijdig te verplaatsen naar zaak- of projectomgevingen met formele retentie. Dit voorkomt dat persoonlijke drives uitgroeien tot schaduwarchieven waarin kritisch bewijsmateriaal of archiefwaardige informatie verborgen blijft. Tegelijkertijd moet de configuratie voldoende rekening houden met praktische werkprocessen, zodat medewerkers niet het gevoel krijgen dat informatie onverwacht verdwijnt. Heldere communicatie, inclusief voorbeelden en FAQ’s, helpt om draagvlak te creëren. Door per workload gestructureerd te analyseren welke informatietypen voorkomen en hoe deze in de praktijk worden gebruikt, kunnen data retention policies zodanig worden ingericht dat zowel juridische eisen als dagelijkse gebruikservaring in balans zijn.

Monitoring, rapportage en continue verbetering van data retention policies

Gebruik PowerShell-script data-retention-policies.ps1 (functie Invoke-DataRetentionReview) – Voert een gestructureerde controle uit op ingerichte data retention policies, inclusief dekking per workload, aanwezigheid van retentieregels en aansluiting op ontwerpcriteria. Ondersteunt zowel veilige lokale debug-tests als live‑controles in de tenant..

Data retention policies zijn geen eenmalige configuratie, maar onderdeel van een continu verbeterproces. Wet- en regelgeving veranderen, de organisatie ontwikkelt nieuwe diensten, en Microsoft breidt functionaliteit in Purview en workloads regelmatig uit. Zonder structurele monitoring veroudert de inrichting onopgemerkt: nieuwe Teams of SharePoint-sites worden buiten bestaand beleid aangemaakt, pilots of tijdelijke projecten houden afwijkende instellingen, of er ontstaan doublures en tegenstrijdige policies. Een professionele aanpak richt daarom vaste controlemechanismen in. Minimaal eens per jaar, maar bij voorkeur per kwartaal, wordt een geautomatiseerde inventarisatie uitgevoerd van alle ingerichte policies, inclusief scope, retentieduur en dekking per workload. De resultaten worden vergeleken met ontwerpcriteria en het actuele bewaarschema. Afwijkingen worden niet alleen technisch opgelost, maar ook bestuurlijk besproken, zodat duidelijk is welke keuzes zijn gemaakt en waarom.

Het script `data-retention-policies.ps1` ondersteunt deze aanpak door een gestandaardiseerd overzicht te genereren van alle data retention policies in Microsoft 365. In debug-modus kan de logica lokaal worden getest, zonder verbinding met de tenant, waardoor ontwikkelaars en beheerders veilig kunnen experimenteren met rapportagevormen. In productie kan het script via Security & Compliance PowerShell actuele gegevens ophalen, zoals het aantal policies, welke policies actieve retentieregels hebben, welke workloads per policy zijn opgenomen en of naamgeving voldoet aan interne conventies. De gegenereerde output kan worden geëxporteerd naar CSV of JSON voor nadere analyse, of direct worden gebruikt als input voor dashboards en GRC-oplossingen. Belangrijk is dat de resultaten systematisch worden vastgelegd en gekoppeld aan bevindingen en verbeteracties, zodat de organisatie over meerdere jaren kan aantonen hoe data retention policies zijn geprofessionaliseerd.

Naast technische monitoring vraagt continue verbetering om expliciete betrokkenheid van governance-rollen. Bevindingen uit controles moeten worden besproken in overlegstructuren waar CISO, FG, informatiebeheerders, architecten en vertegenwoordigers van de business aan tafel zitten. Nieuwe wetgeving, zoals aanscherpingen van NIS2 of sectorale richtlijnen, kan aanleiding zijn om bewaartermijnen of policy-ontwerpen te herzien. Ook uit WOO-verzoeken, incidentonderzoeken of interne audits kunnen leerpunten voortkomen over de vindbaarheid en betrouwbaarheid van informatie. Door deze signalen te koppelen aan de periodieke scriptuitvoer, ontstaat een integrale feedbackloop: beleid beïnvloedt inrichting, inrichting wordt gemonitord, en monitoring voedt weer beleids- en ontwerpbeslissingen. Op die manier blijft de inrichting van data retention policies niet alleen compliant, maar sluit zij blijvend aan op de bestuurlijke en maatschappelijke verantwoordelijkheid van Nederlandse overheidsorganisaties.

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 Overzicht en kwaliteitscontrole van data retention policies in Microsoft 365 .DESCRIPTION Dit script geeft een gestructureerd overzicht van ingerichte data retention policies in Microsoft 365 en toetst in hoeverre de inrichting aansluit op ontwerpcriteria: duidelijke naamgeving, aanwezigheid van retentieregels en dekking van kernwerkbelastingen. Het script hoort bij het artikel 'Data retention policies in Microsoft 365: bewaartermijnen en naleving' binnen de Nederlandse Baseline voor Veilige Cloud en ondersteunt CISO, FG, informatiebeheerders en technische beheerders bij periodieke kwaliteitscontroles. .NOTES Filename: data-retention-policies.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-26 Version: 1.0 Related JSON: content/m365/compliance/data-retention-policies.json Category: compliance Workload: m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\data-retention-policies.ps1 -Monitoring -DebugMode Voert een lokale debug-run uit zonder verbinding met Microsoft 365 en toont voorbeeldgegevens. .EXAMPLE .\data-retention-policies.ps1 -Monitoring -ExportPath '.\export\data-retention-policies.csv' Haalt live data retention policies op en exporteert een samenvatting naar CSV. .EXAMPLE .\data-retention-policies.ps1 -RemediationGuidance Toont richtlijnen en voorbeeldstappen om ontwerp en dekking van data retention policies te verbeteren. #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param( [Parameter(HelpMessage = "Voer een controle uit op de huidige data retention policies")] [switch]$Monitoring, [Parameter(HelpMessage = "Toon remediatie-richtlijnen en voorbeeldstappen voor verbeterd ontwerp")] [switch]$RemediationGuidance, [Parameter(HelpMessage = "Exporteer de resultaten naar een CSV-bestand")] [string]$ExportPath, [Parameter(HelpMessage = "Toon welke acties u zou nemen zonder wijzigingen in de tenant")] [switch]$WhatIf, [Parameter(HelpMessage = "Voer een veilige lokale test uit zonder verbinding met Microsoft 365")] [switch]$DebugMode ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Data Retention Policies – Overzicht & kwaliteit" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan $script:ExpectedCoreWorkloads = @( "Exchange", "SharePoint", "OneDrive", "ModernGroups" ) function Connect-ComplianceService { <# .SYNOPSIS Maakt verbinding met Microsoft Purview (Security & Compliance). .DESCRIPTION Gebruikt Connect-IPPSSession uit de ExchangeOnlineManagement-module. #> [CmdletBinding()] param() Write-Host "Verbinding maken met Microsoft Purview (Security & Compliance)..." -ForegroundColor Gray Connect-IPPSSession -ShowBanner:$false -ErrorAction Stop | Out-Null } function Get-DataRetentionPolicyOverview { <# .SYNOPSIS Haalt data retention policies en bijbehorende regels op. .DESCRIPTION Combineert RetentionCompliancePolicy en RetentionComplianceRule tot een overzicht met dekking per workload, retentieduur en ontwerpkwaliteitsindicatoren. .OUTPUTS PSCustomObject per policy. #> [CmdletBinding()] param() $policies = Get-RetentionCompliancePolicy -ErrorAction Stop $rules = Get-RetentionComplianceRule -ErrorAction SilentlyContinue foreach ($policy in $policies) { $policyRules = $rules | Where-Object { $_.Policy -eq $policy.Name } $hasExchange = $policy.ExchangeLocation -and $policy.ExchangeLocation.Count -gt 0 $hasSharePoint = $policy.SharePointLocation -and $policy.SharePointLocation.Count -gt 0 $hasOneDrive = $policy.OneDriveLocation -and $policy.OneDriveLocation.Count -gt 0 $hasModernGroups = $policy.ModernGroupLocation -and $policy.ModernGroupLocation.Count -gt 0 $maxRetentionDays = 0 $hasRetentionRule = $false foreach ($rule in $policyRules) { if ($rule.RetentionDuration) { $hasRetentionRule = $true $days = [int]$rule.RetentionDuration if ($days -gt $maxRetentionDays) { $maxRetentionDays = $days } } } $hasClearName = $policy.Name -match "retention|bewaar|archief|records" [PSCustomObject]@{ Name = $policy.Name Enabled = $policy.Enabled Mode = $policy.Mode HasExchange = $hasExchange HasSharePoint = $hasSharePoint HasOneDrive = $hasOneDrive HasModernGroups = $hasModernGroups HasRetentionRule = $hasRetentionRule MaxRetentionDays = $maxRetentionDays HasClearName = $hasClearName } } } function Invoke-DataRetentionReview { <# .SYNOPSIS Voert de monitoring uit op data retention policies. .OUTPUTS PSCustomObject met samenvatting en details. #> [CmdletBinding()] param() $result = [PSCustomObject]@{ ScriptName = "data-retention-policies.ps1" Timestamp = Get-Date TotalPolicies = 0 EnabledPolicies = 0 Policies = @() Findings = @() } try { if ($DebugMode) { Write-Host "DebugMode ingeschakeld: er wordt geen verbinding gemaakt met Microsoft 365." -ForegroundColor Yellow Write-Host "Voorbeeldgegevens worden gebruikt om logica en rapportage te testen.`n" -ForegroundColor Yellow $sample = [PSCustomObject]@{ Name = "NBVC M365 – Algemene communicatie – 7 jaar retentie" Enabled = $true Mode = "Enforce" HasExchange = $true HasSharePoint = $true HasOneDrive = $true HasModernGroups = $true HasRetentionRule = $true MaxRetentionDays = 2555 HasClearName = $true } $result.TotalPolicies = 1 $result.EnabledPolicies = 1 $result.Policies = @($sample) } else { Connect-ComplianceService Write-Host "Ophalen van data retention policies en regels..." -ForegroundColor Gray $overview = Get-DataRetentionPolicyOverview if (-not $overview) { $result.Findings += "Er zijn geen data retention policies gevonden in Microsoft Purview." } else { $result.TotalPolicies = ($overview | Measure-Object).Count $result.EnabledPolicies = ($overview | Where-Object { $_.Enabled }).Count $result.Policies = $overview $noRetention = $overview | Where-Object { -not $_.HasRetentionRule } if ($noRetention) { $count = ($noRetention | Measure-Object).Count $result.Findings += "$count policies hebben geen retentieregel (RetentionDuration) geconfigureerd." } $noCoverage = $overview | Where-Object { -not $_.HasExchange -or -not $_.HasSharePoint -or -not $_.HasOneDrive -or -not $_.HasModernGroups } if ($noCoverage) { $count = ($noCoverage | Measure-Object).Count $result.Findings += "$count policies dekken niet alle kernwerkbelastingen (Exchange/SharePoint/OneDrive/Groups)." } $unclearNames = $overview | Where-Object { -not $_.HasClearName } if ($unclearNames) { $count = ($unclearNames | Measure-Object).Count $result.Findings += "$count policies hebben geen duidelijke naamgeving waarin retentie of bewaartermijn herkenbaar is." } } } if ($ExportPath) { $directory = Split-Path -Path $ExportPath -Parent if ($directory -and -not (Test-Path -Path $directory)) { if ($WhatIf) { Write-Host "WhatIf: map '$directory' zou worden aangemaakt voor export, maar er zijn geen wijzigingen uitgevoerd." -ForegroundColor Yellow } else { New-Item -Path $directory -ItemType Directory -Force | Out-Null } } if ($WhatIf) { Write-Host "WhatIf: resultaten zouden worden geëxporteerd naar '$ExportPath'." -ForegroundColor Yellow } else { $result.Policies | Export-Csv -Path $ExportPath -NoTypeInformation -Encoding UTF8 Write-Host "`nResultaten zijn geëxporteerd naar: $ExportPath" -ForegroundColor Green } } Write-Host "`nSamenvatting data retention policies:" -ForegroundColor Cyan Write-Host (" Totaal aantal policies : {0}" -f $result.TotalPolicies) -ForegroundColor White Write-Host (" Actieve policies : {0}" -f $result.EnabledPolicies) -ForegroundColor White if ($result.Findings.Count -gt 0) { Write-Host "`nBelangrijkste bevindingen:" -ForegroundColor Yellow foreach ($finding in $result.Findings) { Write-Host (" - {0}" -f $finding) -ForegroundColor Yellow } } else { Write-Host "`nEr zijn geen directe kwaliteitsissues in de basiscontrole gevonden." -ForegroundColor Green } return $result } catch { Write-Host "`n[FAIL] Fout tijdens controle van data retention policies: $_" -ForegroundColor Red throw } } function Show-RemediationGuidance { <# .SYNOPSIS Geeft richtlijnen voor verbetering van ontwerp en governance van data retention policies. .DESCRIPTION Voert zelf geen wijzigingen door, maar beschrijft concrete stappen en voorbeeldcmdlets. #> [CmdletBinding()] param() Write-Host "`nRemediatie-richtlijnen voor data retention policies:" -ForegroundColor Cyan Write-Host "`n1. Governance en documentatie" -ForegroundColor White Write-Host " - Leg formeel vast welke data retention policies de technische vertaling zijn van specifieke onderdelen van het bewaarschema." -ForegroundColor Gray Write-Host " - Documenteer welke rollen (CISO, FG, informatiebeheer, juristen) betrokken zijn bij ontwerp en wijziging van policies." -ForegroundColor Gray Write-Host "`n2. Naamgeving en categorieën" -ForegroundColor White Write-Host " - Gebruik consistente, beschrijvende namen zoals 'NBVC M365 – Algemeen zakelijk – 7 jaar'." -ForegroundColor Gray Write-Host " - Zorg dat bewaartermijn en doelgroep in de naam herkenbaar zijn." -ForegroundColor Gray Write-Host "`n3. Dekking van workloads" -ForegroundColor White Write-Host " - Zorg dat ten minste één generieke policy Exchange, SharePoint, OneDrive en M365 Groups/Teams afdekt." -ForegroundColor Gray Write-Host " - Beperk uitzonderingen en leg deze formeel vast in beleid." -ForegroundColor Gray Write-Host "`n4. Voorbeeldcmdlets (aanpassen aan eigen beleid, bij voorkeur eerst in acceptatieomgeving)" -ForegroundColor White Write-Host " # Voorbeeld: controleer snel of een policy een retentieregel heeft" -ForegroundColor DarkGray Write-Host " Get-RetentionComplianceRule -Policy 'NBVC M365 – Algemeen zakelijk – 7 jaar' | Select-Object Name, RetentionDuration, RetentionComplianceAction" -ForegroundColor DarkGray Write-Host "" -ForegroundColor DarkGray Write-Host " # Voorbeeld: toon alle policies zonder duidelijke naamgeving" -ForegroundColor DarkGray Write-Host " Get-RetentionCompliancePolicy | Where-Object {`$_.Name -notmatch 'retention|bewaar|archief|records' } | Select-Object Name, Mode, Enabled" -ForegroundColor DarkGray if ($WhatIf) { Write-Host "`nWhatIf: er zijn geen wijzigingen uitgevoerd; gebruik deze voorbeelden alleen na interne afstemming en testen." -ForegroundColor Yellow } else { Write-Host "`nLET OP: dit script voert zelf geen configuratiewijzigingen uit. Alle aanpassingen dienen via gecontroleerde change-processen te verlopen." -ForegroundColor Yellow } } try { if ($Monitoring) { $overview = Invoke-DataRetentionReview } elseif ($RemediationGuidance) { Show-RemediationGuidance } else { Write-Host "Beschikbare parameters:" -ForegroundColor Yellow Write-Host " -Monitoring : Toon een overzicht en basiscontrole van data retention policies" -ForegroundColor Gray Write-Host " -RemediationGuidance: Toon richtlijnen en voorbeelden voor verbeterd ontwerp" -ForegroundColor Gray Write-Host " -ExportPath <pad> : Exporteer resultaten naar een CSV-bestand" -ForegroundColor Gray Write-Host " -DebugMode : Voer een veilige lokale test uit zonder verbinding met Microsoft 365" -ForegroundColor Gray Write-Host " -WhatIf : Toon alleen welke acties geadviseerd worden, zonder wijzigingen" -ForegroundColor Gray Write-Host "`nVoorbeeld: .\data-retention-policies.ps1 -Monitoring -DebugMode" -ForegroundColor Cyan } } catch { Write-Error "Scriptuitvoering is mislukt: $_" exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = gereserveerd voor toekomstige uitgebreide compliance-evaluaties # 2 = fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
High: Zonder expliciet ontworpen en beheerde data retention policies is het onmogelijk om bewaartermijnen structureel af te dwingen en aan toezichthouders aan te tonen hoe Archiefwet en AVG in Microsoft 365 worden nageleefd. De organisatie loopt dan verhoogd risico op datalekken, archiefrechtelijke tekortkomingen, sancties en reputatieschade.

Management Samenvatting

Vertaal het formele bewaarschema naar een beperkt aantal heldere data retention policies en retentielabels in Microsoft 365, implementeer deze per workload op een consistente manier en bewaak de kwaliteit met geautomatiseerde controles. Dit artikel en het script `data-retention-policies.ps1` geven Nederlandse overheidsorganisaties een praktisch kader om bewaartermijnen aantoonbaar en toekomstbestendig te beheren.