Overzicht Artikelen: Structuur, Governance En Gebruik Binnen De Nederlandse Baseline Voor Veilige Cloud

💼 Management Samenvatting

De artikelen-sectie van de Nederlandse Baseline voor Veilige Cloud vormt het centrale kennisplatform waarin architectuurprincipes, beveiligingsmaatregelen, governance-afspraken en praktische implementatievoorbeelden samenkomen. Dit indexartikel beschrijft hoe de artikelstructuur is opgezet, welke rollen hierbij betrokken zijn en hoe organisaties de content kunnen gebruiken als leidraad voor ontwerp, implementatie en beheer van veilige cloudomgevingen.

Aanbeveling
IMPLEMENT
Risico zonder
Medium
Risk Score
6/10
Implementatie
56u (tech: 16u)
Van toepassing op:
Azure
M365
Hybride omgevingen

Zonder duidelijke structuur en governance rond documentatie ontstaat versnippering: beleidsdocumenten zwerven rond in SharePoint-sites, implementatiehandleidingen zitten verstopt in projectmappen en lessons learned worden onvoldoende hergebruikt. Voor Nederlandse overheidsorganisaties, die moeten voldoen aan BIO, NIS2, AVG en sectorspecifieke richtlijnen, is dat problematisch. Toezichthouders en auditors verwachten een consistente, traceerbare set aan onderbouwende documenten die aantonen hoe beveiligings- en continuïteitsmaatregelen zijn ontworpen, geïmplementeerd en geborgd in de praktijk. Als artikelen ongecoördineerd ontstaan, zonder helder eigenaarschap, versiebeheer en koppeling aan onderliggende scripts en configuraties, wordt het vrijwel onmogelijk om aan te tonen dat de organisatie "in control" is. Deze indexpagina voor de artikelstructuur helpt om documentatie te positioneren als integraal onderdeel van governance, in plaats van als losse bijvangst van projecten.

PowerShell Modules Vereist
Primary API: Geen directe API-koppeling (focus op documentatie en governance)
Connection: N.v.t. – gebruik lokale exports uit CI/CD pipelines en documentbeheersystemen
Required Modules:

Implementatie

Dit indexartikel geeft een samenhangend overzicht van de artikelen binnen de Nederlandse Baseline voor Veilige Cloud en beschrijft hoe ze inhoudelijk en technisch met elkaar zijn verbonden. We gaan in op de opbouw van de mappenstructuur (zoals `artikelen/azure`, `artikelen/m365`, `artikelen/blogs`), de koppeling met JSON-content in de `content/`-folder en de bijbehorende PowerShell-scripts in de `code/`-folder. Daarnaast wordt uitgelegd hoe organisaties de artikelen praktisch kunnen inzetten: als referentiekader voor architectuur- en securitybeslissingen, als basis voor implementatieprojecten, als input voor opleidingen en als bron voor audit- en compliance-evidence. Het bijbehorende PowerShell-script ondersteunt beheerders, architecten en CISO-teams door een geautomatiseerd overzicht te genereren van beschikbare artikelen, hun status en de relatie met onderliggende scripts en frameworks, zodat documentatie actief kan worden gemanaged in plaats van reactief te worden bijgewerkt.

Structuur en taxonomie van de artikelenbibliotheek

De artikelenbibliotheek in de Nederlandse Baseline voor Veilige Cloud is bewust opgezet als een logisch gestructureerd landschap in plaats van een verzameling losse documenten. Bovenaan staan de hoofdthema's, zoals Azure, Microsoft 365, Intune, Edge en algemene governance- en continuïteitsonderwerpen. Binnen elk thema is de mappenstructuur van de website (`website/artikelen/...`) één-op-één verbonden met de JSON-content in de `content/`-folder en de bijhorende scripts in de `code/`-folder. Een pad als `website/artikelen/azure/management/disaster-recovery-testing.html` correspondeert bijvoorbeeld met een JSON-artikel onder `content/azure/management/disaster-recovery-testing.json` en een PowerShell-script onder `code/azure/management/disaster-recovery-testing.ps1`. Deze consistente taxonomie maakt het mogelijk om artikelen automatisch te indexeren, relaties tussen onderwerpen inzichtelijk te maken en tooling te bouwen die direct kan koppelen tussen beleidsuitleg, technische configuratie en monitoring- of remediatiescripts.

De structuur is erop gericht om verschillende doelgroepen binnen de overheid – van bestuurders en beleidsmakers tot security officers, solution architects en beheerders – een herkenbare ingang te bieden. Voor bestuurders zijn er overkoepelende artikelen die kaders, risico's en strategische keuzes beschrijven. Voor architecten en ontwerpteams zijn er verdiepende stukken die ingaan op referentiearchitecturen, ontwerpkeuzes en patronen zoals zero trust, data-classificatie of resiliente architecturen. Voor beheerders en operations-teams zijn er artikelen die nauw aansluiten op de daadwerkelijke inrichting in Azure, Microsoft 365 en Intune, inclusief verwijzingen naar bijbehorende PowerShell-scripts. Door deze lagen in één consistente taxonomie onder te brengen, wordt voorkomen dat ieder team zijn eigen "schaduwdocumentatie" bijhoudt en ontstaat één centrale waarheid voor ontwerp, implementatie en beheer.

Bij het ontwerpen van de taxonomie is rekening gehouden met de eisen van Nederlandse overheidsorganisaties. Artikelen zijn niet alleen geordend op technologie, maar ook op compliance-thema's zoals AVG, BIO, NIS2, Archiefwet en sectorale normen. Veel artikelen bevatten expliciete verwijzingen naar deze kaders, zodat direct zichtbaar is welke maatregelen bijdragen aan welke verplichtingen. De index van de artikelenbibliotheek fungeert daarom als een navigatiepunt waarmee security- en compliance-teams snel kunnen bepalen welke artikelen relevant zijn voor een specifieke auditvraag of beleidsdiscussie. Door gebruik te maken van een gestandaardiseerde naamgeving en consistente URL-structuur wordt het bovendien eenvoudig om artikelen op te nemen in andere systemen, zoals intranetportalen, opleidingsomgevingen of ticketing- en changeprocessen.

Governance, eigenaarschap en levenscyclusbeheer van artikelen

Een professionele kennisbibliotheek vraagt om duidelijk governance en eigenaarschap. Binnen de Nederlandse Baseline voor Veilige Cloud wordt elk artikel gezien als een onderdeel van de architectuur- en beveiligingsdocumentatie van de organisatie. Dat betekent dat er expliciet eigenaren zijn aangewezen: een inhoudelijk eigenaar (bijvoorbeeld een security architect, domeinarchitect of CISO-adviseur) en een technisch eigenaar die zorgt voor de koppeling met bijbehorende scripts en configuraties. Deze eigenaren zijn verantwoordelijk voor de juistheid, volledigheid en actualiteit van het artikel. Nieuwe artikelen ontstaan idealiter niet ad-hoc, maar worden toegevoegd op basis van een vraag vanuit architectuur-, security- of complianceoverleggen, of naar aanleiding van bevindingen uit audits, penetratietests of incidentanalyses. Door deze governance te formaliseren, bijvoorbeeld in een contentboard of architectuurforum, ontstaat een beheersbare en voorspelbare stroom van verbeteringen in plaats van ongecontroleerde documentgroei.

Het levenscyclusbeheer van artikelen sluit aan bij de lifecycle van de onderliggende cloudomgevingen. Wanneer een nieuw platform wordt ingevoerd, zoals Microsoft Copilot of een nieuwe Azure security-dienst, worden één of meerdere raamwerkartikelen toegevoegd die de kaders, architectuur en governance beschrijven. Zodra de implementatie vordert, volgen technischere artikelen met concrete configuratiestappen, scripts en monitoringinstructies. Wanneer technologie uit fase raakt of wordt vervangen, worden de bijbehorende artikelen gemarkeerd als verouderd, geactualiseerd of samengevoegd met opvolgende documentatie. Het is belangrijk dat deze lifecycle zichtbaar is voor lezers: via datumvelden, versie-informatie en duidelijke verwijzingen naar opvolgartikelen. Zo kunnen auditors en interne stakeholders beoordelen of zij de meest actuele informatie gebruiken bij beoordeling van maatregelen en risico's.

Om de kwaliteit van de artikelenbibliotheek op peil te houden, is periodieke review essentieel. Veel organisaties kiezen voor een jaarlijkse of halfjaarlijkse reviewcyclus waarin kritieke artikelen – bijvoorbeeld over identiteitsbeheer, toegangscontrole, logging, incident response en business continuity – expliciet op de agenda staan. Tijdens zo'n review wordt gecontroleerd of de inhoud nog klopt met de huidige stand van de techniek, of referenties naar regelgeving actueel zijn, of scripts nog correct functioneren en of de beschrijving van verantwoordelijkheden en processen aansluit bij de werkelijkheid. Het bijbehorende PowerShell-script ondersteunt dit door een actuele lijst van artikelen, laatste wijzigingsdatums en gekoppelde scripts te genereren. Hiermee kan eenvoudig worden vastgesteld welke artikelen prioriteit hebben voor review en waar mogelijk technische en inhoudelijke inconsistenties zijn ontstaan.

Gebruik van artikelen in projecten, beheer en audits

Artikelen binnen de Nederlandse Baseline voor Veilige Cloud zijn nadrukkelijk bedoeld als werkdocumenten die dagelijks worden gebruikt in projecten, beheerprocessen en audits, niet als statische naslagwerken die na publicatie in de la verdwijnen. In de ontwerpfase van nieuwe cloudoplossingen dienen de artikelen als referentie voor architectuurprincipes, security-by-design en privacy-by-design. Projectarchitecten en solution owners kunnen direct putten uit bestaande best practices, implementatiepatronen en risicoafwegingen, zodat zij niet telkens het wiel opnieuw hoeven uit te vinden. Tijdens de implementatiefase vormen de artikelen een leidraad voor concrete configuratiestappen in Azure, Microsoft 365 en Intune, inclusief verwijzingen naar scripts die controles uitvoeren, instellingen valideren of rapportages genereren. Dit zorgt voor een nauwe koppeling tussen theorie en praktijk en voorkomt dat er een kloof ontstaat tussen ontwerpen "op papier" en feitelijke inrichting.

In de beheerfase worden artikelen gebruikt als referentie voor standaard werkwijzen (runbooks), changevoorstellen en handleidingen voor nieuwe beheerders. Door in artikelen expliciet aan te geven welke scripts horen bij een bepaalde maatregel, kunnen beheerteams snel zien welke tooling beschikbaar is om configuraties te controleren, afwijkingen te detecteren of geautomatiseerde remediatie voor te bereiden. Veel organisaties kiezen ervoor om links naar deze artikelen en scripts op te nemen in hun IT-servicemanagementtooling, zodat bijvoorbeeld bij het behandelen van een change-aanvraag of incident direct relevante kennis beschikbaar is. Dit vergroot de consistentie van beslissingen en verkort de doorlooptijd van wijzigingen en incidentafhandeling.

Tijdens audits en toezichtonderzoeken spelen de artikelen een sleutelrol in de onderbouwing van maatregelen. Auditors willen niet alleen configuratie-exporten of screenshots zien, maar ook begrijpen waarom bepaalde keuzes zijn gemaakt, welke alternatieven zijn overwogen en hoe de organisatie borgt dat maatregelen structureel worden onderhouden. Door in de artikelen expliciet te verwijzen naar relevante normen (BIO, ISO 27001, NIS2, AVG) en de bijbehorende PowerShell-scripts te gebruiken om up-to-date rapportages te genereren, ontstaat een samenhangend en reproduceerbaar verhaal. De artikelen vormen de narratieve laag die uitlegt wat de organisatie doet en waarom, terwijl de scripts de feitelijke configuratie en monitoring onderbouwen. Samen bieden ze een compleet auditspoor dat inzichtelijk maakt hoe de Nederlandse Baseline voor Veilige Cloud in de praktijk is toegepast.

Monitoring van artikeldekking en inhoudelijke actualiteit

Gebruik PowerShell-script artikelen-index.ps1 (functie Invoke-Monitoring) – Inventariseert beschikbare artikelen, gekoppelde JSON- en PS1-bestanden en signaleert mogelijke hiaten in dekking of actualiteit..

Om de artikelenbibliotheek als levend kennisplatform te kunnen beheren, is het nodig om periodiek inzicht te krijgen in de feitelijke dekking en actualiteit van de content. Idealiter kunnen CISO-teams, architecten en contentboards in één oogopslag zien welke onderwerpen goed zijn uitgewerkt, waar nog geen artikelen of scripts bestaan en welke onderdelen een review nodig hebben op basis van leeftijd of gewijzigde wet- en regelgeving. Het bij deze indexpagina behorende PowerShell-script leest de mappenstructuur van `content/` en `code/`, koppelt artikelen aan scripts op basis van naamgeving en genereert een overzicht met per onderwerp de aanwezigheid van JSON- en PS1-bestanden, de laatste wijzigingsdatum en optioneel een eenvoudige risicocategorisatie. Hiermee ontstaat een datagedreven onderbouwing voor contentbeheer in plaats van ad-hoc inschattingen.

De output van het script kan worden gebruikt om dashboards te voeden, bijvoorbeeld in Power BI of een intranetportal, waarin de volwassenheid van de artikelenbibliotheek wordt gevolgd. Denk aan indicatoren zoals het percentage artikelen met een gekoppeld script, het aantal artikelen dat ouder is dan een jaar, of het aantal onderwerpen binnen een bepaald domein (zoals identity, logging of business continuity) dat nog geen uitgeschreven artikel heeft. Deze indicatoren kunnen vervolgens worden gekoppeld aan verbeterinitiatieven en roadmaps: prioriteer bijvoorbeeld eerst de uitwerking van artikelen voor kritieke securitymaatregelen of wetgevingsdomeinen voordat minder urgente onderwerpen worden opgepakt. Door monitoring en reporting op deze manier te structureren, wordt contentbeheer onderdeel van de reguliere planning- en controlcyclus in plaats van een incidentele opschoningsactie.

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 Monitoring van dekking en actualiteit van artikelen binnen de Nederlandse Baseline voor Veilige Cloud. .DESCRIPTION Dit script inventariseert JSON-artikelen in de `content/`-folder en bijbehorende PowerShell-scripts in de `code/`-folder. Het doel is om CISO-teams, architecten en documentatie-eigenaren inzicht te geven in: - welke onderwerpen een JSON-artikel hebben; - of er een corresponderend PowerShell-script bestaat; - wanneer de JSON-bestanden voor het laatst zijn gewijzigd; - eenvoudige signalen voor mogelijke gaten in dekking of verouderde content. Het script voert GEEN wijzigingen uit in Azure, Microsoft 365 of andere omgevingen en gebruikt geen externe modules. Alle analyse gebeurt op basis van lokale bestanden in het project. .NOTES Filename: artikelen-index.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-27 Last Modified: 2025-11-27 Version: 1.0 Related JSON: content/general/artikelen-index.json .LINK https://github.com/microsoft/m365-tenant-best-practise .EXAMPLE .\artikelen-index.ps1 Voert een standaardinventarisatie uit van JSON-artikelen en gekoppelde scripts en toont een samenvatting in de console. .EXAMPLE .\artikelen-index.ps1 -OutputPath '.\rapporten\artikelen-overzicht.csv' Slaat het volledige overzicht op als CSV-bestand voor verdere analyse in bijvoorbeeld Excel of Power BI. .EXAMPLE .\artikelen-index.ps1 -RootPath 'D:\Github\m365-tenant-best-practise' -OutputPath '.\artikelen.json' Voert de analyse uit vanaf een expliciet opgegeven rootpad en exporteert de resultaten als JSON. #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter(Mandatory = $false)] [string]$RootPath = (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)), [Parameter(Mandatory = $false)] [string]$OutputPath, [Parameter(Mandatory = $false)] [switch]$WhatIf ) # ============================================================================ # VARIABLES # ============================================================================ $ErrorActionPreference = 'Stop' $VerbosePreference = 'SilentlyContinue' if ([string]::IsNullOrWhiteSpace($RootPath)) { $RootPath = (Get-Location).Path } $contentRoot = Join-Path -Path $RootPath -ChildPath 'content' $codeRoot = Join-Path -Path $RootPath -ChildPath 'code' # ============================================================================ # FUNCTIONS # ============================================================================ function Test-RepositoryLayout { <# .SYNOPSIS Controleert of de verwachte mapstructuur aanwezig is. .OUTPUTS [bool] #> [CmdletBinding()] param() Write-Verbose "Controle van repositorystructuur..." if (-not (Test-Path -Path $contentRoot -PathType Container)) { Write-Warning "De map '$contentRoot' bestaat niet. Controleer of het RootPath correct is ingesteld." return $false } if (-not (Test-Path -Path $codeRoot -PathType Container)) { Write-Warning "De map '$codeRoot' bestaat niet. Controleer of het RootPath correct is ingesteld." return $false } return $true } function Get-ArticleInventory { <# .SYNOPSIS Bouwt een inventaris op van JSON-artikelen en gekoppelde PowerShell-scripts. .OUTPUTS PSCustomObject[] #> [CmdletBinding()] param() Write-Verbose "Zoeken naar JSON-artikelen onder '$contentRoot'..." $jsonFiles = Get-ChildItem -Path $contentRoot -Recurse -Filter '*.json' -File -ErrorAction Stop $results = @() foreach ($json in $jsonFiles) { # Bepaal relatieve paden t.o.v. content- en code-root $relativeJsonPath = $json.FullName.Substring($contentRoot.Length).TrimStart('\','/') # De conventie is dat bestandsnamen in code/ overeenkomen met de JSON-naam (maar zonder mappen als die niet bestaan) $jsonName = [System.IO.Path]::GetFileNameWithoutExtension($json.Name) $jsonDirectory = Split-Path -Path $relativeJsonPath -Parent # Probeer eerst een script in een overeenkomstige mappenstructuur te vinden if ([string]::IsNullOrWhiteSpace($jsonDirectory)) { $expectedScriptPath = Join-Path -Path $codeRoot -ChildPath ("$jsonName.ps1") } else { $expectedScriptPath = Join-Path -Path $codeRoot -ChildPath (Join-Path -Path $jsonDirectory -ChildPath ("$jsonName.ps1")) } $scriptExists = $false $relativePsPath = $null if (Test-Path -Path $expectedScriptPath -PathType Leaf) { $scriptExists = $true $relativePsPath = $expectedScriptPath.Substring($RootPath.Length).TrimStart('\','/') } else { # Als er geen exact overeenkomende structuur is, zoek dan naar een script met dezelfde naam elders $fallback = Get-ChildItem -Path $codeRoot -Recurse -Filter "$jsonName.ps1" -File -ErrorAction SilentlyContinue | Select-Object -First 1 if ($fallback) { $scriptExists = $true $relativePsPath = $fallback.FullName.Substring($RootPath.Length).TrimStart('\','/') } } $results += [PSCustomObject]@{ JsonRelativePath = "content/$relativeJsonPath".Replace('\','/') ScriptRelativePath = $relativePsPath ScriptExists = $scriptExists LastWriteTime = $json.LastWriteTimeUtc } } return $results } function Invoke-Monitoring { <# .SYNOPSIS Voert de artikeleninventarisatie uit en toont een samenvatting. .OUTPUTS PSCustomObject #> [CmdletBinding()] param() if (-not (Test-RepositoryLayout)) { throw "De verwachte mapstructuur kon niet worden gevalideerd. Stop met verdere verwerking." } $inventory = Get-ArticleInventory $totalArticles = $inventory.Count $withScript = ($inventory | Where-Object { $_.ScriptExists }).Count $withoutScript = $totalArticles - $withScript $olderThanOneYear = ($inventory | Where-Object { $_.LastWriteTime -lt (Get-Date).ToUniversalTime().AddYears(-1) }).Count Write-Host "Artikeleninventarisatie voor Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "RootPath: $RootPath" -ForegroundColor Gray Write-Host "Totaal aantal JSON-artikelen : $totalArticles" -ForegroundColor Gray Write-Host "Met gekoppeld script : $withScript" -ForegroundColor Gray Write-Host "Zonder gekoppeld script : $withoutScript" -ForegroundColor Gray Write-Host "JSON ouder dan 1 jaar : $olderThanOneYear" -ForegroundColor Gray if ($OutputPath) { if ($WhatIf) { Write-Host "[WhatIf] Resultaten zouden worden weggeschreven naar: $OutputPath" -ForegroundColor Yellow } else { $outputDir = Split-Path -Path $OutputPath -Parent if ($outputDir -and -not (Test-Path -Path $outputDir)) { New-Item -Path $outputDir -ItemType Directory -Force | Out-Null } if ($OutputPath.ToLower().EndsWith('.csv')) { $inventory | Sort-Object JsonRelativePath | Export-Csv -Path $OutputPath -NoTypeInformation -Encoding UTF8 } elseif ($OutputPath.ToLower().EndsWith('.json')) { $inventory | Sort-Object JsonRelativePath | ConvertTo-Json -Depth 6 | Out-File -FilePath $OutputPath -Encoding UTF8 } else { # Standaard naar CSV als extensie ontbreekt of onbekend is $csvPath = [System.IO.Path]::ChangeExtension($OutputPath, '.csv') $inventory | Sort-Object JsonRelativePath | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8 Write-Host "Geen bekende extensie gedetecteerd. Resultaten zijn opgeslagen als CSV: $csvPath" -ForegroundColor Yellow } Write-Host "Inventarisatieresultaten opgeslagen in: $OutputPath" -ForegroundColor Cyan } } $summary = [PSCustomObject]@{ ScriptName = "artikelen-index.ps1" IsCompliant = $withoutScript -eq 0 Timestamp = Get-Date TotalArticles = $totalArticles WithScript = $withScript WithoutScript = $withoutScript OlderThanOneYear = $olderThanOneYear Recommendations = @( if ($withoutScript -gt 0) { "Er zijn $withoutScript artikelen zonder gekoppeld PowerShell-script. Overweeg voor deze onderwerpen scripts te ontwikkelen of de koppeling te herstellen." } if ($olderThanOneYear -gt 0) { "Er zijn $olderThanOneYear artikelen waarvan de JSON ouder is dan één jaar. Plan een inhoudelijke review in lijn met de governance-afspraken." } if ($withoutScript -eq 0 -and $olderThanOneYear -eq 0) { "Alle artikelen hebben een gekoppeld script en zijn recent bijgewerkt. Behoud de huidige governance- en reviewaanpak." } ) } return $summary } # Alias-functie voor compatibiliteit met de JSON-referentie, indien gewenst function Invoke-CopilotMaturityOverview { [CmdletBinding()] param() return Invoke-Monitoring } # ============================================================================ # MAIN EXECUTION # ============================================================================ try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Script: artikelen-index.ps1" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan $result = Invoke-Monitoring Write-Verbose ("Resultaat: " + ($result | ConvertTo-Json -Depth 4)) if (-not $result.IsCompliant) { Write-Host "`nWaarschuwing: Er zijn aandachtspunten gedetecteerd in de artikelenbibliotheek." -ForegroundColor Yellow } } catch { Write-Host "`n[FAIL] ERROR: $_" -ForegroundColor Red Write-Host "Details: $($_.Exception.Message)" -ForegroundColor Red exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Medium: Wanneer er geen gestructureerde artikelenbibliotheek en bijbehorende governance wordt ingericht, blijft kennis over cloudbeveiliging, architectuur en compliance versnipperd en impliciet. Dit maakt het lastig om richting bestuurders, auditors en toezichthouders aan te tonen hoe maatregelen zijn ontworpen en geborgd, vergroot de kans op inconsistenties tussen beleid en praktijk en belemmert hergebruik van eerder opgedane kennis.

Management Samenvatting

Richt de artikelenbibliotheek van de Nederlandse Baseline voor Veilige Cloud in als een beheerd kennisplatform met duidelijke structuur, eigenaarschap en tooling. Gebruik het bijbehorende script om de dekking en actualiteit van artikelen en scripts te monitoren, zodat kennis, governance en technische implementatie aantoonbaar met elkaar in balans blijven.