Sleutelbeheer En Cryptografische Governance Binnen Microsoft 365

💼 Management Samenvatting

Encryptiesleutels vormen de laatste verdedigingslinie tegen onderschepping van gegevensstromen binnen Microsoft 365 en bepalen of een incident eindigt als meldplichtige datalek of als gecontroleerd voorval. Nederlandse overheidsinstellingen beheren vaak een mozaïek van Microsoft-geleverde sleutels, Customer Managed Keys en Hardware Security Modules voor vitale datasets, waardoor overzicht en consistentie snel verloren gaan.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
280u (tech: 160u)
Van toepassing op:
M365
Exchange Online
SharePoint Online
OneDrive
Teams
Publieke Sector
BIO-instellingen

Zonder geïntegreerde sleutelstrategie ontbreekt inzicht in wie sleutels aanmaakt, hoe rotatie wordt afgedwongen en welke administratie aan toezichthouders kan worden overhandigd. Daardoor ontstaat risico op verouderde cryptografische algoritmen, ongeautoriseerde export van sleutelmaterialen en niet-aantoonbare naleving van BIO, NIS2 en AVG. Bovendien raakt de organisatie afhankelijk van handmatige spreadsheets terwijl aanvallers juist geautomatiseerde technieken inzetten om sleutelkluisconfiguraties aan te vallen.

PowerShell Modules Vereist
Primary API: Microsoft Graph Reports API, Key Vault REST API, Purview Information Protection API
Connection: Connect-MgGraph (Reports.Read.All, Directory.Read.All) voor workloadconfiguraties gecombineerd met Connect-AzAccount en Key Vault data-plane calls voor sleutelmetadata.
Required Modules: Microsoft.Graph, Az.Accounts, Az.KeyVault

Implementatie

Dit artikel koppelt beleidskaders, operationele processen en automatisering tot één referentiemodel voor sleutelbeheer binnen de Nederlandse Baseline voor Veilige Cloud. Elk onderdeel sluit aan op het PowerShell-script `encryption-key-management.ps1`, dat inventarisaties uit Key Vault, Graph en Purview samenbrengt, rotatieprestatie berekent en auditbewijzen voorbereidt. De combinatie van tekst en script levert direct toepasbare richtlijnen voor CISO’s, security engineers en privacy officers die verantwoordelijk zijn voor de bescherming van staatsgevoelige informatie in Microsoft 365.

Bestuurlijke inbedding en levenscyclusregie

Sleutelbeheer begint met expliciete governance waarin rollen, bevoegdheden en acceptatiecriteria net zo scherp zijn beschreven als bij identity- of netwerkmaatregelen. Het strategische kader benoemt een sleutelbeheerboard waarin de CISO, Chief Privacy Officer, informatiemanagers en workloadeigenaren gezamenlijk bepalen welke datasets Customer Managed Keys vereisen, hoe escrow-regelingen eruitzien en wanneer escalaties naar bestuurlijke lagen plaatsvinden. Zij formuleren ook beslisregels voor gebruik van Microsoft-beheerde sleutels versus klantbeheerde varianten, zodat iedere migratie, tenantuitbreiding of nieuwe workload direct aan deze regels kan worden getoetst. Door dit bestuur te koppelen aan bestaande portfolioprocessen ontstaat een traceerbare lijn tussen beleidsbesluiten, technische implementaties en de contractuele afspraken met leveranciers.

Een volwassen governanceproces beschrijft de complete levenscyclus van sleutelmaterialen, vanaf genereren in een HSM tot vernietiging wanneer informatiesystemen worden uitgefaseerd. Voor iedere fase bestaan duidelijke documenten: creation records met entropy-bronnen, distributielijsten met personele verificatie, gebruikslogboeken voor elke tenant en vernietigingscertificaten die aantonen dat sleutels daadwerkelijk onbruikbaar zijn gemaakt. De lifecycle bevat daarnaast triggers voor herbeoordeling, bijvoorbeeld na wijziging van dreigingsniveaus van het NCTV, updates van cryptografische standaarden of signalen uit leveranciersbeoordelingen. Wanneer zo’n trigger optreedt, verplicht het governancekader tot het uitvoeren van een mini-DPIA en het actualiseren van onboardingtemplates voor nieuwe teams zodat de lessen direct worden doorvertaald naar de operatie.

Governance is pas effectief wanneer ketenpartners dezelfde definities hanteren. Gemeenten, uitvoeringsdiensten en ministeries delen regelmatig datasets binnen Microsoft 365 en verwachten dat vercijfering, sleutelherkomst en rotatiebeleid uniform zijn. Het sleutelbeheerboard stelt daarom interorganisationele afspraken op over sleuteluitwisseling, scheiding van verantwoordelijkheden en incidentmeldingen. Denk aan procedures voor het tijdelijk vrijgeven van een sleutel voor een gerechtelijk onderzoek, inclusief logging, juridische basis en automatische vernietiging van kopieën. Deze afspraken worden vastgelegd in service-integratieovereenkomsten en worden jaarlijks getest tijdens ketenoefeningen, zodat iedere partij weet hoe te handelen als een sleutelcompromis wordt vermoed.

Naast bestuurlijke maatregelen vereist sleutelbeheer een cultuur van cryptografische hygiëne. Elke wijziging, van het toevoegen van een nieuwe key vault tot het exporteren van een softwarematige back-up, wordt behandeld als een change met verplichte peer review en logging. Beleidsdocumenten leggen uit hoe ontwikkelteams omgaan met geheimen in CI/CD-omgevingen, hoe contractors tijdelijk toegang krijgen zonder sleutels te dupliceren en hoe het principe van dubbele controle wordt toegepast bij kritieke handelingen. Door governance, levenscyclusdocumentatie en cultuurinterventies te combineren ontstaat een betrouwbaar stelsel waarin sleutels nooit los van mensen of processen bestaan maar onderdeel vormen van een gecontroleerde keten die auditors en toezichthouders kunnen volgen.

De governancecomponent wordt tenslotte verankerd via prestatie-indicatoren die bestuurders elk kwartaal goedkeuren. Denk aan een minimale rotatiegraad van 98 procent, maximaal drie openstaande afwijkingen ouder dan dertig dagen en verplichte evaluaties na elke grote tenantwijziging. Deze indicatoren zijn gekoppeld aan de bonusdoelen van afdelingshoofden, waardoor sleutelbeheer niet wordt gezien als een technisch feestje maar als een organisatiebrede verantwoordelijkheid. Wanneer indicatoren worden overschreden, start automatisch een verbetertraject waarin root-cause-analyses, aanvullende training en indien nodig disciplinaire maatregelen worden toegepast. Hiermee bewijst de organisatie dat governance niet ophoudt bij papier, maar tastbaar doorwerkt in gedrag, middelen en accountability.

Operationele uitvoering en automatisering van sleutelbeheer

Gebruik PowerShell-script encryption-key-management.ps1 (functie Invoke-KeyVaultInventory) – Verzamelt key vaults, sleutelmetadata, rotatie-statussen en compliance-signalen en levert een genormaliseerd overzicht voor Microsoft 365-workloads..

Operationeel sleutelbeheer vereist actuele inventarisaties van alle key vaults, Customer Key-implementaties in Exchange, SharePoint en Teams, en additionele sleutels die worden gebruikt voor Purview Double Key Encryption of solidaire ketenoplossingen. Het script `Invoke-KeyVaultInventory` leest Azure Key Vault-configuraties, Graph-rapportages en Purview-beleid en combineert deze in één dataset die wordt verrijkt met risicogegevens zoals tenantcriticality en dataclassificatie. Engineers kunnen het script in DebugMode draaien om lokale validaties uit te voeren, waarna dezelfde functies in productie via serviceprincipals verbinding maken. Zo wordt voorkomen dat inventarisaties afhangen van spreadsheets en handmatige exports, terwijl iedere sleutel direct wordt gekoppeld aan een eigenaar, een purpose en een rotatieinterval.

Automatisering beperkt zich niet tot inventarisatie. Rotatieplanning, escrowbeheer en failover-simulaties moeten eveneens geautomatiseerd zijn om menselijke fouten terug te dringen. Het script controleert per sleutel of automatische rotatie actief is, welke notificatiekanalen worden gebruikt en of er recente mislukkingen zijn geregistreerd in Azure Monitor of Microsoft 365 service health. Wanneer een sleutel ouder is dan de vastgestelde maximumleeftijd of wanneer rotatie is uitgesteld door change freezes, berekent het script een risicowaarde en adviseert het onmiddellijke acties. Deze signalen worden vervolgens geprojecteerd op workloads zodat duidelijk is welke beleidsregels in het gevaar komen, bijvoorbeeld wanneer een Customer Key in Exchange dreigt te verlopen en daarmee journaled e-mailstromen risico lopen.

Voor Nederlandse overheden is integratie met incidentrespons cruciaal, omdat sleutelcompromis direct meldplichten kan activeren. De automatisering voorziet daarom in runbooks die integreren met Microsoft Sentinel of Defender XDR: zodra afwijkende toegangspatronen op key vaults worden gedetecteerd, start een playbook dat de sleutel onbruikbaar maakt, workloads overschakelt op een secundaire sleutel en de FG informeert. Het PowerShell-script legt deze stappen niet alleen vast maar kan in Publish-modus JSON-rapporten genereren die door SOAR-playbooks worden gelezen, zodat detectie en response dezelfde bron van waarheid delen. Hierdoor ontstaat een sluitende keten van signaal tot maatregel waarbij elke stap automatisch wordt geregistreerd.

Automatisering maakt het tevens mogelijk om cryptografische onafhankelijkheid richting leveranciers aan te tonen. Door regelmatig de configuraties van Double Key Encryption, Customer Lockbox en Key Access Justification te exporteren, kan de organisatie aantonen dat Microsoft nooit eenzijdig toegang krijgt tot sleutelmaterialen. Het script koppelt deze configuraties aan beleidslabels zodat beleidsadviseurs kunnen zien welke informatiecategorieën worden beschermd door welke sleutel en welke fallback-scenario’s beschikbaar zijn. Daarmee wordt sleutelbeheer geen black box van de technische dienst maar een transparant proces dat bestuurders vertrouwen geeft in de continuïteit van digitale dienstverlening.

Een bijkomend voordeel van automatisering is dat dezelfde tooling kan worden ingezet voor simulaties en oefeningen. Het script ondersteunt een simulatiemodus waarin sleuteluitval wordt nagebootst om te controleren of applicaties tijdig overschakelen naar secundaire sleutels en of meldingspaden naar SOC en FG daadwerkelijk functioneren. Door deze simulaties in te plannen voorafgaand aan ketenoefeningen of wijzigingen in licentiemodellen, ontdekt de organisatie vroegtijdig waar procedures nog leunen op handmatige stappen of verouderde contactlijsten. De bevindingen vloeien automatisch terug in het kennisdomein van het sleutelbeheerboard, zodat zowel architectuur als operations profiteren van dezelfde lessons learned.

Continue assurance, rapportage en auditvoorbereiding

Gebruik PowerShell-script encryption-key-management.ps1 (functie Publish-KeyManagementReport) – Combineert inventarisatie, rotatie-analyse en auditvereisten tot een rapport met aanbevelingen, KPI’s en bewijsstukken..

Sleutelbeheer levert pas waarde wanneer bestuurders, auditors en toezichthouders inzicht krijgen in prestaties en afwijkingen. Het rapport uit `Publish-KeyManagementReport` vertaalt technische gegevens naar managementinformatie: hoeveel sleutels vallen binnen SLA, welke workloads wachten op migratie naar Customer Key, welke rotaties zijn bewust uitgesteld en welke incidenten zijn verwerkt. Door KPI’s te koppelen aan BIO-controles ontstaat een dashboard dat laat zien hoe sleutelbeheer bijdraagt aan vertrouwelijkheid, integriteit en beschikbaarheid. Daarmee kunnen bestuurders aantonen dat encryptie geen statische maatregel is, maar een continu proces met meetbare resultaten.

Auditvoorbereiding draait om bewijs. Het rapport genereert automatisch een lijst met documenten die up-to-date moeten zijn: DPIA’s voor sleutelbeheer, key ceremony logs, exportrestricties, en bewijs dat sleutelmaterialen nooit buiten vertrouwde landen zijn opgeslagen. Door elk bewijsstuk te voorzien van hash-waarden en opslaglocaties binnen SharePoint of Azure Storage ontstaat een digitale keten die auditteams direct kunnen volgen. Wanneer auditors steekproeven uitvoeren, verwijst het rapport naar de exacte record in het key ceremony log en de bijbehorende toestemmingsformulieren, waardoor controles sneller verlopen en minder werkdruk bij operationele teams neerleggen.

Continue assurance omvat ook het voorspellen van toekomstige risico’s. Het rapport berekent daarom een cryptografische roadmap waarin naderende lifecycle-einden van algoritmen, certificaten of hardware worden samengebracht met externe signalen zoals ETSI-aanbevelingen over post-quantum cryptografie. Dit stelt organisaties in staat tijdig migratietrajecten te starten zonder de dienstverlening te verstoren. De roadmap wordt gedeeld met leveranciers en ketenpartners zodat gezamenlijke projecten, bijvoorbeeld de introductie van quantumveilige sleuteluitwisseling tussen ministeries, op elkaar aansluiten.

Tot slot faciliteert continue assurance de dialoog met burgers en toezichthouders. Transparante rapportages maken het mogelijk om aan te tonen dat staatsgeheimen, politiegegevens of jeugdzorgdossiers zijn beschermd door sleutels waarvan de toegang, rotatie en vernietiging aantoonbaar onder controle staan. Wanneer zich toch een incident voordoet, kan de organisatie binnen minuten laten zien welke sleutel was betrokken, wie toegang had en welke herstelmaatregelen zijn uitgevoerd. Deze mate van volwassenheid verhoogt het vertrouwen in digitale overheidstoepassingen en bevestigt dat de Nederlandse Baseline voor Veilige Cloud niet alleen beleid beschrijft maar ook werkt in de praktijk.

Continuïteit vereist tevens dat assurance-activiteiten worden afgestemd op toekomstige ontwikkelingen zoals post-quantum cryptografie. Het rapport bevat daarom een sectie waarin wordt bijgehouden welke sleutelmaterialen al compatibel zijn met hybride algoritmen, welke leveranciers roadmapcommitment hebben afgegeven en welke onderzoeksprogramma’s binnen de overheid betrokken moeten worden. Hierdoor ontstaat een gezamenlijk beeld van de investeringen die nodig zijn om cryptografie tijdig te vernieuwen. De organisatie kan deze inzichten gebruiken bij begrotingsrondes, aanbestedingen en gesprekken met toezichthouders, waardoor sleutelbeheer een proactief en toekomstvast onderdeel wordt 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 Automatiseringsscript voor sleutelbeheer en encryptie-governance in Microsoft 365. .DESCRIPTION Dit script ondersteunt het artikel content/m365/security/encryption-key-management.json. Het inventariseert Key Vaults, Customer Managed Keys en Double Key Encryption signalen, controleert rotatieprestaties, genereert acties en produceert een rapport dat kan worden gedeeld met CISO, FG en auditors. .NOTES Filename : encryption-key-management.ps1 Author : Nederlandse Baseline voor Veilige Cloud Created : 2025-11-27 Version : 1.0 Category : security Workload : m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\encryption-key-management.ps1 -DebugMode Voert een lokale test uit met voorbeelddata en retourneert het rapportobject. .EXAMPLE .\encryption-key-management.ps1 -Mode Publish -OutputPath .\key-report.json Exporteert het rapport naar JSON. #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph #Requires -Modules Az.Accounts #Requires -Modules Az.KeyVault [CmdletBinding()] param( [Parameter(HelpMessage = "Gebruik voorbeelddata en sla cloudverbindingen over.")] [switch]$DebugMode, [Parameter(HelpMessage = "Kies Assess voor console-output of Publish voor export.")] [ValidateSet("Assess", "Publish")] [string]$Mode = "Assess", [Parameter(HelpMessage = "Pad voor het geëxporteerde rapport bij Publish.")] [string]$OutputPath ) Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' if (-not $OutputPath) { $OutputPath = Join-Path -Path (Get-Location) -ChildPath "encryption-key-management-report.json" } Write-Host "`n==================================================" -ForegroundColor Cyan Write-Host "Sleutelbeheerrapport Microsoft 365" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "==================================================`n" -ForegroundColor Cyan function Connect-KeyGovernanceContext { <# .SYNOPSIS Maakt verbinding met Microsoft Graph en Azure voor Key Vault data. .DESCRIPTION In DebugMode worden verbindingen overgeslagen zodat lokale testen veilig zijn. #> [CmdletBinding()] param() if ($DebugMode) { Write-Host "DebugMode actief: verbindingen worden overgeslagen." -ForegroundColor Yellow return } Write-Verbose "Controleren op bestaand Azure-context..." $context = Get-AzContext -ErrorAction SilentlyContinue if (-not $context) { try { Write-Verbose "Proberen te verbinden via Managed Identity..." Connect-AzAccount -Identity -ErrorAction Stop | Out-Null } catch { Write-Warning "Managed Identity niet beschikbaar. Interactieve aanmelding wordt geprobeerd." Connect-AzAccount -ErrorAction Stop | Out-Null } } $scopes = @( "Reports.Read.All", "Directory.Read.All" ) Write-Verbose "Verbinden met Microsoft Graph..." Connect-MgGraph -Scopes $scopes -ErrorAction Stop | Out-Null Write-Host "Verbonden met Microsoft Graph en Azure." -ForegroundColor Green } function Invoke-KeyVaultInventory { <# .SYNOPSIS Verzamelt key vaults en sleutelmetadata. .OUTPUTS Array van PSCustomObjects met sleutelkenmerken en risicogegevens. #> [CmdletBinding()] param() if ($DebugMode) { $now = Get-Date return @( [PSCustomObject]@{ VaultName = "kv-rijksoverheid-prod" Location = "westeurope" ResourceGroup = "rg-secure-core" SoftDeleteEnabled = $true PurgeProtection = $true KeyName = "m365-customerkey-exo" KeyType = "RSA-HSM" LastRotation = $now.AddDays(-38) RotationIntervalDays = 90 ExpiryDate = $now.AddDays(52) AutoRotationEnabled = $true Workload = "Exchange Online" DataClassification = "Departementaal Vertrouwelijk" }, [PSCustomObject]@{ VaultName = "kv-justitie-dke" Location = "northeurope" ResourceGroup = "rg-justice-sec" SoftDeleteEnabled = $true PurgeProtection = $true KeyName = "doublekey-sharepoint" KeyType = "RSA-HSM" LastRotation = $now.AddDays(-140) RotationIntervalDays = 120 ExpiryDate = $now.AddDays(-5) AutoRotationEnabled = $false Workload = "SharePoint Online" DataClassification = "Staatsgeheim Departementaal" } ) } $vaults = @() try { $vaults = Get-AzKeyVault -ErrorAction Stop } catch { throw "Kon Key Vaults niet ophalen: $_" } $inventory = @() foreach ($vault in $vaults) { try { $keys = Get-AzKeyVaultKey -VaultName $vault.VaultName -ErrorAction Stop } catch { Write-Warning "Kon sleutels niet ophalen voor $($vault.VaultName): $_" continue } foreach ($key in $keys) { $lastRotation = $key.Attributes.Updated $expiry = $key.Attributes.Expires $rotationInterval = if ($key.Attributes.Enabled -and $key.Attributes.NotBefore -and $expiry) { [math]::Max(30, [int]((New-TimeSpan -Start $key.Attributes.NotBefore -End $expiry).TotalDays)) } else { 180 } $inventory += [PSCustomObject]@{ VaultName = $vault.VaultName Location = $vault.Location ResourceGroup = $vault.ResourceGroupName SoftDeleteEnabled = $vault.EnableSoftDelete PurgeProtection = $vault.EnablePurgeProtection KeyName = $key.Name KeyType = $key.KeyType LastRotation = $lastRotation RotationIntervalDays = $rotationInterval ExpiryDate = $expiry AutoRotationEnabled = [bool]$key.Attributes.Enabled Workload = ($key.Tags["Workload"]) DataClassification = ($key.Tags["Classification"]) } } } return $inventory } function Invoke-KeyRotationHealth { <# .SYNOPSIS Berekent gezondheidsindicatoren voor sleutelrotatie. .PARAMETER Inventory Inventaris uit Invoke-KeyVaultInventory. .OUTPUTS PSCustomObject met scores, waarschuwingen en prioriteiten. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [array]$Inventory ) if (-not $Inventory -or $Inventory.Count -eq 0) { return [PSCustomObject]@{ RotationCoverage = 0 ExpiredKeys = @() OverdueKeys = @() RiskScore = 0 } } $now = Get-Date $expired = $Inventory | Where-Object { $_.ExpiryDate -and $_.ExpiryDate -lt $now } $overdue = $Inventory | Where-Object { $_.LastRotation -and $_.RotationIntervalDays -gt 0 -and ($now - $_.LastRotation).TotalDays -gt $_.RotationIntervalDays } $total = $Inventory.Count $healthy = $Inventory | Where-Object { $_.AutoRotationEnabled -and ($overdue -notcontains $_) -and ($expired -notcontains $_) } $coverage = [math]::Round(($healthy.Count / $total) * 100, 2) $risk = 50 if ($expired.Count -gt 0) { $risk += 25 } if ($overdue.Count -gt 0) { $risk += 15 } if ($coverage -lt 80) { $risk += 10 } $risk = [math]::Min(95, $risk) return [PSCustomObject]@{ RotationCoverage = $coverage ExpiredKeys = $expired OverdueKeys = $overdue RiskScore = $risk } } function Get-KeyGovernanceActions { <# .SYNOPSIS Genereert acties, rollen en evidence-checklists. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [pscustomobject]$RotationHealth ) $actions = @( "Valideer dat Key Vault soft delete en purge protection overal zijn ingeschakeld.", "Documenteer key ceremonies en upload bewijs naar het sleutelbeheerarchief.", "Plan kwartaalreview van Customer Key configuraties met CISO en FG." ) if ($RotationHealth.ExpiredKeys.Count -gt 0) { $actions += "Vernieuw direct verstreken sleutels en herkwalificeer getroffen workloads." } if ($RotationHealth.OverdueKeys.Count -gt 0) { $actions += "Analyseer root cause van uitgestelde rotatie en koppel lessons learned aan change management." } if ($RotationHealth.RotationCoverage -lt 90) { $actions += "Activeer automatische rotatie of installeer policy die handmatige rotatie afdwingt." } $roles = @( "Sleutelbeheerboard", "SOC-lead", "Privacy Officer", "Applicatie-eigenaren" ) $evidence = @( "Export van encryption-key-management-report.json", "Key Vault access logs en Azure Monitor alerts", "DPIA-appendices voor Customer Managed Keys", "Change records voor sleutelrotaties" ) return [PSCustomObject]@{ Actions = $actions ResponsibleRoles = $roles EvidenceList = $evidence NextReviewDays = if ($RotationHealth.RiskScore -gt 70) { 30 } else { 60 } } } function Publish-KeyManagementReport { <# .SYNOPSIS Bouwt het eindrapport en exporteert optioneel. #> [CmdletBinding()] param() $inventory = Invoke-KeyVaultInventory $rotation = Invoke-KeyRotationHealth -Inventory $inventory $actions = Get-KeyGovernanceActions -RotationHealth $rotation $report = [PSCustomObject]@{ GeneratedAtUtc = (Get-Date).ToUniversalTime() DebugMode = [bool]$DebugMode Inventory = $inventory RotationHealth = $rotation Governance = $actions } if ($Mode -eq "Publish") { Write-Verbose "Rapport exporteren naar $OutputPath" $report | ConvertTo-Json -Depth 6 | Set-Content -Path $OutputPath -Encoding UTF8 } return $report } try { Connect-KeyGovernanceContext $result = Publish-KeyManagementReport $result exit 0 } catch { Write-Error "Fout tijdens sleutelbeheeranalyse: $_" exit 1 } finally { Write-Host "`n==================================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = Succes # 1 = Fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
High: Zonder integraal sleutelbeheer ontbreekt bewijs voor encryptiecontroles, neemt het risico op sleutelcompromis toe en kan Microsoft 365 niet worden ingezet voor hooggeclassificeerde informatie.

Management Samenvatting

Richt een sleutelbeheerboard in, automatiseer inventarisatie en rotatie met `encryption-key-management.ps1` en lever periodieke rapportages aan bestuurders en auditors om continu bewijs te leveren.