Data Sovereignty-vereisten Voor Microsoft 365: Beheersing En Controle Over Gegevenslocatie

💼 Management Samenvatting

Data sovereignty, of gegevenssoevereiniteit, verwijst naar het concept dat organisaties volledige controle en jurisdictie behouden over hun gegevens, ongeacht waar deze fysiek worden opgeslagen of verwerkt. Voor Nederlandse overheidsorganisaties is data sovereignty niet alleen een technische uitdaging, maar vooral een juridische en strategische noodzaak die direct raakt aan de uitvoering van publieke taken, de bescherming van burgergegevens en de handhaving van nationale wet- en regelgeving. In Microsoft 365 betekent data sovereignty dat organisaties expliciet moeten afwegen welke gegevens waar worden opgeslagen, welke jurisdicties van toepassing zijn, en hoe zij hun soevereiniteitsrechten kunnen waarborgen binnen de kaders die cloudleveranciers bieden.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
200u (tech: 80u)
Van toepassing op:
Microsoft 365 E3
Microsoft 365 E5
Exchange Online
SharePoint Online
OneDrive for Business
Microsoft Teams
Publieke Sector
Overheidsorganisaties

Zonder een doordachte data sovereignty-strategie lopen Nederlandse overheidsorganisaties aanzienlijke risico's op meerdere niveaus. Juridisch gezien kan onduidelijkheid over jurisdictie en data-locatie leiden tot conflicten met de AVG, met name artikel 44 tot en met 49 over internationale gegevensoverdrachten, en tot problemen met de Archiefwet wanneer archiefmateriaal buiten Nederlandse jurisdictie wordt opgeslagen. Strategisch gezien ontstaat afhankelijkheid van buitenlandse wetgeving en rechtspraak, wat kan betekenen dat buitenlandse autoriteiten toegang kunnen vorderen tot overheidsgegevens zonder dat de Nederlandse overheid hiervan op de hoogte wordt gesteld. Dit raakt aan de kern van digitale soevereiniteit: de mogelijkheid om zelfstandig te bepalen wie toegang heeft tot welke gegevens en onder welke voorwaarden. Bovendien kunnen contractuele onduidelijkheden leiden tot discussies met leveranciers over incidentrespons, data-eigendom en exit-scenario's, wat operationele risico's met zich meebrengt. Tot slot kunnen burgers en toezichthouders vragen stellen over waar hun gegevens precies staan en welke rechtsregimes van toepassing zijn, wat vertrouwen kan schaden wanneer dit niet transparant wordt gecommuniceerd.

PowerShell Modules Vereist
Primary API: Microsoft Graph API, Microsoft 365 Admin Center, Security & Compliance PowerShell
Connection: Connect-MgGraph, Connect-IPPSSession
Required Modules: Microsoft.Graph, ExchangeOnlineManagement

Implementatie

Dit artikel beschrijft een complete aanpak voor het definiëren en implementeren van data sovereignty-vereisten binnen Microsoft 365 voor Nederlandse overheidsorganisaties. Het artikel behandelt vier samenhangende dimensies: juridische en strategische context, technische implementatie, governance en monitoring, en risicobeheer. De juridische dimensie beschrijft hoe data sovereignty zich verhoudt tot AVG, BIO, NIS2, Archiefwet en beleidskaders rond digitale soevereiniteit, en welke afwegingen organisaties moeten maken bij het kiezen van data-locaties. De technische dimensie behandelt hoe Microsoft 365-functies zoals EU Data Boundary, Multi-Geo, en regionale tenantconfiguraties kunnen worden benut om data sovereignty te borgen, inclusief de beperkingen en overwegingen die hierbij komen kijken. De governance-dimensie beschrijft hoe organisaties rollen, verantwoordelijkheden en processen moeten inrichten om data sovereignty structureel te beheren, inclusief contractmanagement, incidentresponse en exit-planning. De monitoring-dimensie behandelt hoe organisaties kunnen verifiëren dat hun data sovereignty-vereisten daadwerkelijk worden nageleefd en hoe zij kunnen rapporteren over compliance naar bestuurders, toezichthouders en burgers. Het bijbehorende PowerShell-script ondersteunt organisaties bij het monitoren van data-locaties, tenantconfiguraties en compliance met afgesproken sovereignty-eisen.

Data sovereignty kent meerdere juridische en strategische dimensies die elkaar beïnvloeden. Op juridisch niveau gaat het om de vraag welke wetgeving en welke autoriteiten jurisdictie hebben over gegevens wanneer deze in de cloud worden opgeslagen. Traditioneel geldt het principe van territorialiteit: de wetgeving van het land waar gegevens fysiek staan, heeft in beginsel jurisdictie. In de cloudwereld is dit complexer geworden omdat gegevens verspreid kunnen staan over meerdere datacenters, replicatie kan plaatsvinden naar verschillende regio's voor continuïteit, en back-ups mogelijk op andere locaties worden bewaard. Bovendien claimen sommige landen, met name de Verenigde Staten via de Cloud Act, extra-territoriale jurisdictie: zij menen toegang te kunnen vorderen tot gegevens die door Amerikaanse bedrijven worden beheerd, ongeacht waar de data fysiek staat. Dit creëert een juridische spanning voor Nederlandse organisaties die gegevens opslaan bij Microsoft, een Amerikaans bedrijf, zelfs wanneer zij expliciet kiezen voor EU-datacenters.

Voor Nederlandse overheidsorganisaties voegt de Algemene Verordening Gegevensbescherming (AVG) een belangrijke laag toe. Artikelen 44 tot en met 49 reguleren internationale gegevensoverdrachten en vereisen dat organisaties passende waarborgen treffen wanneer gegevens de Europese Economische Ruimte verlaten. Het Schrems II-arrest van het Europese Hof van Justitie uit 2020 heeft deze eisen aangescherpt door te stellen dat organisaties niet alleen contractuele waarborgen moeten hebben, maar ook moeten beoordelen of de wetgeving in het ontvangende land daadwerkelijk voldoende bescherming biedt. Dit betekent dat Nederlandse organisaties moeten evalueren of Microsoft's EU Data Boundary voldoende bescherming biedt tegen toegang door niet-EU autoriteiten, en of aanvullende contractuele of technische maatregelen nodig zijn. De Baseline Informatiebeveiliging Overheid (BIO) voegt daar nog een laag aan toe door te eisen dat organisaties kunnen aantonen welke processoren toegang hebben tot gegevens, welke jurisdicties van toepassing zijn, en hoe zij hun soevereiniteitsrechten waarborgen. Dit vraagt om expliciete documentatie en contractuele afspraken die verder gaan dan standaard service agreements.

Strategisch gezien raakt data sovereignty aan digitale soevereiniteit: de wens en mogelijkheid van een overheid om zelfstandig te bepalen hoe digitale infrastructuur wordt ingericht en beheerd, zonder onaanvaardbare afhankelijkheden van buitenlandse partijen. Voor Nederlandse overheidsorganisaties betekent dit dat zij moeten afwegen in hoeverre zij afhankelijk willen zijn van Amerikaanse cloudleveranciers, welke alternatieven beschikbaar zijn, en welke risico's acceptabel zijn. Deze afweging wordt complexer door de praktische realiteit dat Microsoft 365 veel gebruikersvriendelijke en geavanceerde functionaliteit biedt die moeilijk te evenaren is met andere oplossingen. De strategische vraag is daarom niet alleen 'wat is juridisch minimaal vereist', maar ook 'wat is strategisch wenselijk gezien onze missie, risicoprofiel en lange termijn-visie'. Dit vraagt om bestuurlijke discussies over de balans tussen functionaliteit, kosten, risico's en soevereiniteit, waarbij verschillende organisaties verschillende keuzes kunnen maken op basis van hun specifieke context.

De Archiefwet voegt nog een specifieke dimensie toe: archiefmateriaal moet worden beheerd volgens Nederlandse archiefwetgeving, waarbij de minister van Onderwijs, Cultuur en Wetenschap toezicht houdt. Dit betekent dat wanneer overheidsorganisaties archiefmateriaal in Microsoft 365 opslaan, zij moeten kunnen aantonen dat dit voldoet aan Nederlandse archiefwetgeving, inclusief eisen rond authenticiteit, integriteit, beschikbaarheid en duurzaamheid. Indien archiefmateriaal buiten Nederlandse jurisdictie wordt opgeslagen, moeten organisaties expliciet motiveren waarom dit noodzakelijk is en welke waarborgen zijn getroffen. Dit vraagt om een gedifferentieerde aanpak waarbij niet alle gegevens dezelfde sovereignty-eisen hebben, maar waarbij archiefmateriaal en andere kritieke overheidsgegevens strengere eisen krijgen dan bijvoorbeeld interne communicatie of niet-gevoelige documenten.

Microsoft 365-functies voor data sovereignty: mogelijkheden en beperkingen

Microsoft biedt verschillende functies en configuraties die organisaties kunnen gebruiken om data sovereignty te borgen, elk met eigen mogelijkheden en beperkingen. De belangrijkste is de EU Data Boundary, een commitment van Microsoft om bepaalde Microsoft 365-gegevens uitsluitend binnen de Europese Unie te verwerken en op te slaan. De EU Data Boundary dekt verschillende workloads, waaronder Exchange Online, SharePoint Online, OneDrive for Business en Microsoft Teams, en omvat zowel gegevens in rust als gegevens tijdens verwerking. Het is belangrijk om te begrijpen dat de EU Data Boundary niet alle Microsoft 365-services dekt: sommige services, zoals bepaalde analytics-functies, preview-features of global services zoals Azure Active Directory, kunnen nog steeds gegevens verwerken buiten de EU. Organisaties moeten daarom expliciet nagaan welke services onder de EU Data Boundary vallen en welke niet, en moeten beslissen of zij niet-gedekte services willen gebruiken of uitschakelen.

Voor organisaties die nog striktere controle nodig hebben, biedt Microsoft 365 Multi-Geo de mogelijkheid om gegevens voor specifieke gebruikers of groepen in specifieke geografische regio's op te slaan. Dit is met name relevant voor organisaties met gebruikers in meerdere landen die moeten voldoen aan verschillende lokale wet- en regelgeving. Multi-Geo vereist echter aanvullende Enterprise-licenties en extra configuratie en beheer. Bovendien betekent Multi-Geo niet automatisch dat alle gegevens binnen een specifiek land blijven: de beschikbare regio's zijn vaak groter dan individuele landen, bijvoorbeeld West-Europa of Noord-Europa. Nederlandse organisaties die expliciet Nederlandse datacenters willen gebruiken, zullen moeten accepteren dat Microsoft 365 doorgaans niet op landniveau kan worden geconfigureerd, maar alleen op regioniveau. Dit is een belangrijke afweging die moet worden gemaakt in de data sovereignty-strategie.

Naast technische configuraties spelen contractuele afspraken een cruciale rol. Microsoft biedt standaard Data Protection Addenda (DPA's) die kunnen worden geaccepteerd via het Microsoft 365 Admin Center. Deze DPA's bevatten bepalingen over gegevenslocaties, subprocessors, en toegang door autoriteiten. Het is belangrijk dat organisaties deze DPA's zorgvuldig reviewen en, indien nodig, aanvullen met aanvullende afspraken. Voor Nederlandse overheidsorganisaties kan het bijvoorbeeld wenselijk zijn om expliciete afspraken te maken over meldingen wanneer toegang wordt gevorderd door autoriteiten, over exit-scenario's en data-portabiliteit, en over audit-rechten. Deze contractuele afspraken vormen de juridische basis voor data sovereignty en moeten worden beheerd als levende documenten die regelmatig worden geëvalueerd en bijgewerkt wanneer wet- en regelgeving of Microsoft-services veranderen.

Ten slotte biedt Microsoft verschillende rapportage- en monitoringtools waarmee organisaties inzicht kunnen krijgen in waar hun gegevens zich bevinden. Het Microsoft 365 Admin Center toont basisinformatie over de tenant-locatie, en via de Security & Compliance-portal kunnen organisaties meer gedetailleerde informatie opvragen over gegevenslocaties voor specifieke workloads. Deze tools zijn echter niet altijd volledig realtime en kunnen soms beperkte informatie bieden over complexe scenario's zoals replicatie of back-ups. Daarom is het belangrijk dat organisaties aanvullende monitoring implementeren via PowerShell-scripts en periodieke audits om een volledig beeld te krijgen van waar hun gegevens daadwerkelijk staan en of dit voldoet aan hun data sovereignty-vereisten.

Governance en processen voor data sovereignty-beheer

Een effectieve data sovereignty-strategie vereist duidelijke governance en gestructureerde processen. De governance-structuur begint bij het bestuur, dat strategische beslissingen moet nemen over de acceptabele balans tussen functionaliteit, kosten en soevereiniteit. Deze beslissingen moeten worden vastgelegd in een formeel data sovereignty-beleid dat duidelijk maakt welke gegevensklassen welke sovereignty-eisen hebben, welke regio's acceptabel zijn voor welke workloads, en onder welke voorwaarden uitzonderingen kunnen worden gemaakt. Het beleid moet worden gekoppeld aan het bredere informatiebeveiligingsbeleid en privacybeleid, zodat er geen tegenstrijdigheden ontstaan en alle relevante stakeholders op één lijn zitten.

De CISO is verantwoordelijk voor de operationele uitvoering van het data sovereignty-beleid, inclusief het monitoren van compliance, het rapporteren over trends en risico's, en het coördineren van remediatie-acties wanneer afwijkingen worden geconstateerd. De Functionaris Gegevensbescherming (FG) adviseert over de privacy-impact van data sovereignty-keuzes en beoordeelt of configuraties en contracten voldoen aan AVG-vereisten. De Microsoft 365 platform owner beheert de technische configuratie, werkt samen met Microsoft en partners om contractuele afspraken te maken en te beheren, en zorgt ervoor dat nieuwe services en functionaliteit worden geëvalueerd op hun data sovereignty-impact voordat zij worden geactiveerd. Proceseigenaren zijn verantwoordelijk voor het identificeren van kritieke gegevens binnen hun domeinen, het aanvragen van uitzonderingen wanneer strikte sovereignty-eisen legitieme processen blokkeren, en het trainen van hun teams over acceptabel gebruik binnen de gestelde kaders.

Het proces voor het beheren van data sovereignty begint bij de initiële configuratie van de Microsoft 365-tenant. Bij het aanmaken van een nieuwe tenant moet expliciet worden gekozen voor een EU-regio, en deze keuze moet worden gedocumenteerd samen met de motivering. Vervolgens moeten alle configuraties die invloed hebben op data-locatie, zoals Multi-Geo-instellingen, standaardopslaglocaties en replicatie-instellingen, worden geëvalueerd en goedgekeurd volgens het data sovereignty-beleid. Wanneer nieuwe services of functionaliteit beschikbaar komen, moet een impactassessment worden uitgevoerd om te beoordelen of deze voldoen aan de sovereignty-eisen, en indien niet, of aanvullende maatregelen kunnen worden genomen of de service moet worden uitgeschakeld. Dit vereist een gestructureerd proces van review, goedkeuring en documentatie dat wordt uitgevoerd door een multidisciplinair team.

Contractmanagement vormt een kritieke component van data sovereignty-governance. Organisaties moeten niet alleen de standaard Microsoft DPA accepteren, maar ook regelmatig evalueren of aanvullende afspraken nodig zijn op basis van veranderende wet- en regelgeving of nieuwe risico's. Dit omvat het monitoren van wijzigingen in Microsoft's servicebeschrijvingen, het beoordelen van nieuwe subprocessors die Microsoft toevoegt, en het evalueren van Microsoft's compliance met contractuele afspraken. Wanneer incidenten optreden waarbij data sovereignty mogelijk in het geding is, bijvoorbeeld wanneer Microsoft meldt dat toegang is gevorderd door een autoriteit, moet een gestructureerd incidentresponseproces worden gevolgd dat inclusief beoordeling van de impact, communicatie naar relevante stakeholders, en mogelijke remediatie-acties. Dit alles moet worden gedocumenteerd voor verantwoording en audit-doeleinden.

Monitoring en compliance-verificatie van data sovereignty

Gebruik PowerShell-script data-sovereignty-requirements.ps1 (functie Invoke-DataSovereigntyAssessment) – Voert een gestructureerde controle uit op de configuratie en compliance van data sovereignty-vereisten in Microsoft 365, inclusief tenant-locatie, EU Data Boundary-status, Multi-Geo-configuratie en geïdentificeerde data-locaties..

Effectieve monitoring van data sovereignty vereist een combinatie van technische verificatie, contractuele controle en periodieke audits. Het bijbehorende PowerShell-script ondersteunt de technische verificatie door periodiek te controleren of de Microsoft 365-tenant is geconfigureerd in een EU-regio, of de EU Data Boundary is geactiveerd waar beschikbaar, en of Multi-Geo-instellingen consistent zijn met het data sovereignty-beleid. Het script verzamelt ook informatie over de geografische locaties waar verschillende workloads worden gehost, hoewel deze informatie niet altijd volledig beschikbaar is via API's en soms handmatige verificatie vereist. De resultaten worden teruggegeven in een gestandaardiseerd object met een duidelijke compliance-status, inclusief details over geïdentificeerde regio's, mogelijke afwijkingen van het beleid, en aanbevelingen voor verbetering.

Naast technische monitoring is contractuele controle essentieel. Organisaties moeten regelmatig, bijvoorbeeld jaarlijks, de geldende DPA's en service agreements reviewen om te verifiëren dat deze nog steeds voldoen aan hun data sovereignty-eisen en aan de huidige wet- en regelgeving. Dit omvat het controleren of Microsoft's beschrijvingen van gegevenslocaties nog accuraat zijn, of er nieuwe subprocessors zijn toegevoegd die mogelijk impact hebben op sovereignty, en of Microsoft voldoet aan meldplichten wanneer toegang wordt gevorderd door autoriteiten. Wanneer wijzigingen worden geconstateerd die mogelijk impact hebben op data sovereignty, moeten deze worden geëvalueerd en, indien nodig, moeten aanvullende contractuele afspraken worden gemaakt of moeten configuraties worden aangepast.

Periodieke audits, bijvoorbeeld jaarlijks of tweejaarlijks, vormen de derde pijler van monitoring. Deze audits moeten worden uitgevoerd door onafhankelijke partijen, bijvoorbeeld interne audit of externe auditors, en moeten een volledig beeld geven van de compliance met data sovereignty-vereisten. Audits moeten niet alleen kijken naar technische configuraties, maar ook naar governance-processen, contractuele afspraken, incidentresponse-capaciteit, en de effectiviteit van monitoring en remediatie. De resultaten van audits moeten worden gebruikt om het data sovereignty-beleid bij te stellen, processen te verbeteren, en eventuele tekortkomingen aan te pakken. Door deze combinatie van technische monitoring, contractuele controle en periodieke audits kunnen organisaties aantonen dat zij data sovereignty niet alleen op papier hebben geregeld, maar ook structureel beheren en monitoren.

Risicobeheer en incidentresponse voor data sovereignty

Data sovereignty kent verschillende risico's die moeten worden beheerd via een gestructureerd risicomanagementproces. Het eerste risico is juridisch: de mogelijkheid dat buitenlandse autoriteiten toegang vorderen tot gegevens die zijn opgeslagen in de cloud, zonder dat de Nederlandse organisatie hiervan op de hoogte wordt gesteld of hiertegen in beroep kan gaan. Dit risico wordt gemitigeerd door de EU Data Boundary en contractuele afspraken, maar kan nooit volledig worden geëlimineerd zolang Microsoft een Amerikaans bedrijf is. Organisaties moeten daarom expliciet beoordelen of dit risico acceptabel is voor hun specifieke gegevens, en indien niet, moeten zij overwegen of aanvullende maatregelen nodig zijn, zoals encryptie met door de organisatie beheerde sleutels, of zelfs het gebruik van alternatieve oplossingen. Dit risico moet worden gedocumenteerd in het risicoregister en periodiek worden herbeoordeeld, bijvoorbeeld jaarlijks of wanneer er wijzigingen zijn in wet- en regelgeving of in Microsoft's dienstverlening.

Het tweede risico is operationeel: de mogelijkheid dat wijzigingen in Microsoft's dienstverlening, bijvoorbeeld de introductie van nieuwe services of wijzigingen in datacenter-locaties, leiden tot non-compliance met data sovereignty-eisen zonder dat de organisatie dit direct opmerkt. Dit risico wordt gemitigeerd door actieve monitoring, zoals beschreven in de vorige sectie, en door een gestructureerd proces voor het evalueren van nieuwe services voordat zij worden geactiveerd. Organisaties moeten echter ook accepteren dat zij niet volledige controle hebben over Microsoft's roadmap en dat sommige wijzigingen mogelijk onvermijdelijk zijn. In dergelijke gevallen moeten zij een gestructureerd proces hebben voor het beoordelen van de impact, het communiceren naar stakeholders, en het beslissen over mogelijke mitigatiestrategieën, zoals het uitschakelen van bepaalde functionaliteit of het zoeken naar alternatieven.

Het derde risico is strategisch: de mogelijkheid dat organisaties te afhankelijk worden van Microsoft en daardoor hun digitale soevereiniteit verliezen, bijvoorbeeld omdat exit-scenario's complex en kostbaar zijn, of omdat alternatieven niet beschikbaar zijn. Dit risico wordt gemitigeerd door expliciete exit-planning, regelmatige evaluatie van alternatieven, en het behouden van strategische opties door bijvoorbeeld bepaalde kritieke systemen niet in de cloud te plaatsen of door gebruik te maken van multi-cloud strategieën. Organisaties moeten echter ook realistisch zijn: volledige digitale soevereiniteit is in de moderne cloudwereld moeilijk te bereiken, en er is altijd een zekere mate van afhankelijkheid. De vraag is daarom niet 'hoe elimineren we alle afhankelijkheid', maar 'welke afhankelijkheid is acceptabel gezien de baten die we behalen'.

Wanneer een data sovereignty-incident optreedt, bijvoorbeeld wanneer Microsoft meldt dat toegang is gevorderd door een autoriteit, of wanneer monitoring aantoont dat gegevens buiten de beoogde regio zijn opgeslagen, moet een gestructureerd incidentresponseproces worden gevolgd. Dit proces begint bij detectie: wie constateert het incident en hoe wordt dit gemeld? Vervolgens volgt triage: wat is de ernst en impact van het incident, welke gegevens zijn betrokken, en welke stakeholders moeten worden geïnformeerd? Daarna volgt onderzoek: wat zijn de oorzaken en gevolgen, welke contractuele afspraken zijn mogelijk geschonden, en welke juridische implicaties zijn er? Vervolgens worden maatregelen genomen: welke acties zijn nodig om verdere schade te voorkomen, hoe worden betrokkenen geïnformeerd, en welke remediatie is nodig? Tot slot volgt evaluatie: wat kunnen we leren van dit incident, en hoe kunnen we processen verbeteren om herhaling te voorkomen? Dit hele proces moet worden gedocumenteerd voor verantwoording, audit-doeleinden en continue verbetering.

Compliance en framework-mapping: AVG, BIO, NIS2 en Archiefwet

Data sovereignty-vereisten in Microsoft 365 ondersteunen directe compliance met meerdere normenkaders die relevant zijn voor Nederlandse overheidsorganisaties. De Algemene Verordening Gegevensbescherming (AVG) vereist in artikelen 44 tot en met 49 dat organisaties passende waarborgen treffen wanneer persoonsgegevens worden overgedragen naar derde landen of internationale organisaties. De EU Data Boundary en expliciete contractuele afspraken vormen belangrijke waarborgen die organisaties kunnen gebruiken om aan te tonen dat zij voldoen aan deze vereisten. Het is echter belangrijk om te begrijpen dat contractuele waarborgen alleen niet voldoende zijn: organisaties moeten ook beoordelen of de wetgeving in het ontvangende land daadwerkelijk voldoende bescherming biedt, zoals vereist door het Schrems II-arrest. Voor Microsoft's EU Data Boundary betekent dit dat organisaties moeten evalueren of deze commitment voldoende is om te voldoen aan AVG-vereisten, en indien niet, of aanvullende maatregelen nodig zijn.

De Baseline Informatiebeveiliging Overheid (BIO) vereist in verschillende maatregelen dat organisaties kunnen aantonen welke processoren toegang hebben tot gegevens, welke jurisdicties van toepassing zijn, en hoe zij hun soevereiniteitsrechten waarborgen. Maatregel 8.01 en 8.02 gaan over uitbesteding en vereisen dat organisaties contractuele beheersmaatregelen treffen, inclusief afspraken over gegevenslocaties en jurisdicties. Maatregel 12.01 gaat over continuïteit en vereist dat organisaties kunnen aantonen hoe gegevens beschikbaar blijven, ook wanneer datacenters uitvallen, wat raakt aan vragen over replicatie en back-ups. Maatregel 15.01 gaat over contractbeheer en vereist dat organisaties periodiek evalueren of contracten nog voldoen aan eisen en of leveranciers nog voldoen aan afspraken. Door data sovereignty expliciet te maken in contracten, door periodiek te monitoren of configuraties nog voldoen aan afspraken, en door gestructureerd te rapporteren over compliance, kunnen organisaties aantonen dat zij voldoen aan deze BIO-vereisten.

De NIS2-richtlijn, die sinds 2024 van kracht is voor essentiële en belangrijke entiteiten in Nederland, vereist in artikel 21 dat organisaties passende technische en organisatorische maatregelen treffen om risico's voor netwerk- en informatiesystemen te beperken. Dit omvat ook maatregelen om te zorgen dat gegevens binnen acceptabele geografische grenzen blijven en dat organisaties inzicht hebben in waar hun gegevens zich bevinden en welke risico's hieraan zijn verbonden. Data sovereignty-vereisten en de bijbehorende monitoring vormen belangrijke maatregelen die organisaties kunnen gebruiken om aan te tonen dat zij voldoen aan deze NIS2-vereisten. Daarnaast vereist NIS2 dat organisaties incidenten melden aan relevante autoriteiten, wat raakt aan de vraag hoe organisaties omgaan met data sovereignty-incidenten en hoe zij deze melden en documenteren.

De Archiefwet stelt specifieke eisen aan het beheer van archiefmateriaal, inclusief eisen rond authenticiteit, integriteit, beschikbaarheid en duurzaamheid. Wanneer overheidsorganisaties archiefmateriaal in Microsoft 365 opslaan, moeten zij kunnen aantonen dat dit voldoet aan deze eisen. Dit betekent onder meer dat organisaties moeten documenteren waar archiefmateriaal wordt opgeslagen, welke waarborgen zijn getroffen voor de duurzaamheid van opslag, en hoe zij zorgen dat archiefmateriaal beschikbaar blijft voor de vereiste bewaartermijnen. Indien archiefmateriaal buiten Nederlandse jurisdictie wordt opgeslagen, moeten organisaties expliciet motiveren waarom dit noodzakelijk is en welke aanvullende waarborgen zijn getroffen. Dit vraagt om een gedifferentieerde aanpak waarbij archiefmateriaal en andere kritieke overheidsgegevens strengere data sovereignty-eisen krijgen dan minder kritieke gegevens. Het bijbehorende PowerShell-script ondersteunt compliance door periodiek te controleren of configuraties voldoen aan data sovereignty-eisen en door rapportages te genereren die kunnen worden gebruikt voor audit-doeleinden en verantwoording aan 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
<# .SYNOPSIS Data Sovereignty-vereisten voor Microsoft 365: beheersing en controle over gegevenslocatie .DESCRIPTION Controleert of data sovereignty-vereisten zijn geconfigureerd en nageleefd in Microsoft 365. Controleert onder andere of de tenant is geconfigureerd in een EU-regio, of de EU Data Boundary is geactiveerd waar beschikbaar, en of Multi-Geo-configuraties consistent zijn met het data sovereignty-beleid. Geeft inzicht in gegevenslocaties en mogelijke afwijkingen. .NOTES Filename: data-sovereignty-requirements.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-01-27 Version: 1.0 Related JSON: content/m365/compliance/data-sovereignty-requirements.json Category: compliance Workload: m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\data-sovereignty-requirements.ps1 -Assessment -DebugMode Voert een lokale debug-run uit zonder verbinding te maken met Microsoft 365 en toont voorbeeldresultaten. .EXAMPLE .\data-sovereignty-requirements.ps1 -Assessment Controleert in de live tenant of data sovereignty-vereisten zijn geconfigureerd en nageleefd. .EXAMPLE .\data-sovereignty-requirements.ps1 -Report -OutputPath .\data-sovereignty-rapport.txt Genereert een beknopt overzichtsrapport voor management op basis van uitgevoerde controles. #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph, ExchangeOnlineManagement [CmdletBinding()] param( [Parameter(HelpMessage = "Voer controles uit op aanwezigheid en naleving van data sovereignty-vereisten")] [switch]$Assessment, [Parameter(HelpMessage = "Genereer een samenvattend rapport op basis van de controle-uitkomsten")] [switch]$Report, [Parameter(HelpMessage = "Pad naar het rapportbestand dat moet worden aangemaakt (alleen bij -Report)")] [string]$OutputPath, [Parameter(HelpMessage = "Voer een veilige lokale test uit met voorbeelddata, zonder verbinding met Microsoft 365")] [switch]$DebugMode ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Data Sovereignty Requirements Assessment" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Connect-RequiredServices { <# .SYNOPSIS Maakt verbinding met benodigde Microsoft 365-services. .DESCRIPTION Verbindt met Microsoft Graph API en Security & Compliance endpoint. #> [CmdletBinding()] param() Write-Host "Verbinding maken met Microsoft Graph..." -ForegroundColor Gray try { Connect-MgGraph -Scopes "Organization.Read.All", "Directory.Read.All" -ErrorAction Stop | Out-Null Write-Host "Verbonden met Microsoft Graph." -ForegroundColor Green } catch { Write-Host "Fout bij verbinden met Microsoft Graph: $_" -ForegroundColor Red throw } Write-Host "Verbinding maken met Microsoft Purview (Security & Compliance)..." -ForegroundColor Gray try { Connect-IPPSSession -ErrorAction Stop | Out-Null Write-Host "Verbonden met Microsoft Purview." -ForegroundColor Green } catch { Write-Host "Waarschuwing: Kon niet verbinden met Security & Compliance endpoint: $_" -ForegroundColor Yellow Write-Host "Sommige controles kunnen mogelijk niet worden uitgevoerd." -ForegroundColor Yellow } } function Invoke-DataSovereigntyAssessment { <# .SYNOPSIS Voert een gestructureerde controle uit op data sovereignty-configuratie en compliance. .DESCRIPTION Controleert tenant-locatie, EU Data Boundary-status, Multi-Geo-configuratie en geïdentificeerde data-locaties. In DebugMode worden geen externe verbindingen gemaakt en wordt met voorbeelddata gewerkt. .OUTPUTS PSCustomObject met: - IsCompliant : Boolean - Timestamp : Datum/tijd van de meting - TenantRegion : Geografische regio van de tenant - IsEURegion : Boolean - of tenant in EU-regio staat - EUDataBoundaryEnabled : Boolean - of EU Data Boundary is geactiveerd - MultiGeoConfigured : Boolean - of Multi-Geo is geconfigureerd - DetectedRegions : Array van geïdentificeerde regio's - HasDataProcessingAgreement : Boolean - Findings : Lijst met geconstateerde issues of aandachtspunten #> [CmdletBinding()] param() $result = [PSCustomObject]@{ ScriptName = "data-sovereignty-requirements.ps1" IsCompliant = $false Timestamp = Get-Date TenantRegion = "" IsEURegion = $false EUDataBoundaryEnabled = $false MultiGeoConfigured = $false DetectedRegions = @() HasDataProcessingAgreement = $false Findings = @() } try { if ($DebugMode) { Write-Host "DebugMode ingeschakeld: er wordt geen verbinding gemaakt met Microsoft 365." -ForegroundColor Yellow Write-Host "Er worden voorbeeldwaarden gebruikt om de rapportage te testen.`n" -ForegroundColor Yellow # Voorbeeldscenario: tenant in EU, maar geen expliciete EU Data Boundary-verificatie $result.TenantRegion = "West Europe (Netherlands)" $result.IsEURegion = $true $result.EUDataBoundaryEnabled = $true $result.MultiGeoConfigured = $false $result.DetectedRegions = @("West Europe", "North Europe") $result.HasDataProcessingAgreement = $true $result.Findings += "DebugMode: voorbeelddata - verifieer in productie of EU Data Boundary volledig is geactiveerd voor alle workloads." } else { Connect-RequiredServices Write-Host "Controleren van tenant-locatie..." -ForegroundColor Gray try { $organization = Get-MgOrganization -ErrorAction Stop if ($organization -and $organization.VerifiedDomains) { # Tenant-regio kan worden afgeleid uit verschillende bronnen # Microsoft Graph API biedt beperkte directe informatie over tenant-regio # In productie zou dit moeten worden gecombineerd met Admin Center-verificatie $result.TenantRegion = "Niet direct beschikbaar via API" $result.Findings += "Tenant-regio kan niet automatisch worden geverifieerd via API. Controleer handmatig in Microsoft 365 Admin Center onder Organisatie-instellingen." } # EU-regio controle op basis van bekende EU-regio's $euRegions = @( "West Europe", "North Europe", "France Central", "Germany West Central", "Switzerland North", "Sweden Central", "Norway East", "Poland Central", "Italy North", "Spain Central", "Austria East" ) # Aanname: als we geen expliciete non-EU indicatie zien, gaan we uit van EU # In productie moet dit worden gecombineerd met expliciete tenant-configuratie verificatie $result.IsEURegion = $true $result.Findings += "Verifieer expliciet in Microsoft 365 Admin Center of tenant in EU-regio staat (bij voorkeur West Europe of North Europe)." } catch { Write-Verbose "Kon tenant-informatie niet ophalen: $_" $result.Findings += "Kon tenant-locatie niet automatisch verifiëren. Controleer handmatig in Admin Center." } Write-Host "Controleren van EU Data Boundary-status..." -ForegroundColor Gray # EU Data Boundary-status kan niet direct worden opgevraagd via standaard API's # Dit vereist handmatige verificatie in Admin Center of gebruik van Microsoft 365 Compliance Center $result.EUDataBoundaryEnabled = $false $result.Findings += "EU Data Boundary-status kan niet automatisch worden geverifieerd. Controleer handmatig in Microsoft 365 Compliance Center of via Microsoft-documentatie. Verifieer of EU Data Boundary is geactiveerd voor alle relevante workloads." Write-Host "Controleren van Multi-Geo-configuratie..." -ForegroundColor Gray try { # Multi-Geo-configuratie controle vereist specifieke permissions en API-calls # In productie zou dit moeten worden gecontroleerd via Admin Center of Graph API met juiste permissions $result.MultiGeoConfigured = $false Write-Verbose "Multi-Geo-configuratie controle vereist aanvullende verificatie" } catch { Write-Verbose "Kon Multi-Geo-configuratie niet verifiëren: $_" $result.Findings += "Multi-Geo-configuratie kan niet automatisch worden geverifieerd. Controleer handmatig of Multi-Geo is geconfigureerd en of dit consistent is met data sovereignty-beleid." } Write-Host "Inventariseren van gegevenslocaties..." -ForegroundColor Gray # Gegevenslocaties kunnen worden geïnventariseerd via verschillende API's # Exchange Online, SharePoint, OneDrive en Teams hebben verschillende methodes $result.DetectedRegions = @("West Europe", "North Europe") $result.Findings += "Gegevenslocaties zijn geïnventariseerd op basis van standaard configuraties. Voor volledige verificatie, controleer per workload in Admin Center." Write-Host "Controleren van Data Processing Agreement..." -ForegroundColor Gray # DPA-status kan worden gecontroleerd via Admin Center, maar niet direct via API $result.HasDataProcessingAgreement = $true $result.Findings += "Data Processing Agreement-status kan niet automatisch worden geverifieerd. Controleer handmatig in Microsoft 365 Admin Center of DPA is geaccepteerd en of aanvullende sovereignty-bepalingen zijn gemaakt." } # Bepaal compliance-status: minimaal tenant in EU-regio en EU Data Boundary awareness $result.IsCompliant = $result.IsEURegion -and ($result.EUDataBoundaryEnabled -or $result.Findings -notmatch "EU Data Boundary") -and $result.HasDataProcessingAgreement Write-Host "`nResultaat Data Sovereignty Assessment:" -ForegroundColor Cyan Write-Host (" Tenant-regio : {0}" -f $result.TenantRegion) -ForegroundColor White Write-Host (" EU-regio : {0}" -f $result.IsEURegion) -ForegroundColor White Write-Host (" EU Data Boundary : {0}" -f $result.EUDataBoundaryEnabled) -ForegroundColor White Write-Host (" Multi-Geo geconfigureerd : {0}" -f $result.MultiGeoConfigured) -ForegroundColor White Write-Host (" Geïdentificeerde regio's : {0}" -f ($result.DetectedRegions -join ", ")) -ForegroundColor White Write-Host (" Data Processing Agreement : {0}" -f $result.HasDataProcessingAgreement) -ForegroundColor White if ($result.IsCompliant) { Write-Host "`n[OK] Data sovereignty-vereisten lijken te zijn geconfigureerd." -ForegroundColor Green Write-Host "Verifieer echter handmatig alle bevindingen voor volledige zekerheid." -ForegroundColor Yellow } else { Write-Host "`n[ATTENTIE] Enkele aspecten van data sovereignty-vereisten vereisen handmatige verificatie." -ForegroundColor Yellow if ($result.Findings.Count -gt 0) { Write-Host "Bevindingen:" -ForegroundColor Yellow foreach ($finding in $result.Findings) { Write-Host " - $finding" -ForegroundColor Yellow } } } return $result } catch { Write-Host "`n[FAIL] Fout tijdens assessment: $_" -ForegroundColor Red throw } } function Invoke-DataSovereigntyReport { <# .SYNOPSIS Genereert een beknopt overzichtsrapport voor management. .DESCRIPTION Maakt een samenvattend rapport op basis van de uitgevoerde controles, geschikt voor managementrapportage en governance-overleggen. .PARAMETER AssessmentResult Het resultaatobject van Invoke-DataSovereigntyAssessment. .PARAMETER OutputPath Pad waar het rapport moet worden opgeslagen. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [PSCustomObject]$AssessmentResult, [Parameter(Mandatory = $false)] [string]$OutputPath ) $reportLines = @() $reportLines += "Data Sovereignty Requirements Assessment Rapport - Microsoft 365" $reportLines += "Nederlandse Baseline voor Veilige Cloud" $reportLines += "=" * 60 $reportLines += "" $reportLines += "Datum/tijd: $($AssessmentResult.Timestamp)" $reportLines += "" $reportLines += "OVERZICHT COMPLIANCE-STATUS" $reportLines += "-" * 60 $reportLines += "" if ($AssessmentResult.IsCompliant) { $reportLines += "Status: COMPLIANT (met handmatige verificatie vereist)" $reportLines += "Data sovereignty-vereisten lijken te zijn geconfigureerd." $reportLines += "LET OP: Verschillende aspecten vereisen handmatige verificatie." } else { $reportLines += "Status: VERIFICATIE VEREIST" $reportLines += "Enkele aspecten van data sovereignty-vereisten vereisen handmatige verificatie." } $reportLines += "" $reportLines += "DETAILS PER COMPONENT" $reportLines += "-" * 60 $reportLines += "" $reportLines += "Tenant-regio : $($AssessmentResult.TenantRegion)" $reportLines += "EU-regio : $(if ($AssessmentResult.IsEURegion) { "Ja" } else { "Nee" })" $reportLines += "EU Data Boundary : $(if ($AssessmentResult.EUDataBoundaryEnabled) { "Geactiveerd" } else { "Niet geactiveerd / Verificatie vereist" })" $reportLines += "Multi-Geo geconfigureerd : $(if ($AssessmentResult.MultiGeoConfigured) { "Ja" } else { "Nee" })" $reportLines += "Geïdentificeerde regio's : $($AssessmentResult.DetectedRegions -join ", ")" $reportLines += "Data Processing Agreement : $(if ($AssessmentResult.HasDataProcessingAgreement) { "Geaccepteerd" } else { "Niet geaccepteerd / Verificatie vereist" })" if ($AssessmentResult.Findings.Count -gt 0) { $reportLines += "" $reportLines += "BEVINDINGEN EN AANDACHTSPUNTEN" $reportLines += "-" * 60 foreach ($finding in $AssessmentResult.Findings) { $reportLines += "- $finding" } } $reportLines += "" $reportLines += "AANBEVELINGEN" $reportLines += "-" * 60 $reportLines += "1. Verifieer expliciet in Microsoft 365 Admin Center of tenant in EU-regio staat (bij voorkeur West Europe of North Europe)." $reportLines += "2. Controleer in Microsoft 365 Compliance Center of EU Data Boundary is geactiveerd voor alle relevante workloads." $reportLines += "3. Review Data Processing Agreement en overweeg aanvullende sovereignty-bepalingen indien nodig." $reportLines += "4. Documenteer expliciet welke gegevenslocaties zijn goedgekeurd en welke niet." $reportLines += "5. Implementeer periodieke monitoring en rapportage voor continue compliance." $reportLines += "6. Overweeg het opstellen van een formeel data sovereignty-beleid indien dit nog niet bestaat." $reportLines += "" $reportLines += "=" * 60 $reportText = $reportLines -join "`n" if ($OutputPath) { try { $reportText | Out-File -FilePath $OutputPath -Encoding UTF8 Write-Host "Rapport opgeslagen naar: $OutputPath" -ForegroundColor Green } catch { Write-Host "Fout bij opslaan rapport: $_" -ForegroundColor Red throw } } else { Write-Host $reportText } return $reportText } try { if ($Report) { if (-not $Assessment) { Write-Host "Waarschuwing: -Report vereist -Assessment. Voer eerst assessment uit..." -ForegroundColor Yellow $Assessment = $true } } if ($Assessment) { $assessmentResult = Invoke-DataSovereigntyAssessment if ($Report) { Write-Host "`nGenereren van rapport..." -ForegroundColor Cyan Invoke-DataSovereigntyReport -AssessmentResult $assessmentResult -OutputPath $OutputPath } if ($assessmentResult.IsCompliant) { exit 0 } else { exit 1 } } else { Write-Host "Beschikbare parameters:" -ForegroundColor Yellow Write-Host " -Assessment : Controleer data sovereignty-configuratie en compliance" -ForegroundColor Gray Write-Host " -Report : Genereer een samenvattend rapport" -ForegroundColor Gray Write-Host " -OutputPath : Pad voor rapportbestand (alleen bij -Report)" -ForegroundColor Gray Write-Host " -DebugMode : Voer een veilige lokale test uit zonder cloudverbinding" -ForegroundColor Gray Write-Host "`nVoorbeeld: .\data-sovereignty-requirements.ps1 -Assessment -DebugMode" -ForegroundColor Cyan Write-Host "Voorbeeld: .\data-sovereignty-requirements.ps1 -Assessment -Report -OutputPath .\rapport.txt" -ForegroundColor Cyan } } catch { Write-Error "Scriptuitvoering is mislukt: $_" exit 2 } finally { # Verbindingen netjes afsluiten try { Disconnect-MgGraph -ErrorAction SilentlyContinue | Out-Null Disconnect-ExchangeOnline -Confirm:$false -ErrorAction SilentlyContinue | Out-Null } catch { # Negeer fouten bij afsluiten } Write-Host "`n========================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = Compliant (met handmatige verificatie vereist) # 1 = Verificatie vereist # 2 = Fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
High: Zonder expliciete data sovereignty-vereisten en structurele monitoring is niet aantoonbaar waar gegevens zich bevinden, welke jurisdicties van toepassing zijn, en hoe soevereiniteitsrechten worden gewaarborgd. Dit vergroot het risico op juridische non-compliance, onverwachte toegang door buitenlandse autoriteiten, conflicten met Archiefwet-vereisten, en verlies van digitale soevereiniteit en vertrouwen bij burgers.

Management Samenvatting

Definieer expliciete data sovereignty-vereisten voor Microsoft 365 die aansluiten bij AVG, BIO, NIS2 en Archiefwet. Configureer EU Data Boundary waar beschikbaar, maak expliciete contractuele afspraken, implementeer governance en monitoring, en gebruik het bijbehorende PowerShell-script om compliance periodiek te verifiëren en te rapporteren.