Multi-Framework Compliance In Azure

💼 Management Samenvatting

Nederlandse overheidsorganisaties moeten voldoen aan meerdere normenkaders tegelijkertijd: de Baseline Informatiebeveiliging Overheid (BIO), de Algemene Verordening Gegevensbescherming (AVG), de NIS2-richtlijn, ISO 27001 en vaak ook sectorspecifieke eisen. Multi-framework compliance in Azure betekent dat deze verschillende normenkaders geïntegreerd worden beheerd, gemonitord en gerapporteerd binnen één samenhangend raamwerk. Dit artikel beschrijft hoe organisaties een volwassen multi-framework compliance-aanpak kunnen realiseren in Azure, waarbij overlap tussen frameworks wordt benut, tegenstrijdigheden worden opgelost en efficiëntie wordt gerealiseerd zonder dat de naleving van individuele frameworks in het gedrang komt.

Aanbeveling
IMPLEMENTEER EEN GEÏNTEGREERD MULTI-FRAMEWORK COMPLIANCE-RAAMWERK IN AZURE
Risico zonder
High
Risk Score
9/10
Implementatie
140u (tech: 80u)
Van toepassing op:
Azure Tenant

Veel organisaties benaderen compliance per framework als losstaande silo's: er is een BIO-audit, een AVG-audit, een ISO 27001-certificering en een NIS2-implementatie, elk met eigen documentatie, controles en rapportages. Deze gefragmenteerde aanpak leidt tot inefficiëntie, tegenstrijdigheden en het risico dat belangrijke eisen tussen wal en schip vallen. Bovendien ontstaat er onduidelijkheid over wie verantwoordelijk is voor welke maatregelen, hoe verschillende frameworks zich tot elkaar verhouden en waar overlap of synergie mogelijk is. In een Azure-omgeving, waar resources en configuraties continu veranderen, is het praktisch onmogelijk om handmatig per framework te controleren of alles nog compliant is. Zonder een geïntegreerde multi-framework aanpak ontstaat het risico dat organisaties voldoen aan het ene framework maar tekortschieten in het andere, of dat ze dubbel werk verrichten door dezelfde maatregel meerdere keren te implementeren of te controleren. Voor Nederlandse publieke organisaties, die onder streng toezicht staan en transparant moeten zijn over hun compliance-status, is een volwassen multi-framework aanpak essentieel.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.Resources, Az.PolicyInsights, Az.Security

Implementatie

Dit artikel beschrijft hoe een multi-framework compliance-raamwerk wordt opgezet in Azure, gebaseerd op het identificeren van overlap en verschillen tussen normenkaders, het creëren van een geïntegreerde mapping tussen frameworks en Azure Policies, en het inrichten van geautomatiseerde monitoring en rapportage die per framework én geïntegreerd inzicht geeft. We gaan in op het opzetten van een compliance-matrix die laat zien welke Azure-configuraties bijdragen aan welke eisen uit welke frameworks, het gebruik van Azure Policy initiatieven die meerdere frameworks tegelijk adresseren, en het inrichten van dashboards en rapportages die zowel framework-specifieke als geïntegreerde compliance-status tonen. Daarnaast behandelen we governance-aspecten: wie is verantwoordelijk voor multi-framework compliance, hoe worden tegenstrijdigheden tussen frameworks opgelost, en hoe wordt geborgd dat nieuwe Azure-resources automatisch worden beoordeeld tegen alle relevante frameworks. Het artikel sluit af met praktische richtlijnen voor het opzetten van een multi-framework compliance-programma dat schaalbaar is, onderhoudbaar blijft en aantoonbaar bijdraagt aan de naleving van alle relevante normenkaders.

Mapping en Integratie van Normenkaders in Azure

De eerste stap naar multi-framework compliance in Azure is het maken van een expliciete mapping tussen de eisen uit verschillende normenkaders en concrete Azure-configuraties en -maatregelen. Dit begint met het inventariseren van alle relevante frameworks: voor Nederlandse overheidsorganisaties zijn dit typisch de BIO (Baseline Informatiebeveiliging Overheid), AVG (Algemene Verordening Gegevensbescherming), NIS2 (Network and Information Systems Directive 2), ISO 27001 en mogelijk sectorspecifieke normen zoals de NEN 7510 voor de zorg of specifieke eisen voor het veiligheidsdomein. Vervolgens wordt per framework geanalyseerd welke eisen relevant zijn voor de Azure-omgeving: niet alle BIO-maatregelen hebben bijvoorbeeld een directe Azure-component, en niet alle AVG-artikelen zijn technisch van aard. De focus ligt op die eisen die kunnen worden geadresseerd, gecontroleerd en gerapporteerd via Azure-services, policies en configuraties. Een cruciale volgende stap is het identificeren van overlap tussen frameworks. Veel beveiligingsmaatregelen dragen bij aan meerdere normenkaders tegelijk: encryptie van data in rust bijvoorbeeld is relevant voor BIO-maatregel 08.02.01 (cryptografie), AVG Artikel 32 (beveiliging van verwerking), ISO 27001 A.10.1.1 (cryptographic controls) en NIS2 Artikel 10 (beveiligingsmaatregelen). Door deze overlap expliciet te maken in een compliance-matrix ontstaat inzicht in welke Azure-configuraties het meeste rendement opleveren en waar synergie mogelijk is. Tegelijkertijd moeten verschillen en tegenstrijdigheden tussen frameworks worden geïdentificeerd: sommige frameworks stellen bijvoorbeeld strengere eisen aan logging dan andere, of hebben verschillende definities van wat als 'persoonsgegevens' wordt beschouwd. Deze verschillen moeten worden opgelost door te kiezen voor de strengste eis of door expliciet vast te leggen waar en waarom van een framework-specifieke eis wordt afgeweken. De mapping wordt vervolgens vertaald naar concrete Azure Policies en initiatieven. In plaats van per framework een aparte set policies te maken, worden policies ontworpen die meerdere frameworks tegelijk adresseren. Een policy die afdwingt dat alle storage accounts versleuteld zijn met customer-managed keys kan bijvoorbeeld worden gemapped naar BIO 08.02.01, AVG Artikel 32, ISO 27001 A.10.1.1 en NIS2 Artikel 10. Door deze mapping vast te leggen in de policy-definitie zelf (bijvoorbeeld via metadata-tags of in de beschrijving) ontstaat traceerbaarheid: bij een audit kan direct worden aangetoond welke Azure-configuratie bijdraagt aan welke eis uit welk framework. Deze aanpak voorkomt dat dezelfde maatregel meerdere keren wordt geïmplementeerd of gecontroleerd, en maakt het mogelijk om efficiënt te werken terwijl alle frameworks worden nageleefd. De mapping wordt tenslotte geïntegreerd in de governance-structuur van de organisatie. Dit betekent dat een centrale compliance-matrix wordt beheerd (bijvoorbeeld in een GRC-platform, SharePoint of een gespecialiseerde tool) die periodiek wordt bijgewerkt wanneer frameworks wijzigen, nieuwe Azure-services beschikbaar komen of de organisatie nieuwe normenkaders moet naleven. Deze matrix vormt de basis voor alle compliance-activiteiten: policy-development, monitoring, rapportage en audit. Door de mapping expliciet en centraal te beheren, ontstaat een single source of truth die voorkomt dat verschillende teams of afdelingen verschillende interpretaties hebben van wat nodig is om compliant te zijn.

Azure Policy voor Multi-Framework Compliance

Azure Policy vormt de technische kern van multi-framework compliance in Azure. In plaats van per framework aparte policy-initiatieven te maken, worden policies en initiatieven ontworpen die meerdere frameworks tegelijk adresseren. Dit begint met het analyseren van welke Azure Policy built-in definitions al beschikbaar zijn en hoe deze kunnen worden gemapped naar de relevante normenkaders. Microsoft biedt bijvoorbeeld initiatieven zoals 'Azure Security Benchmark' die honderden controlepunten bevatten die overlappen met ISO 27001, NIST en andere internationale standaarden. Voor Nederlandse overheidsorganisaties is het belangrijk om deze initiatieven te gebruiken als basis, maar ze aan te vullen met custom policies die specifiek zijn voor BIO, AVG en NIS2-eisen die niet standaard in de Azure Security Benchmark zitten. Een effectieve aanpak is het opzetten van een hiërarchische policy-structuur waarbij generieke, multi-framework policies op het hoogste management group-niveau worden toegewezen, en framework-specifieke aanvullingen op lagere niveaus. Bijvoorbeeld: een basis-initiatief 'Multi-Framework Basisbeveiliging' bevat policies die relevant zijn voor alle frameworks (zoals encryptie, logging, netwerkbeveiliging) en wordt toegewezen aan alle subscriptions. Vervolgens worden aanvullende initiatieven toegevoegd per framework of per risicodomein: een 'AVG Data Protection'-initiatief voor omgevingen met persoonsgegevens, een 'NIS2 Critical Infrastructure'-initiatief voor essentiële diensten, of een 'BIO Classificatie Hoog'-initiatief voor omgevingen met hoogwaardige informatie. Deze gelaagde aanpak voorkomt dat policies worden gedupliceerd en maakt het mogelijk om per omgeving de juiste combinatie van frameworks toe te passen. Belangrijk is dat policies worden voorzien van metadata die de mapping naar frameworks expliciet maakt. Dit kan via tags in de policy-definitie, via een centrale compliance-matrix die policies koppelt aan framework-eisen, of via naming conventions die duidelijk maken welke policies bijdragen aan welke frameworks. Bijvoorbeeld: een policy met de naam 'BIO-AVG-ISO-Encryption-Storage' maakt direct duidelijk dat deze policy relevant is voor meerdere frameworks. Deze metadata wordt vervolgens gebruikt voor rapportage: wanneer een policy-evaluatie laat zien dat een resource niet-compliant is, kan direct worden bepaald welke framework-eisen mogelijk niet worden nageleefd. Dit maakt het mogelijk om framework-specifieke rapportages te genereren zonder dat aparte policy-evaluaties nodig zijn. Een volwassen multi-framework policy-aanpak houdt ook rekening met remediatie. Wanneer een resource niet-compliant is met een policy die meerdere frameworks adresseert, moet de remediatie-actie bijdragen aan de naleving van alle relevante frameworks. Dit betekent dat remediatie-scripts en -procedures expliciet moeten aangeven welke frameworks worden geadresseerd, en dat bij het oplossen van een compliance-issue wordt geverifieerd dat alle frameworks weer compliant zijn. Azure Policy biedt hiervoor deployIfNotExists-effecten die automatisch resources kunnen configureren, maar deze moeten worden ontworpen met multi-framework compliance in gedachten: de configuratie moet voldoen aan de strengste eis uit alle relevante frameworks.

Monitoring en Rapportage voor Multi-Framework Compliance

Gebruik PowerShell-script multi-framework-compliance.ps1 (functie Invoke-Monitoring) – Voert een multi-framework compliance-check uit en rapporteert per framework en geïntegreerd.

Monitoring van multi-framework compliance in Azure vereist een aanpak die zowel framework-specifieke als geïntegreerde inzichten biedt. Dit begint met het verzamelen van compliance-data uit verschillende bronnen: Azure Policy-evaluaties, Microsoft Defender for Cloud-aanbevelingen, resource-configuraties en eventuele externe compliance-tools. Deze data wordt vervolgens geaggregeerd en gemapped naar de relevante frameworks, zodat per framework kan worden bepaald wat de compliance-status is. Belangrijk is dat deze mapping automatisch gebeurt op basis van de compliance-matrix, zodat handmatige interpretatie wordt voorkomen en consistentie wordt geborgd. Azure Monitor en Log Analytics vormen de basis voor compliance-rapportage. Door policy-evaluaties, Defender-aanbevelingen en resource-metadata te loggen naar een centrale Log Analytics-workspace, ontstaat een databron die kan worden gebruikt voor dashboards, alerts en gedetailleerde rapportages. Azure Monitor workbooks maken het mogelijk om visuele dashboards te creëren die per framework de compliance-status tonen: bijvoorbeeld een dashboard dat laat zien hoeveel procent van de BIO-maatregelen is nageleefd, hoeveel AVG-artikelen volledig zijn geïmplementeerd, of wat de status is van NIS2-vereisten. Deze dashboards kunnen worden gedeeld met verschillende stakeholders: bestuur wil bijvoorbeeld een geïntegreerd overzicht zien, terwijl compliance-officers framework-specifieke details nodig hebben. Een volwassen monitoringaanpak gaat verder dan alleen het meten van de huidige status. Trendanalyse laat zien of de compliance-status verbetert of verslechtert over tijd, en welke frameworks of domeinen de meeste aandacht nodig hebben. Benchmarking maakt het mogelijk om de eigen compliance-status te vergelijken met sectorale gemiddelden of best practices, wat helpt bij het prioriteren van verbeteracties. Predictive analytics kan worden gebruikt om te voorspellen waar compliance-issues waarschijnlijk zullen ontstaan, bijvoorbeeld op basis van historische data over welke resources of configuraties het vaakst niet-compliant zijn. Rapportage voor multi-framework compliance moet voldoen aan de eisen van verschillende stakeholders. Bestuur en directie hebben behoefte aan executive summaries die in één oogopslag laten zien wat de status is van alle relevante frameworks en waar de grootste risico's zitten. Compliance-officers en auditors hebben behoefte aan gedetailleerde rapportages per framework die precies laten zien welke eisen wel of niet zijn nageleefd, welke resources niet-compliant zijn en welke acties nodig zijn om volledige compliance te bereiken. IT-teams hebben behoefte aan operationele rapportages die duidelijk maken welke configuraties moeten worden aangepast en welke policies moeten worden toegepast. Door deze verschillende rapportages te genereren vanuit dezelfde databron, wordt consistentie geborgd en wordt voorkomen dat verschillende stakeholders verschillende beelden hebben van de compliance-status.

Governance en Continue Verbetering van Multi-Framework Compliance

Gebruik PowerShell-script multi-framework-compliance.ps1 (functie Invoke-Remediation) – Ondersteunt remediatie door framework-specifieke en geïntegreerde compliance-issues te identificeren.

Multi-framework compliance in Azure vereist een volwassen governance-structuur die duidelijk maakt wie verantwoordelijk is voor wat, hoe beslissingen worden genomen en hoe tegenstrijdigheden tussen frameworks worden opgelost. Dit begint met het benoemen van een centrale compliance-owner of compliance-team dat verantwoordelijk is voor het beheer van de compliance-matrix, het monitoren van de multi-framework status en het coördineren van compliance-activiteiten tussen verschillende teams en afdelingen. Dit team werkt nauw samen met CISO, privacy officers, risk managers en IT-operations om te zorgen dat compliance niet wordt gezien als een losstaande activiteit, maar als integraal onderdeel van de dagelijkse operatie. Een belangrijk governance-aspect is het oplossen van tegenstrijdigheden tussen frameworks. Wanneer verschillende frameworks verschillende eisen stellen aan dezelfde Azure-configuratie, moet een expliciete beslissing worden genomen over welke eis wordt gevolgd. In de meeste gevallen betekent dit dat de strengste eis wordt gekozen, maar er kunnen ook situaties zijn waarin een framework-specifieke uitzondering nodig is. Deze beslissingen moeten formeel worden vastgelegd, inclusief de onderbouwing en eventuele compensatiemaatregelen, zodat later kan worden herleid waarom bepaalde keuzes zijn gemaakt. Dit is essentieel voor audit-doeleinden en voor het behouden van consistentie wanneer nieuwe resources worden uitgerold of bestaande configuraties worden gewijzigd. Continue verbetering van multi-framework compliance betekent dat de compliance-aanpak regelmatig wordt geëvalueerd en bijgesteld. Dit houdt in dat de compliance-matrix periodiek wordt herzien wanneer frameworks wijzigen (bijvoorbeeld wanneer nieuwe BIO-maatregelen worden gepubliceerd of wanneer NIS2-implementatierichtlijnen worden aangescherpt), dat nieuwe Azure-services worden geëvalueerd op hun bijdrage aan verschillende frameworks, en dat lessons learned uit audits en incidenten worden gebruikt om de compliance-aanpak te verbeteren. Belangrijk is dat deze verbeteringen niet ad-hoc gebeuren, maar via formele changeprocessen die zorgen voor documentatie, communicatie en training van betrokken teams. Tot slot moet multi-framework compliance worden verankerd in de bredere risicomanagement- en auditprocessen van de organisatie. Dit betekent dat compliance-status wordt opgenomen in risico-assessments, dat compliance-issues worden behandeld als risico's die moeten worden gemitigeerd, en dat multi-framework rapportages worden gebruikt in gesprekken met toezichthouders, rekenkamers en interne audit. Door compliance expliciet te koppelen aan risicomanagement ontstaat een holistische aanpak waarin beveiliging, privacy, continuïteit en compliance samenkomen in één samenhangend raamwerk. Dit maakt het mogelijk om efficiënt te werken terwijl alle relevante normenkaders worden nageleefd, en om aantoonbaar te voldoen aan de eisen van verschillende stakeholders en toezichthouders.

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
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Multi-framework compliance-check in Azure (BIO, AVG, NIS2, ISO 27001) .DESCRIPTION Voert een controle uit op: - Aanwezigheid van Azure Policy assignments die meerdere frameworks adresseren - Policy compliance-status per framework (waar mogelijk) - Microsoft Defender for Cloud secure score als indicator voor multi-framework compliance - Overzicht van geconfigureerde compliance-monitoring Dit script is bedoeld als praktische control die snel inzicht geeft in de staat van multi-framework compliance in Azure en sluit aan op het artikel 'Multi-Framework Compliance in Azure'. .NOTES Filename: multi-framework-compliance.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/compliance/multi-framework-compliance.json #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Resources, Az.PolicyInsights, Az.Security [CmdletBinding()] param( [Parameter()] [switch]$Monitoring ) $ErrorActionPreference = 'Stop' $PolicyName = "Azure Multi-Framework Compliance - Basischeck" function Connect-RequiredServices { if (-not (Get-AzContext -ErrorAction SilentlyContinue)) { Connect-AzAccount -ErrorAction Stop | Out-Null } } function Test-MultiFrameworkCompliance { <# .SYNOPSIS Controleert multi-framework compliance-status in Azure .OUTPUTS PSCustomObject met TotalSubscriptions, PolicyAssignments, NonCompliantResources, SecureScore, FrameworksCovered #> [CmdletBinding()] param() $subscriptions = Get-AzSubscription -ErrorAction Stop | Where-Object { $_.State -eq 'Enabled' } $totalPolicyAssignments = 0 $totalNonCompliant = 0 $secureScoreAverage = $null $secureScores = @() $frameworksDetected = @() foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id -ErrorAction Stop | Out-Null try { $assignments = Get-AzPolicyAssignment -ErrorAction SilentlyContinue if ($assignments) { $totalPolicyAssignments += $assignments.Count # Detecteer framework-referenties in policy-namen en beschrijvingen foreach ($assignment in $assignments) { $name = $assignment.Name $description = if ($assignment.Properties.Description) { $assignment.Properties.Description } else { "" } $combined = "$name $description" if ($combined -match "BIO|Baseline Informatiebeveiliging") { if ($frameworksDetected -notcontains "BIO") { $frameworksDetected += "BIO" } } if ($combined -match "AVG|GDPR|Algemene Verordening") { if ($frameworksDetected -notcontains "AVG") { $frameworksDetected += "AVG" } } if ($combined -match "NIS2|Network and Information Systems") { if ($frameworksDetected -notcontains "NIS2") { $frameworksDetected += "NIS2" } } if ($combined -match "ISO 27001|ISO27001") { if ($frameworksDetected -notcontains "ISO 27001") { $frameworksDetected += "ISO 27001" } } } } } catch { Write-Verbose "Kon policy assignments voor subscription '$($sub.Name)' niet ophalen: $_" } try { $summary = Get-AzPolicyStateSummary -ErrorAction SilentlyContinue if ($summary -and $summary.Results) { foreach ($r in $summary.Results) { if ($r.NonCompliantResources) { $totalNonCompliant += [int]$r.NonCompliantResources } } } } catch { Write-Verbose "Kon policy-compliance voor subscription '$($sub.Name)' niet ophalen: $_" } try { $scores = Get-AzSecuritySecureScore -ErrorAction SilentlyContinue if ($scores) { foreach ($s in $scores) { if ($s.Properties.Percentage) { $secureScores += [double]$s.Properties.Percentage } } } } catch { Write-Verbose "Kon secure score voor subscription '$($sub.Name)' niet ophalen: $_" } } if ($secureScores.Count -gt 0) { $secureScoreAverage = [math]::Round(($secureScores | Measure-Object -Average).Average * 100, 1) } [PSCustomObject]@{ TotalSubscriptions = $subscriptions.Count PolicyAssignments = $totalPolicyAssignments NonCompliantResources = $totalNonCompliant SecureScorePercentage = $secureScoreAverage FrameworksCovered = if ($frameworksDetected.Count -gt 0) { $frameworksDetected -join ", " } else { "Geen expliciet gedetecteerd" } } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-MultiFrameworkCompliance Write-Host "" -ForegroundColor White Write-Host "========================================" -ForegroundColor Cyan Write-Host $PolicyName -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host ("Subscripties gecontroleerd : {0}" -f $r.TotalSubscriptions) -ForegroundColor White Write-Host ("Totaal policy assignments : {0}" -f $r.PolicyAssignments) -ForegroundColor White Write-Host ("Niet-conforme resources : {0}" -f $r.NonCompliantResources) -ForegroundColor White if ($null -ne $r.SecureScorePercentage) { Write-Host ("Gemiddelde secure score : {0}%" -f $r.SecureScorePercentage) -ForegroundColor White } else { Write-Host "Gemiddelde secure score : n.v.t. (geen gegevens beschikbaar)" -ForegroundColor Yellow } Write-Host ("Frameworks gedetecteerd : {0}" -f $r.FrameworksCovered) -ForegroundColor White if ($r.PolicyAssignments -eq 0) { Write-Host "" -ForegroundColor White Write-Host "[WAARSCHUWING] Geen Azure Policy assignments gedetecteerd. Multi-framework compliance vereist expliciete policy-toewijzingen." -ForegroundColor Yellow } if ($r.NonCompliantResources -gt 0) { Write-Host "" -ForegroundColor White Write-Host "[WAARSCHUWING] Er zijn niet-conforme resources gedetecteerd. Dit kan impact hebben op meerdere frameworks (BIO, AVG, NIS2, ISO 27001)." -ForegroundColor Yellow } if ($null -ne $r.SecureScorePercentage -and $r.SecureScorePercentage -lt 60) { Write-Host "" -ForegroundColor White Write-Host "[WAARSCHUWING] De gemiddelde secure score ligt onder 60%. Dit kan indiceren dat multi-framework compliance-vereisten niet volledig worden nageleefd." -ForegroundColor Yellow } if ($r.FrameworksCovered -eq "Geen expliciet gedetecteerd") { Write-Host "" -ForegroundColor White Write-Host "[INFO] Geen expliciete framework-referenties gedetecteerd in policy-namen. Overweeg het gebruik van naming conventions die frameworks expliciet maken (bijv. 'BIO-AVG-Encryption')." -ForegroundColor Cyan } else { Write-Host "" -ForegroundColor White Write-Host "[INFO] Gedetecteerde frameworks: $($r.FrameworksCovered). Zorg ervoor dat alle relevante frameworks (BIO, AVG, NIS2, ISO 27001) expliciet worden geadresseerd." -ForegroundColor Cyan } } else { $r = Test-MultiFrameworkCompliance Write-Host "" Write-Host ("Azure multi-framework compliance: {0} subscripties, {1} policy assignments, {2} niet-conforme resources, secure score {3}, frameworks: {4}" -f ` $r.TotalSubscriptions, ` $r.PolicyAssignments, ` $r.NonCompliantResources, ` ($(if ($null -ne $r.SecureScorePercentage) { "$($r.SecureScorePercentage)%" } else { "n.v.t." })), ` $r.FrameworksCovered) } } catch { Write-Error $_ exit 1 } # ================================================================================ # Standaard Invoke-* Functions (conform Azure script-schema) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert configuratie (delegeert naar remediatie) #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Voert de monitoringcheck uit voor multi-framework compliance #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-MultiFrameworkCompliance Write-Host "" -ForegroundColor White Write-Host "========================================" -ForegroundColor Cyan Write-Host $PolicyName -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host ("Subscripties gecontroleerd : {0}" -f $r.TotalSubscriptions) -ForegroundColor White Write-Host ("Totaal policy assignments : {0}" -f $r.PolicyAssignments) -ForegroundColor White Write-Host ("Niet-conforme resources : {0}" -f $r.NonCompliantResources) -ForegroundColor White if ($null -ne $r.SecureScorePercentage) { Write-Host ("Gemiddelde secure score : {0}%" -f $r.SecureScorePercentage) -ForegroundColor White } else { Write-Host "Gemiddelde secure score : n.v.t. (geen gegevens beschikbaar)" -ForegroundColor Yellow } Write-Host ("Frameworks gedetecteerd : {0}" -f $r.FrameworksCovered) -ForegroundColor White if ($r.PolicyAssignments -eq 0) { Write-Host "" -ForegroundColor White Write-Host "[WAARSCHUWING] Geen Azure Policy assignments gedetecteerd. Multi-framework compliance vereist expliciete policy-toewijzingen." -ForegroundColor Yellow } if ($r.NonCompliantResources -gt 0) { Write-Host "" -ForegroundColor White Write-Host "[WAARSCHUWING] Er zijn niet-conforme resources gedetecteerd. Dit kan impact hebben op meerdere frameworks (BIO, AVG, NIS2, ISO 27001)." -ForegroundColor Yellow } if ($null -ne $r.SecureScorePercentage -and $r.SecureScorePercentage -lt 60) { Write-Host "" -ForegroundColor White Write-Host "[WAARSCHUWING] De gemiddelde secure score ligt onder 60%. Dit kan indiceren dat multi-framework compliance-vereisten niet volledig worden nageleefd." -ForegroundColor Yellow } if ($r.FrameworksCovered -eq "Geen expliciet gedetecteerd") { Write-Host "" -ForegroundColor White Write-Host "[INFO] Geen expliciete framework-referenties gedetecteerd in policy-namen. Overweeg het gebruik van naming conventions die frameworks expliciet maken (bijv. 'BIO-AVG-Encryption')." -ForegroundColor Cyan } else { Write-Host "" -ForegroundColor White Write-Host "[INFO] Gedetecteerde frameworks: $($r.FrameworksCovered). Zorg ervoor dat alle relevante frameworks (BIO, AVG, NIS2, ISO 27001) expliciet worden geadresseerd." -ForegroundColor Cyan } } else { $r = Test-MultiFrameworkCompliance Write-Host "" Write-Host ("Azure multi-framework compliance: {0} subscripties, {1} policy assignments, {2} niet-conforme resources, secure score {3}, frameworks: {4}" -f ` $r.TotalSubscriptions, ` $r.PolicyAssignments, ` $r.NonCompliantResources, ` ($(if ($null -ne $r.SecureScorePercentage) { "$($r.SecureScorePercentage)%" } else { "n.v.t." })), ` $r.FrameworksCovered) } } catch { Write-Error $_ exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Ondersteunt remediatie door framework-specifieke en geïntegreerde compliance-issues te identificeren .DESCRIPTION Dit script voert geen automatische remediatie uit, maar geeft duidelijke aanwijzingen om multi-framework compliance te verbeteren in Azure. Het identificeert welke frameworks mogelijk niet volledig worden geadresseerd en geeft richting aan remediatie-acties. #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoringgerichte control zonder automatische remediatie." -ForegroundColor Yellow Write-Host "[INFO] Gebruik de resultaten om Azure Policy assignments te analyseren en te zorgen dat alle relevante frameworks (BIO, AVG, NIS2, ISO 27001) worden geadresseerd." -ForegroundColor Yellow Write-Host "[INFO] Raadpleeg het artikel 'Multi-Framework Compliance in Azure' voor implementatierichtlijnen en framework-mapping." -ForegroundColor Yellow Write-Host "[INFO] Overweeg het opzetten van een compliance-matrix die Azure-configuraties expliciet mapt naar framework-eisen." -ForegroundColor Yellow Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder een geïntegreerde multi-framework compliance-aanpak in Azure ontstaat het risico dat organisaties voldoen aan het ene normenkader maar tekortschieten in het andere, dat tegenstrijdigheden tussen frameworks onopgelost blijven, en dat dubbel werk wordt verricht door dezelfde maatregel meerdere keren te implementeren of te controleren. Dit leidt tot inefficiëntie, onduidelijkheid over verantwoordelijkheden, en het risico dat belangrijke eisen tussen wal en schip vallen. Bij audits of toezicht kan dit resulteren in boetes, verplichte herstelmaatregelen, reputatieschade en verlies van vertrouwen van burgers en toezichthouders.

Management Samenvatting

Multi-framework compliance in Azure integreert verschillende normenkaders (BIO, AVG, NIS2, ISO 27001) in één samenhangend raamwerk. Door overlap tussen frameworks te benutten, tegenstrijdigheden op te lossen en geautomatiseerde monitoring en rapportage in te richten die per framework én geïntegreerd inzicht geeft, ontstaat een efficiënte en aantoonbare compliance-aanpak. Dit artikel beschrijft framework-mapping, Azure Policy-integratie, monitoring en rapportage, en governance voor continue verbetering.