💼 Management Samenvatting
Transparent Data Encryption (TDE) vormt de fundamentele beveiligingslaag voor alle Azure-databases door automatische versleuteling van data-at-rest zonder applicatiewijzigingen. Deze versleutelingstechnologie beschermt databasebestanden, transactielogs en backups tegen ongeautoriseerde toegang op opslagniveau en is verplicht onder AVG, PCI-DSS, ISO 27001 en andere compliance-frameworks voor Nederlandse overheidsorganisaties.
✓ SQL Managed Instance
✓ Azure Database for PostgreSQL
✓ Azure Cosmos DB
✓ Azure Database for MySQL
Onversleutelde databasebestanden op opslagniveau vormen een kritiek beveiligingsrisico waarbij aanvallers die toegang krijgen tot onderliggende opslagmedia complete databases kunnen lezen zonder databaseniveau authenticatie. Wanneer Transparent Data Encryption niet is ingeschakeld, zijn gestolen databasebestanden direct leesbaar door aanvallers die fysieke toegang verkrijgen tot opslagmedia, gecompromitteerde Azure Storage-accounts, of insider-bedreigingen bij cloudproviders. Databasebackups die worden opgeslagen in Azure Storage zijn toegankelijk voor aanvallers die opslagaccount-sleutels compromitteren, wat een veelvoorkomende aanvalsvector is bij verkeerd geconfigureerde opslagaccounts. Transactielogbestanden bevatten gevoelige data in onversleutelde tekst inclusief queries met persoonsgegevens, wat AVG-schendingen oplevert bij lekkage. Deze risico's resulteren in compliance-schendingen met vrijwel alle moderne frameworks: AVG (GDPR) Artikel 32 vereist passende technische maatregelen waaronder versleuteling van persoonsgegevens bij rust, PCI-DSS v4.0 Requirement 3.5 verplicht versleuteling van alle opgeslagen kaarthouderdata, ISO 27001 controle A.10.1.1 eist cryptografische maatregelen voor gegevensbescherming, NIS2 Artikel 21 verplicht versleuteling voor kritieke informatiesystemen, en BIO overheidsrichtlijnen vereisen versleuteling bij rust voor overheidssystemen. AVG-boetes kunnen oplopen tot €20 miljoen of 4% van de wereldwijde jaaromzet bij datalekken zonder adequate versleuteling. TDE elimineert deze risico's door real-time versleuteling waarbij databasebestanden automatisch worden versleuteld voordat ze naar schijf worden geschreven, transactielogs automatisch worden versleuteld om query-lekkage te voorkomen, alle databasebackups automatisch versleuteld worden opgeslagen, en tijdelijke databases automatisch worden versleuteld. Cruciaal is dat deze versleuteling en ontsleuteling volledig transparant is voor applicaties zonder enige code-wijzigingen, waardoor legacy-applicaties zonder refactoring kunnen worden beschermd.
Connection:
Connect-AzAccountRequired Modules: Az.Accounts, Az.Sql, Az.PostgreSql, Az.CosmosDB
Implementatie
Deze maatregel biedt een overzicht van Transparent Data Encryption (TDE) implementatie voor alle Azure-databaseservices, inclusief Azure SQL Database, SQL Managed Instance, Azure Database for PostgreSQL, Azure Cosmos DB en Azure Database for MySQL. TDE is een versleutelingstechnologie die data-at-rest beschermt door databasebestanden, transactielogs en backups automatisch te versleutelen op opslagniveau zonder dat applicaties wijzigingen nodig hebben. De versleuteling werkt transparant op het niveau van de database-engine waarbij data automatisch wordt versleuteld voordat deze naar schijf wordt geschreven en automatisch wordt ontsleuteld bij leesoperaties. Voor Azure SQL Database en SQL Managed Instance is TDE standaard ingeschakeld voor nieuwe databases sinds 2017, maar oudere databases kunnen nog onversleuteld zijn en vereisen expliciete activering. Azure Database for PostgreSQL ondersteunt versleuteling via Azure Storage-versleuteling en kan worden geconfigureerd met Customer-Managed Keys via Azure Key Vault. Azure Cosmos DB versleutelt automatisch alle data-at-rest met Microsoft-Managed Keys, en ondersteunt Customer-Managed Keys voor organisaties met strikte data sovereignty-vereisten. Azure Database for MySQL biedt versleuteling via Azure Storage-versleuteling met de mogelijkheid om Customer-Managed Keys te gebruiken. De prestatie-impact van TDE is minimaal met minder dan 3 tot 5 procent overhead volgens Microsoft-testing, en in moderne systemen is dit vrijwel niet merkbaar. TDE is een gratis functie voor de meeste Azure-databaseservices zonder extra kosten bovenop normale databaseprijzen, hoewel sommige services aanvullende kosten kunnen hebben voor Customer-Managed Keys. Deze versleuteling is een niet-onderhandelbare beveiligingsvereiste en absolute must-have voor alle productiedatabases met gevoelige data, persoonsgegevens, of compliance-vereisten.
Vereisten
Voor de implementatie van Transparent Data Encryption op Azure-databases zijn verschillende technische en organisatorische vereisten van toepassing. Deze vereisten variëren per databaseservice, maar delen gemeenschappelijke elementen die essentieel zijn voor een succesvolle implementatie. Het begrijpen van deze vereisten is cruciaal voordat met de implementatie wordt begonnen, omdat ontbrekende vereisten kunnen leiden tot vertragingen of implementatieproblemen.
De primaire technische vereiste is de beschikbaarheid van een Azure-databaseservice die TDE ondersteunt. Azure SQL Database en SQL Managed Instance bieden native TDE-ondersteuning met Microsoft-Managed Keys of Customer-Managed Keys via Azure Key Vault. Azure Database for PostgreSQL ondersteunt versleuteling via Azure Storage-versleuteling en kan worden geconfigureerd met Customer-Managed Keys. Azure Cosmos DB versleutelt automatisch alle data-at-rest met Microsoft-Managed Keys en ondersteunt Customer-Managed Keys voor extra controle. Azure Database for MySQL biedt versleuteling via Azure Storage-versleuteling met de mogelijkheid om Customer-Managed Keys te gebruiken. Organisaties moeten verifiëren dat hun databaseservices actief zijn en toegankelijk zijn via de Azure Portal of PowerShell voordat versleuteling wordt geactiveerd.
PowerShell 5.1 of hoger is vereist voor geautomatiseerde TDE-implementatie en monitoring. PowerShell biedt de command-line interface en scripting-capaciteiten die nodig zijn voor het uitvoeren van bulk-operaties op meerdere databases, het genereren van compliance-rapporten, en het automatiseren van verificatieprocessen. Organisaties die nog steeds PowerShell 5.0 of ouder gebruiken, moeten upgraden naar PowerShell 5.1 of PowerShell 7.x (PowerShell Core) om compatibiliteit te garanderen met de Azure PowerShell-modules. PowerShell 7.x wordt aanbevolen voor nieuwe implementaties omdat het cross-platform ondersteuning biedt en actief wordt onderhouden door Microsoft. De PowerShell-versie kan worden gecontroleerd via de Get-Host cmdlet of door $PSVersionTable te inspecteren.
De juiste Azure PowerShell-modules zijn essentieel voor TDE-implementatie en -beheer. Voor Azure SQL Database en SQL Managed Instance is de Az.Sql-module vereist, die alle cmdlets bevat voor het controleren van TDE-status, het inschakelen van versleuteling, en het monitoren van versleutelingsprocessen. Voor Azure Database for PostgreSQL is de Az.PostgreSql-module vereist, die cmdlets bevat voor het configureren van versleuteling en Customer-Managed Keys. Voor Azure Cosmos DB is de Az.CosmosDB-module vereist voor het beheren van versleutelingsinstellingen. Alle modules kunnen worden geïnstalleerd via Install-Module -Name
Implementatie
Gebruik PowerShell-script transparent-data-encryption.ps1 (functie Invoke-Remediation) – Schakelt TDE in voor alle Azure-databases zonder versleuteling.
Het implementeren van Transparent Data Encryption voor Azure-databases vereist een gestructureerde aanpak die begint met een grondige audit van de huidige versleutelingsstatus per databaseservice, gevolgd door het inschakelen van versleuteling voor databases die deze nog niet hebben, en eindigt met verificatie en compliance-rapportage. De implementatieprocedure varieert per databaseservice, maar volgt algemene principes die consistent zijn across alle Azure-databaseservices. Het is belangrijk om te begrijpen dat voor sommige services TDE standaard is ingeschakeld, terwijl andere services expliciete configuratie vereisen. Voor Azure SQL Database en SQL Managed Instance is TDE standaard ingeschakeld voor nieuwe databases die sinds 2017 zijn aangemaakt, wat betekent dat de meeste moderne databases al versleuteld zijn. De eerste fase van de implementatie bestaat uit een uitgebreide audit van alle Azure SQL Databases om te identificeren welke databases TDE hebben ingeschakeld en welke nog onversleuteld zijn. Deze audit begint met het inventariseren van alle Azure SQL Databases in alle abonnementen en resourcegroepen binnen de organisatie via PowerShell met de Get-AzSqlDatabase cmdlet. Voor elke geïdentificeerde database moet vervolgens de TDE-status worden gecontroleerd met de Get-AzSqlDatabaseTransparentDataEncryption cmdlet, waarbij de State-eigenschap moet zijn 'Enabled' voor versleutelde databases. Voor databases zonder versleuteling kan TDE worden ingeschakeld via de Azure Portal onder Security > Transparent data encryption of via PowerShell Set-AzSqlDatabaseTransparentDataEncryption -State Enabled. Het versleutelingsproces gebeurt op de achtergrond zonder downtime, waarbij de database volledig online blijft tijdens het gehele proces. Azure Database for PostgreSQL ondersteunt versleuteling via Azure Storage-versleuteling, die standaard is ingeschakeld voor alle PostgreSQL-servers. Deze versleuteling gebruikt Microsoft-Managed Keys en beschermt alle data-at-rest inclusief databasebestanden, backups en transactielogs. Voor organisaties die Customer-Managed Keys willen gebruiken, kan versleuteling worden geconfigureerd tijdens het aanmaken van de PostgreSQL-server of via Azure Portal onder Security > Data encryption. De configuratie vereist een Azure Key Vault met een versleutelingssleutel en de juiste toegangsbeleid voor de PostgreSQL-server. Het is belangrijk om te realiseren dat versleuteling met Customer-Managed Keys alleen kan worden geconfigureerd tijdens het aanmaken van de server en niet kan worden gewijzigd nadat de server is aangemaakt. Organisaties die Customer-Managed Keys willen gebruiken, moeten daarom zorgvuldig plannen voordat PostgreSQL-servers worden aangemaakt. Azure Cosmos DB versleutelt automatisch alle data-at-rest met Microsoft-Managed Keys zonder enige configuratie vereist. Deze versleuteling is altijd actief en kan niet worden uitgeschakeld, wat een belangrijke beveiligingskenmerk is. Voor organisaties die Customer-Managed Keys willen gebruiken voor extra controle over versleutelingssleutels, kan versleuteling worden geconfigureerd via Azure Portal onder Features > Encryption at rest of via PowerShell met de Set-AzCosmosDBAccount cmdlet. De configuratie vereist een Azure Key Vault met een versleutelingssleutel en de juiste toegangsbeleid voor het Cosmos DB-account. Het is belangrijk om te realiseren dat het wijzigen van versleutelingsinstellingen voor een bestaand Cosmos DB-account kan leiden tot tijdelijke service-onderbrekingen, en daarom moet dit zorgvuldig worden gepland. Azure Database for MySQL ondersteunt versleuteling via Azure Storage-versleuteling, die standaard is ingeschakeld voor alle MySQL-servers. Deze versleuteling gebruikt Microsoft-Managed Keys en beschermt alle data-at-rest inclusief databasebestanden, backups en transactielogs. Voor organisaties die Customer-Managed Keys willen gebruiken, kan versleuteling worden geconfigureerd tijdens het aanmaken van de MySQL-server of via Azure Portal onder Security > Data encryption. De configuratie vereist een Azure Key Vault met een versleutelingssleutel en de juiste toegangsbeleid voor de MySQL-server. Net als bij PostgreSQL kan versleuteling met Customer-Managed Keys alleen worden geconfigureerd tijdens het aanmaken van de server en niet kan worden gewijzigd nadat de server is aangemaakt. De totale implementatietijd voor de audit- en activeringsfase bedraagt ongeveer 30 tot 60 minuten voor de meeste organisaties, afhankelijk van het aantal databaseservices en databases. Deze tijd omvat het inventariseren van alle databases, het controleren van de versleutelingsstatus per service, het inschakelen van versleuteling voor niet-versleutelde databases, en het genereren van compliance-rapporten. De daadwerkelijke versleuteling van databases gebeurt op de achtergrond zonder impact op de operationele activiteiten voor de meeste services, wat betekent dat organisaties niet hoeven te wachten tot het versleutelingsproces is voltooid voordat ze verder kunnen gaan met andere taken. De kosten van TDE-implementatie zijn minimaal wanneer Microsoft-Managed Keys worden gebruikt, omdat TDE een gratis functie is voor de meeste Azure-databaseservices zonder extra Azure-kosten bovenop de normale databaseprijzen. De performance-impact van TDE is ook minimaal, met minder dan 5 procent overhead in de meeste scenario's, en vaak zelfs minder dan 3 procent in moderne systemen met hardware-acceleratie voor AES-versleuteling.
Monitoring en Controle
Gebruik PowerShell-script transparent-data-encryption.ps1 (functie Invoke-Monitoring) – Controleert versleutelingsstatus voor alle Azure-databases.
Het continu monitoren van Transparent Data Encryption compliance is essentieel voor het waarborgen van databeveiliging en het voldoen aan regelgevingsvereisten. Een proactieve monitoringstrategie voorkomt dat databases onversleuteld blijven en zorgt ervoor dat nieuwe databases automatisch worden beveiligd. Deze monitoringaanpak omvat meerdere lagen van controle, van geautomatiseerde policy's tot periodieke handmatige verificaties, en vormt de basis voor een robuuste beveiligingspostuur across alle Azure-databaseservices. Azure Policy biedt de eerste verdedigingslinie voor TDE-compliance monitoring. Door aangepaste Azure Policies te implementeren die automatisch alle Azure-databases controleren op versleutelingsstatus, kunnen organisaties real-time inzicht krijgen in hun encryptie-compliance. Deze policies kunnen worden geconfigureerd per databaseservice: voor Azure SQL Database kan een policy worden gemaakt die Get-AzSqlDatabaseTransparentDataEncryption gebruikt om de TDE-status te verifiëren, voor Azure Database for PostgreSQL kan een policy worden gemaakt die de versleutelingsinstellingen controleert, en voor Azure Cosmos DB kan een policy worden gemaakt die verifieert dat versleuteling actief is. Deze policies evalueren continu alle databases in alle abonnementen en resourcegroepen, waardoor er geen databases buiten de controle vallen. Implementatie gebeurt via Azure Policy definitie die de juiste cmdlets gebruikt om de versleutelingsstatus te verifiëren, en kan worden gekoppeld aan Azure Monitor voor geautomatiseerde rapportage en alerting. Microsoft Defender voor Cloud speelt een cruciale rol in de continue monitoring van TDE-implementaties across alle Azure-databaseservices. Deze service biedt ingebouwde security recommendations die specifiek versleutelingscompliance monitoren en prioriteren op basis van risiconiveau. Defender voor Cloud identificeert automatisch databases zonder versleuteling en classificeert deze als hoge prioriteit security findings. De service genereert gedetailleerde compliance-rapporten die kunnen worden gebruikt voor interne audits en externe certificeringen. Bovendien integreert Defender voor Cloud met Azure Policy om een gecombineerde monitoringaanpak te bieden waarbij zowel policy-compliance als security posture worden geëvalueerd. Organisaties kunnen deze recommendations configureren om automatisch te escaleren naar security teams via email, Microsoft Teams, of ServiceNow integraties. Kwartaalcontroles vormen een essentiële aanvulling op geautomatiseerde monitoring. Deze periodieke handmatige verificaties zorgen ervoor dat alle databases, inclusief die welke mogelijk buiten de scope van geautomatiseerde tools vallen, worden gecontroleerd. Tijdens deze controles worden alle Azure-databases in de organisatie geïnventariseerd en geverifieerd op versleutelingsstatus per service. Dit proces omvat het uitvoeren van een volledige scan met PowerShell-scripts die alle databases in alle abonnementen doorlopen, het genereren van een compliance-rapport dat de versleutelingsstatus per database en service documenteert, en het identificeren van eventuele afwijkingen die aanvullende actie vereisen. Deze kwartaalcontroles dienen ook als auditbewijs voor externe certificeringen en compliance-verificaties, waarbij gedocumenteerde bewijzen worden opgeslagen voor een retentieperiode van minimaal zeven jaar. Voor nieuwe databases is een geautomatiseerd verificatieproces binnen 24 uur na creatie cruciaal. Wanneer een nieuwe Azure-database wordt aangemaakt, moet deze automatisch worden gecontroleerd op versleutelingsstatus. Hoewel versleuteling standaard is ingeschakeld voor de meeste moderne databaseservices, kunnen configuratiefouten of handmatige wijzigingen ertoe leiden dat versleuteling wordt uitgeschakeld of niet correct is geconfigureerd. Een geautomatiseerd proces dat binnen 24 uur na database-creatie wordt uitgevoerd, identificeert dergelijke afwijkingen onmiddellijk en kan automatische remediatie activeren. Dit proces kan worden geïmplementeerd via Azure Automation runbooks die worden getriggerd door Event Grid events wanneer nieuwe databases worden aangemaakt, of via Azure Functions die periodiek alle databases scannen en nieuwe databases identificeren die nog niet zijn geverifieerd. De monitoringstrategie moet ook aandacht besteden aan de versleutelingssleutelconfiguratie voor organisaties die Customer-Managed Keys gebruiken. Monitoring moet verifiëren dat sleutels actief zijn, dat toegangsbeleid correct is geconfigureerd, en dat sleutelrotatie correct wordt uitgevoerd volgens organisatiebeleid. Voor Microsoft-Managed Keys is deze monitoring minder kritiek, maar organisaties moeten nog steeds verifiëren dat de standaardversleuteling actief blijft. Azure Key Vault monitoring kan worden geïntegreerd met Azure Monitor om waarschuwingen te genereren wanneer sleutels worden gewijzigd, verwijderd, of wanneer toegangsproblemen worden gedetecteerd. Performance monitoring vormt een belangrijk onderdeel van de TDE-monitoringstrategie. Hoewel TDE minimale performance-impact heeft, moeten organisaties de databaseprestaties monitoren na TDE-implementatie om eventuele problemen vroegtijdig te identificeren. Azure Monitor en service-specifieke analytics tools bieden gedetailleerde inzichten in queryprestaties, I/O-statistieken en resourcegebruik, waardoor organisaties kunnen verifiëren dat TDE geen negatieve impact heeft op applicatieprestaties. Deze monitoring is vooral belangrijk tijdens de initiële versleutelingsfase van grote databases, waarbij I/O-intensieve operaties kunnen optreden. Rapportage en documentatie zijn essentieel voor compliance en auditing. Alle monitoringactiviteiten moeten worden gedocumenteerd in compliance-rapporten die regelmatig worden gegenereerd en opgeslagen. Deze rapporten moeten de versleutelingsstatus van alle databases per service bevatten, eventuele afwijkingen documenteren, en de genomen remediatieacties beschrijven. Voor externe audits en certificeringen zijn deze rapporten onmisbaar en moeten ze beschikbaar zijn voor een periode die overeenkomt met de compliancevereisten van de organisatie, typisch minimaal zeven jaar voor financiële en overheidsorganisaties.
Compliance en Auditing
Transparent Data Encryption voor Azure-databases is een fundamentele vereiste voor naleving van vrijwel alle moderne cybersecurity- en privacyregelgeving. Deze versleutelingstechnologie vormt de basis voor databeveiliging en is expliciet of impliciet vereist door internationale standaarden, Europese regelgeving en Nederlandse overheidsrichtlijnen. Organisaties die Azure-databases gebruiken voor het verwerken van gevoelige gegevens, persoonsgegevens of financiële informatie, moeten TDE implementeren om te voldoen aan hun compliance-verplichtingen. De CIS Azure Foundations Benchmark v3.0.0 controle 4.1.3 vereist expliciet dat Transparent Data Encryption is ingeschakeld voor alle Azure SQL Databases. Deze controle is geclassificeerd als Level 1, wat betekent dat het een fundamentele beveiligingsmaatregel is die door alle organisaties moet worden geïmplementeerd, ongeacht hun grootte of sector. De CIS Benchmark wordt wereldwijd erkend als een best practice framework voor cloudbeveiliging, en naleving van deze controle is vaak een vereiste voor cloud security certificeringen. Organisaties die de CIS Benchmark volgen, moeten kunnen aantonen dat alle SQL Databases TDE hebben ingeschakeld, en dit moet worden geverifieerd tijdens periodieke compliance-audits. De controle vereist niet alleen dat TDE is ingeschakeld, maar ook dat de versleutelingssleutel correct wordt beheerd, waarbij Customer-Managed Keys worden aanbevolen voor organisaties met strikte data sovereignty-vereisten. ISO 27001:2022 controle A.10.1.1 verplicht organisaties om een beleid te hebben voor het gebruik van cryptografische controles. Deze controle vereist dat organisaties cryptografische maatregelen implementeren om de vertrouwelijkheid, authenticiteit en integriteit van informatie te beschermen. Transparent Data Encryption is een directe implementatie van deze controle voor data-at-rest versleuteling. Tijdens ISO 27001 certificering en surveillance audits moeten organisaties kunnen aantonen dat gevoelige data, inclusief database-inhoud, is versleuteld wanneer deze opgeslagen wordt. De audit zal verifiëren dat het cryptografische beleid is gedocumenteerd, dat versleuteling is geïmplementeerd volgens dit beleid, en dat de versleutelingssleutels correct worden beheerd. TDE met Microsoft-Managed Keys voldoet aan deze vereiste, maar organisaties met strikte controlevereisten kunnen kiezen voor Customer-Managed Keys om volledige controle over de sleutellevenscyclus te behouden. De NIS2-richtlijn, die in Nederland is geïmplementeerd via de Wet cybersecurity, vereist in Artikel 21 dat essentiële en belangrijke entiteiten passende maatregelen nemen voor cybersecurity risicobeheer, waaronder versleuteling van gegevens bij rust. Organisaties die onder de NIS2-richtlijn vallen, zoals energiebedrijven, financiële instellingen, gezondheidszorgorganisaties en digitale dienstverleners, moeten kunnen aantonen dat zij adequate technische maatregelen hebben geïmplementeerd om gegevens te beschermen. TDE vormt een essentiële component van deze maatregelen voor alle databases die gevoelige operationele gegevens bevatten. De Autoriteit Persoonsgegevens en andere toezichthouders kunnen tijdens inspecties verifiëren dat versleuteling correct is geïmplementeerd, en niet-naleving kan leiden tot aanzienlijke boetes en reputatieschade. De Algemene Verordening Gegevensbescherming (AVG), ook bekend als GDPR, vereist in Artikel 32 dat organisaties passende technische en organisatorische maatregelen nemen om persoonsgegevens te beveiligen. Versleuteling van persoonsgegevens bij rust wordt expliciet genoemd als een voorbeeld van een passende technische maatregel. Voor Azure-databases die persoonsgegevens bevatten, is TDE daarom niet alleen een best practice, maar een wettelijke vereiste. Organisaties die persoonsgegevens verwerken zonder adequate versleuteling, schenden de AVG en kunnen worden geconfronteerd met boetes tot €20 miljoen of 4% van de wereldwijde jaaromzet, afhankelijk van wat hoger is. Bovendien kunnen betrokkenen schadevergoeding eisen bij datalekken waarbij onversleutelde persoonsgegevens zijn gecompromitteerd. TDE-implementatie moet worden gedocumenteerd in het verwerkingsregister en kan worden gecontroleerd tijdens AVG-audits door de Autoriteit Persoonsgegevens. PCI-DSS v4.0 Requirement 3.5 verplicht organisaties die creditcardgegevens verwerken om alle opgeslagen cardholder data te versleutelen met sterke cryptografie. Voor Azure-databases die creditcardnummers, vervaldatums, of andere cardholder data bevatten, is TDE een absolute vereiste voor PCI-DSS compliance. Zonder versleuteling kunnen organisaties hun PCI-DSS certificering verliezen, wat betekent dat zij geen creditcardtransacties meer kunnen verwerken. PCI-DSS audits verifiëren niet alleen dat versleuteling is ingeschakeld, maar ook dat versleutelingssleutels correct worden beheerd, dat toegang tot versleutelde data is beperkt, en dat versleutelingsconfiguraties regelmatig worden gecontroleerd. TDE met sterke algoritmes zoals AES-256 voldoet aan de PCI-DSS vereisten voor sterke cryptografie. De BIO Baseline Informatiebeveiliging Overheid Thema 10.01.01 vereist dat Nederlandse overheidsorganisaties cryptografische maatregelen implementeren voor de bescherming van informatie. Overheidsorganisaties die Azure-databases gebruiken voor het verwerken van overheidsinformatie, moeten TDE implementeren om te voldoen aan deze BIO-vereiste. De BIO-richtlijnen worden gebruikt als basis voor informatiebeveiliging in de Nederlandse publieke sector, en naleving is verplicht voor alle overheidsorganisaties. Tijdens BIO-audits wordt gecontroleerd of cryptografische maatregelen correct zijn geïmplementeerd en of deze voldoen aan de vereisten voor de classificatie van de verwerkte informatie. Voor informatie met een hoog classificatieniveau, zoals vertrouwelijk of zeer vertrouwelijk, zijn aanvullende maatregelen zoals Customer-Managed Keys vaak vereist om volledige controle over de versleutelingssleutels te behouden. Naast deze specifieke compliance-vereisten, vormt TDE ook een best practice volgens andere belangrijke frameworks zoals NIST Cybersecurity Framework, waar versleuteling wordt aanbevolen als een fundamentele beveiligingscontrole, en de OWASP Top 10, die onversleutelde data als een kritiek beveiligingsrisico identificeert. Organisaties die werken met internationale partners of klanten moeten vaak kunnen aantonen dat zij voldoen aan deze breed erkende beveiligingsstandaarden. Voor compliance-audits en certificeringen is het essentieel dat organisaties gedocumenteerd bewijs kunnen leveren van TDE-implementatie across alle databaseservices. Dit bewijs omvat screenshots van de Azure Portal die de versleutelingsstatus tonen, PowerShell-script output die de versleutelingsstatus verifieert, compliance-rapporten die regelmatig worden gegenereerd, en documentatie van de versleutelingsconfiguratie inclusief sleutelbeheer. Deze documentatie moet worden bewaard voor een periode die overeenkomt met de compliancevereisten, typisch minimaal zeven jaar voor financiële en overheidsorganisaties. Automatische compliance-rapportage via Azure Policy en Microsoft Defender voor Cloud kan helpen bij het genereren en onderhouden van deze auditdocumentatie.
Remediatie
Gebruik PowerShell-script transparent-data-encryption.ps1 (functie Invoke-Remediation) – Herstelt versleutelingsstatus voor alle niet-versleutelde databases.
Remediatie van niet-versleutelde Azure-databases is een kritiek proces dat onmiddellijk moet worden uitgevoerd zodra een database zonder Transparent Data Encryption wordt gedetecteerd. Het inschakelen van TDE voor een bestaande database is een veilige operatie die kan worden uitgevoerd zonder downtime voor de meeste services, maar vereist wel zorgvuldige planning en monitoring om ervoor te zorgen dat de versleuteling succesvol wordt voltooid. Het remediatieproces varieert per databaseservice, maar volgt algemene principes die consistent zijn across alle services. De eerste stap in het remediatieproces is de identificatie van alle databases die TDE niet hebben ingeschakeld. Dit gebeurt via een uitgebreide scan van alle Azure-abonnementen en resourcegroepen binnen de organisatie per databaseservice. Voor Azure SQL Database en SQL Managed Instance gebruikt het PowerShell-script de Get-AzSqlDatabase cmdlet om alle databases te inventariseren en controleert vervolgens voor elke database de TDE-status met Get-AzSqlDatabaseTransparentDataEncryption. Voor Azure Database for PostgreSQL controleert het script de versleutelingsinstellingen via Get-AzPostgreSqlServer. Voor Azure Cosmos DB verifieert het script dat versleuteling actief is via Get-AzCosmosDBAccount. Databases zonder versleuteling worden geïdentificeerd en gedocumenteerd in een remediatielijst. Deze lijst moet worden geprioriteerd op basis van risiconiveau: databases met persoonsgegevens, financiële informatie of andere gevoelige data hebben de hoogste prioriteit en moeten onmiddellijk worden versleuteld. Databases in productieomgevingen hebben voorrang boven ontwikkel- of testomgevingen, hoewel ook deze omgevingen uiteindelijk moeten worden versleuteld. Voordat TDE wordt ingeschakeld voor een productiedatabase, is het essentieel om een volledige backup te maken en te verifiëren dat deze backup succesvol is. Hoewel TDE-inschakeling geen downtime veroorzaakt voor de meeste services en de database volledig online blijft tijdens het versleutelingsproces, is een recente backup een belangrijke veiligheidsmaatregel. Deze backup moet worden opgeslagen op een veilige locatie en moet kunnen worden gebruikt voor herstel indien er onverwachte problemen optreden tijdens het versleutelingsproces. Bovendien moet de databaseprestatie worden gemonitord vóór TDE-activatie om een baseline te hebben waartegen post-implementatie prestaties kunnen worden vergeleken. Het daadwerkelijk inschakelen van TDE gebeurt via de Azure Portal of PowerShell, afhankelijk van de databaseservice. Voor Azure SQL Database en SQL Managed Instance navigeert de beheerder naar de SQL Database, selecteert Security in het menu, en vervolgens Transparent data encryption. Hier wordt Data encryption ingesteld op ON. Via PowerShell wordt de Set-AzSqlDatabaseTransparentDataEncryption cmdlet gebruikt met de parameter -State Enabled. Voor Azure Database for PostgreSQL en MySQL kan versleuteling met Customer-Managed Keys alleen worden geconfigureerd tijdens het aanmaken van de server, wat betekent dat bestaande servers niet kunnen worden gewijzigd. Voor deze services moet de organisatie overwegen om een nieuwe versleutelde server aan te maken en data te migreren, of te accepteren dat Microsoft-Managed Keys worden gebruikt (die standaard actief zijn). Voor Azure Cosmos DB kan versleuteling met Customer-Managed Keys worden geconfigureerd via Azure Portal onder Features > Encryption at rest of via PowerShell, maar dit kan leiden tot tijdelijke service-onderbrekingen en moet daarom zorgvuldig worden gepland. Na activering begint het versleutelingsproces onmiddellijk op de achtergrond voor de meeste services. De database blijft volledig operationeel tijdens dit proces, wat betekent dat alle applicaties normaal kunnen blijven functioneren zonder onderbreking. Het versleutelingsproces werkt door alle bestaande database-pages te lezen, te versleutelen en terug te schrijven naar disk. Voor nieuwe data gebeurt versleuteling real-time tijdens write-operaties. De duur van het versleutelingsproces hangt af van de databasegrootte en de I/O-capaciteit van de database. Kleine databases van 10GB kunnen binnen 10 tot 30 minuten worden versleuteld, terwijl grote databases van 1TB of meer 8 tot 15 uur kunnen duren. Tijdens dit proces moet de voortgang worden gemonitord via service-specifieke cmdlets of de Azure Portal. Monitoring tijdens het versleutelingsproces is cruciaal om eventuele problemen vroegtijdig te identificeren. Azure Monitor en service-specifieke analytics tools bieden gedetailleerde inzichten in databaseprestaties, I/O-statistieken en resourcegebruik tijdens versleuteling. Organisaties moeten alert zijn op ongebruikelijk hoge I/O-activiteit of prestatievermindering, hoewel dit zeldzaam is. Als er problemen worden gedetecteerd, kan het versleutelingsproces worden onderbroken voor sommige services, hoewel dit alleen mogelijk is tijdens het actieve versleutelingsproces en niet na voltooiing. In de praktijk is dit echter zelden nodig, en het versleutelingsproces verloopt meestal zonder problemen. Na voltooiing van het versleutelingsproces moet de TDE-status worden geverifieerd om te bevestigen dat versleuteling succesvol is geactiveerd. Dit gebeurt opnieuw met service-specifieke cmdlets, waarbij de versleutelingsstatus moet zijn 'Enabled' of 'Encrypted'. Bovendien moeten databasebackups worden gecontroleerd om te verifiëren dat deze automatisch zijn versleuteld. Deze verificatie is belangrijk voor compliance-doeleinden en moet worden gedocumenteerd als auditbewijs. Voor organisaties met meerdere databases die moeten worden versleuteld, kan het remediatieproces worden geautomatiseerd via PowerShell-scripts die alle niet-versleutelde databases identificeren en automatisch TDE inschakelen. Deze scripts kunnen worden uitgevoerd via Azure Automation runbooks of Azure Functions, waardoor het proces kan worden geautomatiseerd zonder handmatige interventie. Automatisering is vooral waardevol voor organisaties met honderden of duizenden databases, waarbij handmatige remediatie onpraktisch zou zijn. Het is echter belangrijk om automatisering zorgvuldig te testen in een niet-productieomgeving voordat deze wordt toegepast op productiedatabases. Na succesvolle remediatie moeten alle databases worden toegevoegd aan de continue monitoringstrategie om te voorkomen dat versleuteling in de toekomst per ongeluk wordt uitgeschakeld. Azure Policy kan worden geconfigureerd om automatisch te detecteren wanneer TDE wordt uitgeschakeld en onmiddellijk waarschuwingen te genereren. Bovendien moeten periodieke verificaties worden uitgevoerd om te bevestigen dat alle databases versleuteld blijven. Het remediatieproces zelf moet worden gedocumenteerd, inclusief de datum waarop TDE is ingeschakeld, de gebruikte methode (Microsoft-Managed Keys of Customer-Managed Keys), en eventuele opgetreden problemen of observaties. Deze documentatie is essentieel voor compliance-audits en moet worden bewaard voor de vereiste retentieperiode.
Compliance & Frameworks
- CIS M365: Control 4.1.3 (L1) - CIS Azure Foundations v3.0.0 - 4.1.3: Zorg ervoor dat SQL server TDE protector is versleuteld met Customer-Managed Key
- BIO: 10.01.01 - BIO Baseline Informatiebeveiliging Overheid - Thema 10: Cryptografische maatregelen - versleuteling bij rest
- ISO 27001:2022: A.10.1.1 - Beleid voor het gebruik van cryptografische controles
- NIS2: Artikel - Cybersecurity risicobeheer - gegevensversleuteling bij rest
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).
Risico zonder implementatie
Management Samenvatting
Transparent Data Encryption (TDE) versleutelt Azure-databasebestanden en backups automatisch bij rust met AES-256-versleuteling, wat bescherming biedt tegen ongeautoriseerde toegang via opslagniveau-compromittering zonder enige applicatiecode-wijzigingen of prestatie-impact. TDE werkt volledig transparant: versleuteling en ontsleuteling gebeurt automatisch tijdens schrijf- en leesoperaties, applicaties merken NIETS van TDE (geen code-wijzigingen vereist), queryprestatie-impact minder dan 5 procent (meestal minder dan 3 procent - moderne CPU's hebben AES-hardwareversnelling), databasebestanden worden real-time versleuteld op schijf, backups worden automatisch versleuteld met dezelfde sleutel. Belangrijke status: TDE is STANDAARD INGESCHAKELD voor nieuwe Azure SQL Databases sinds 2017, Azure Cosmos DB versleutelt altijd automatisch, Azure Database for PostgreSQL en MySQL gebruiken standaard Azure Storage-versleuteling - verificatie is primair voor legacy databases aangemaakt vóór 2017 die mogelijk nog onversleuteld zijn. Implementatie voor oude databases: Azure Portal → Database → Security → Transparent data encryption → Schakel ON, of PowerShell met service-specifieke cmdlets. Versleutelingsproces duurt minuten tot uren afhankelijk van databasegrootte (10GB = 10-30 min, 100GB = 1-3 uur, 1TB+ = 6-12 uur) waarbij database VOLLEDIG ONLINE blijft tijdens versleuteling - geen downtime vereist. Deze maatregel is absoluut verplicht voor ALLE Azure-databases zonder uitzonderingen, verplicht voor compliance met AVG Artikel 32, PCI-DSS 3.4, ISO 27001 A.10.1.1, CIS 4.1.3, NIS2, en wordt beschouwd als fundamentele beveiligingsbaseline door NIST, SANS, OWASP. Implementatie-inspanning: 30-60 minuten voor verificatie van alle databases en inschakelen voor onversleutelde legacy databases (daadwerkelijke versleuteling is achtergrondproces). Kosten: TDE met Microsoft-Managed Keys is volledig gratis voor de meeste services - geen extra Azure-kosten, geen prestatieverslechteringskosten. Doorlopende inspanning: nul - TDE blijft permanent actief zonder onderhoud. Optioneel: upgrade naar Customer-Managed Keys voor datasovereiniteitsvereisten. Return on investment komt van: voorkomen van gegevensblootstelling bij opslagcompromittering, compliance-auditsucces voor ALLE frameworks, regelgevingsgoedkeuring, AVG-boete-vermijding (tot €20M), en nul implementatiekosten bij maximale beveiligingswaarde.
- Implementatietijd: 1.5 uur
- FTE required: 0.02 FTE