💼 Management Samenvatting
Transparent Data Encryption (TDE) voor Azure SQL Database versleutelt automatisch database-bestanden, transactielogs en backups bij rust zonder applicatiewijzigingen te vereisen. Deze versleuteling beschermt tegen fysieke media-diefstal en ongeautoriseerde toegang tot opslagniveau data, en is verplicht onder de AVG en PCI-DSS.
✓ SQL Managed Instance
Data bij rust zonder versleuteling vormt een kritiek beveiligingsrisico waarbij data op opslagniveau toegankelijk is zonder databaseniveau authenticatie. Wanneer TDE niet is ingeschakeld, zijn gestolen database-bestanden direct leesbaar zonder dat database-inloggegevens nodig zijn - een aanvaller die fysieke toegang verkrijgt tot opslagmedia of toegang krijgt tot Azure Storage-accounts, kan .mdf databestanden direct koppelen en lezen. Database-backups die worden opgeslagen in Azure Storage-accounts zijn toegankelijk voor aanvallers die opslagaccount-sleutels compromitteren, wat een veelvoorkomende aanvalsvector is bij verkeerd geconfigureerde opslagaccounts. Transactielog-bestanden (.ldf) 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 op paginaniveau waarbij 16KB database-pagina's automatisch worden versleuteld voordat ze naar schijf worden geschreven, database-datafiles (.mdf) volledig versleuteld op schijf blijven en onleesbaar zijn zonder de versleutelingssleutel, transactielogs (.ldf) automatisch worden versleuteld om query-lekkage te voorkomen, alle database-backups automatisch versleuteld worden opgeslagen in Azure Storage, en tempdb (tijdelijke database voor queries) automatisch wordt 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
Implementatie
Deze maatregel verifieert en waarborgt dat Transparent Data Encryption (TDE) is ingeschakeld op alle Azure SQL Databases. TDE is standaard ingeschakeld voor nieuwe databases die sinds 2017 zijn aangemaakt, maar oudere databases die vóór deze datum zijn gemaakt, kunnen nog onversleuteld zijn en vereisen expliciete activering. De verificatie gebeurt via de PowerShell Get-AzSqlDatabaseTransparentDataEncryption cmdlet die de TDE-status van alle databases in alle abonnementen controleert. TDE ondersteunt twee sleutelbeheeropties: Microsoft-Managed Keys (MMK) is de standaard waarbij Microsoft automatisch versleutelingssleutels beheert en roteert zonder organisatie-interventie - dit is voldoende voor de meeste workloads en volledig gratis, of Customer-Managed Keys (CMK) via Azure Key Vault waarbij organisaties volledige controle hebben over de sleutellevenscyclus voor strikte compliance-vereisten (zie sql-tde-customer-managed-keys.json). De versleuteling werkt op paginaniveau waarbij elke 16KB database-pagina wordt versleuteld met een databaseversleutelingssleutel (DEK) voordat deze naar schijf wordt geschreven, en automatisch wordt ontsleuteld bij leesoperaties. De prestatie-impact 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 zonder extra Azure-kosten bovenop normale databaseprijzen. Voor databases zonder TDE moet activering gebeuren via Azure Portal onder Transparent Data Encryption-instellingen of via PowerShell Set-AzSqlDatabaseTransparentDataEncryption -State Enabled, waarbij de versleuteling enkele minuten tot uren kan duren afhankelijk van de databasegrootte. 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 (TDE) op Azure SQL Databases zijn verschillende technische en organisatorische vereisten van toepassing. Deze vereisten zorgen ervoor dat de versleuteling succesvol kan worden geïmplementeerd en beheerd, en dat organisaties kunnen voldoen aan hun beveiligings- en compliance-verplichtingen. Het begrijpen van deze vereisten is essentieel 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 SQL Database of SQL Managed Instance. TDE is beschikbaar voor beide service-types, waardoor organisaties ongeacht hun gekozen SQL-implementatiemodel versleuteling kunnen toepassen. Azure SQL Database is de volledig beheerde platform-as-a-service (PaaS) optie waarbij Microsoft alle infrastructuur, patching en backups beheert, terwijl SQL Managed Instance een hybride aanpak biedt met meer controle over de onderliggende infrastructuur. Beide opties ondersteunen TDE volledig, en de implementatieprocedure is identiek voor beide service-types. Organisaties moeten verifiëren dat hun databases actief zijn en toegankelijk zijn via de Azure Portal of PowerShell voordat TDE 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 Az.Sql PowerShell-module is essentieel voor TDE-implementatie en -beheer. Deze module bevat alle cmdlets die nodig zijn voor het controleren van TDE-status, het inschakelen van versleuteling, en het monitoren van versleutelingsprocessen. De module kan worden geïnstalleerd via Install-Module -Name Az.Sql -Scope CurrentUser of Install-Module -Name Az.Sql -Scope AllUsers voor systeembrede installatie. Organisaties moeten ook de Az.Accounts-module installeren, die vereist is voor authenticatie met Azure en het beheren van abonnementen. Beide modules moeten regelmatig worden bijgewerkt naar de nieuwste versies om toegang te hebben tot de meest recente functionaliteit en beveiligingsupdates. De module-versies kunnen worden gecontroleerd via Get-InstalledModule -Name Az.Sql. Contributor-rechten op de SQL-server zijn vereist voor het inschakelen van TDE. Deze rechten kunnen worden verleend via Azure Role-Based Access Control (RBAC) waarbij de rol 'SQL Server Contributor' of 'Contributor' op resourcegroep- of abonnementsniveau wordt toegewezen. Organisaties moeten het principe van least privilege toepassen door alleen de minimale rechten te verlenen die nodig zijn voor TDE-implementatie. Voor grootschalige implementaties kunnen organisaties overwegen om een specifieke aangepaste rol te maken die alleen TDE-gerelateerde acties toestaat, wat de beveiligingspostuur verbetert door onnodige rechten te beperken. De vereiste rechten kunnen worden geverifieerd via de Azure Portal onder Access Control (IAM) voor de betreffende resourcegroep of SQL-server. Voor organisaties die Customer-Managed Keys (CMK) willen gebruiken in plaats van Microsoft-Managed Keys, zijn aanvullende vereisten van toepassing. Deze organisaties moeten een Azure Key Vault hebben met een versleutelingssleutel die kan worden gebruikt voor TDE. De Key Vault moet zich in dezelfde Azure-regio bevinden als de SQL-databases, en de SQL-server moet toegang hebben tot de Key Vault via een beheerde identiteit of service principal. De versleutelingssleutel moet een RSA-sleutel zijn met een minimale lengte van 2048 bits, en de Key Vault moet soft-delete en purge-protection hebben ingeschakeld voor extra beveiliging. Organisaties moeten ook Key Vault-toegangsbeleid configureren dat de SQL-server toestaat om de sleutel te gebruiken voor versleuteling en ontsleuteling. Deze aanvullende vereisten maken CMK-implementatie complexer dan MMK, maar bieden volledige controle over de versleutelingssleutels voor organisaties met strikte data sovereignty-vereisten. Een belangrijk voordeel van TDE is dat er geen applicatiewijzigingen nodig zijn. De versleuteling werkt volledig transparant op het niveau van de database-engine, wat betekent dat applicaties die verbinding maken met de database geen wijzigingen nodig hebben in hun code, configuratie of verbindingsstrings. Bestaande applicaties blijven functioneren zonder enige aanpassingen, wat TDE-implementatie enorm vereenvoudigt in vergelijking met andere versleutelingsmethoden die applicatiewijzigingen vereisen. Deze transparantie betekent ook dat legacy-applicaties die mogelijk niet meer actief worden onderhouden, nog steeds kunnen worden beveiligd met TDE zonder dat ontwikkelaars betrokken hoeven te zijn bij het implementatieproces. Organisaties kunnen TDE implementeren zonder downtime of service-onderbrekingen, wat cruciaal is voor productieomgevingen waar beschikbaarheid van essentieel belang is.
Implementatie
Gebruik PowerShell-script sql-tde-versleuteling-enabled.ps1 (functie Invoke-Remediation) – Schakelt TDE in voor alle Azure SQL Databases zonder encryptie.
Het implementeren van Transparent Data Encryption voor Azure SQL Databases vereist een gestructureerde aanpak die begint met een grondige audit van de huidige versleutelingsstatus, gevolgd door het inschakelen van versleuteling voor databases die deze nog niet hebben, en eindigt met verificatie en compliance-rapportage. Het is belangrijk om te begrijpen dat TDE standaard is ingeschakeld voor alle nieuwe Azure SQL Databases die sinds 2017 zijn aangemaakt, wat betekent dat de meeste moderne databases al versleuteld zijn. Deze implementatie-instructies richten zich primair op verificatie van de versleutelingsstatus en het inschakelen van versleuteling voor legacy databases die vóór 2017 zijn aangemaakt en mogelijk nog onversleuteld zijn. De implementatie kan worden uitgevoerd zonder downtime, waardoor organisaties TDE kunnen implementeren in productieomgevingen zonder service-onderbrekingen. 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 auditfase is cruciaal omdat het een volledig beeld geeft van de huidige beveiligingspostuur en helpt bij het prioriteren van remediatie-acties. De audit begint met het inventariseren van alle Azure SQL Databases in alle abonnementen en resourcegroepen binnen de organisatie. Dit kan worden gedaan via PowerShell met de Get-AzSqlDatabase cmdlet, die alle databases retourneert met hun bijbehorende servernamen, databasenamen en resourcegroepnamen. 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 grootschalige omgevingen met honderden databases kan een geautomatiseerd script worden gebruikt dat alle databases doorloopt en de TDE-status controleert, waarbij databases zonder versleuteling worden geïdentificeerd en gedocumenteerd. De resultaten van deze audit moeten worden geëxporteerd naar een rapport dat kan worden gebruikt voor compliance-doeleinden en voor het plannen van remediatie-acties. Het is belangrijk om te realiseren dat de verwachting is dat meer dan 95 procent van de databases al versleuteld zijn, omdat TDE standaard is ingeschakeld sinds 2017. Alleen legacy databases die vóór deze datum zijn aangemaakt, kunnen mogelijk nog onversleuteld zijn. De tweede fase van de implementatie omvat het daadwerkelijk inschakelen van TDE voor databases die nog niet versleuteld zijn. Deze fase kan worden uitgevoerd via de Azure Portal of via PowerShell, afhankelijk van de voorkeur van de organisatie en de schaal van de implementatie. In de Azure Portal navigeert de beheerder naar de betreffende SQL Database, selecteert Security in het navigatiemenu, en vervolgens Transparent data encryption. Hier wordt Data encryption ingesteld op ON, waarna het versleutelingsproces onmiddellijk op de achtergrond begint. Via PowerShell wordt de Set-AzSqlDatabaseTransparentDataEncryption cmdlet gebruikt met de parameters -ServerName, -DatabaseName, -ResourceGroupName en -State Enabled. Het cruciale aspect van deze fase is dat het versleutelingsproces volledig op de achtergrond plaatsvindt zonder enige impact op de beschikbaarheid van de database. De database blijft volledig online en operationeel tijdens het gehele versleutelingsproces, wat betekent dat alle applicaties normaal kunnen blijven functioneren zonder onderbreking. De voortgang van het versleutelingsproces kan worden gemonitord via de Get-AzSqlDatabaseTransparentDataEncryptionActivity cmdlet, die de huidige status en het voltooiingspercentage weergeeft. De duur van het versleutelingsproces hangt af van de grootte van de database en de I/O-capaciteit. Kleine databases van ongeveer 10GB kunnen binnen 10 tot 30 minuten worden versleuteld, terwijl middelgrote databases van 100GB één tot drie uur kunnen duren. Grote databases van 500GB kunnen vier tot acht uur nodig hebben, en zeer grote databases van 1TB of meer kunnen acht tot vijftien uur duren. Het is belangrijk om te begrijpen dat versleuteling permanent is - zodra TDE is ingeschakeld, kan deze niet meer worden uitgeschakeld. Dit is een beveiligingskenmerk dat voorkomt dat versleuteling per ongeluk wordt uitgeschakeld, maar betekent ook dat organisaties zeker moeten zijn van hun beslissing voordat ze TDE activeren. De derde fase van de implementatie bestaat uit verificatie en compliance-rapportage om te bevestigen dat alle databases succesvol zijn versleuteld en om documentatie te genereren voor audit-doeleinden. Deze verificatiefase moet worden uitgevoerd na voltooiing van het versleutelingsproces om te bevestigen dat alle databases de status 'Enabled' hebben voor TDE. Een geautomatiseerd verificatiescript kan alle databases opnieuw doorlopen en de TDE-status controleren, waarbij alleen databases met een status anders dan 'Enabled' worden geïdentificeerd. In een correct geïmplementeerde omgeving zou deze lijst leeg moeten zijn, wat betekent dat alle databases versleuteld zijn. De resultaten van deze verificatie moeten worden geëxporteerd naar een compliance-rapport in CSV-formaat dat kan worden gebruikt voor interne audits en externe certificeringen. Dit rapport moet de servernaam, databasenaam en TDE-status bevatten voor elke database, en moet regelmatig worden bijgewerkt om de continue compliance te documenteren. Naast database-versleuteling moeten ook database-backups worden geverifieerd om te bevestigen dat deze automatisch zijn versleuteld. Backups erven automatisch de TDE-versleuteling van de bron-database, wat betekent dat alle backups die worden gemaakt van een versleutelde database ook versleuteld zijn. De versleutelingsstatus van backups kan worden gecontroleerd via de Get-AzSqlDatabaseGeoBackup cmdlet, waarbij de EncryptionState 'Encrypted' moet zijn. Voor audit-doeleinden moet alle relevante informatie worden gedocumenteerd, inclusief de implementatiedatum van TDE, de gebruikte versleutelingsmethode (Microsoft-Managed Keys of Customer-Managed Keys), en het sleutelrotatiebeleid. Voor Microsoft-Managed Keys is het rotatiebeleid automatisch, wat betekent dat Microsoft de sleutels automatisch roteert zonder interventie van de organisatie. De totale implementatietijd voor de audit- en activeringsfase bedraagt ongeveer 30 minuten voor de meeste organisaties, hoewel de daadwerkelijke versleuteling van grote databases uren kan duren als achtergrondproces. Deze tijd omvat het inventariseren van alle databases, het controleren van de TDE-status, 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, 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 zonder extra Azure-kosten bovenop de normale database-prijzen. 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. Deze minimale impact betekent dat organisaties de beveiligingsvoordelen van TDE kunnen genieten zonder significante performance-degradatie of extra kosten.
Monitoring en Controle
Gebruik PowerShell-script sql-tde-encryption-enabled.ps1 (functie Invoke-Monitoring) – Controleren.
Het continu monitoren van Transparent Data Encryption (TDE) 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. Azure Policy biedt de eerste verdedigingslinie voor TDE-compliance monitoring. Door een aangepast Azure Policy te implementeren dat automatisch alle Azure SQL Databases controleert op TDE-status, kunnen organisaties real-time inzicht krijgen in hun encryptie-compliance. Deze policy kan worden geconfigureerd om automatisch waarschuwingen te genereren wanneer een database zonder TDE wordt gedetecteerd, en kan zelfs automatische remediatie activeren voor nieuwe databases. De policy evalueert continu alle databases in alle abonnementen en resourcegroepen, waardoor er geen databases buiten de controle vallen. Implementatie gebeurt via Azure Policy definitie die de Get-AzSqlDatabaseTransparentDataEncryption cmdlet gebruikt om de TDE-status 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. Deze service biedt ingebouwde security recommendations die specifiek TDE-compliance 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 SQL Databases in de organisatie geïnventariseerd en geverifieerd op TDE-status. 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 TDE-status per database 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 SQL Database wordt aangemaakt, moet deze automatisch worden gecontroleerd op TDE-status. Hoewel TDE standaard is ingeschakeld voor databases die sinds 2017 zijn aangemaakt, kunnen configuratiefouten of handmatige wijzigingen ertoe leiden dat versleuteling wordt uitgeschakeld. 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. Organisaties die Customer-Managed Keys (CMK) gebruiken, moeten niet alleen de TDE-status monitoren, maar ook de beschikbaarheid en toegankelijkheid van de versleutelingssleutels in Azure Key Vault. 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. 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 SQL Analytics 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 TDE-status van alle databases 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 SQL Database 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 SQL 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 SQL 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 SQL 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 SQL 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. Dit bewijs omvat screenshots van de Azure Portal die de TDE-status 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 sql-tde-encryption-enabled.ps1 (functie Invoke-Remediation) – Herstellen.
Remediatie van niet-versleutelde Azure SQL 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, maar vereist wel zorgvuldige planning en monitoring om ervoor te zorgen dat de versleuteling succesvol wordt voltooid. Het remediatieproces omvat meerdere stappen, van identificatie en prioritering tot daadwerkelijke activering en verificatie. 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. Het PowerShell-script gebruikt de Get-AzSqlDatabase cmdlet om alle databases te inventariseren en controleert vervolgens voor elke database de TDE-status met Get-AzSqlDatabaseTransparentDataEncryption. 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 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. In de Azure Portal 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. Het is belangrijk om te benadrukken dat zodra TDE is ingeschakeld, deze niet meer kan worden uitgeschakeld - versleuteling is permanent. Dit is een beveiligingskenmerk dat voorkomt dat versleuteling per ongeluk wordt uitgeschakeld, maar betekent ook dat organisaties zeker moeten zijn van hun beslissing voordat ze TDE activeren. Na activering begint het versleutelingsproces onmiddellijk op de achtergrond. 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 Get-AzSqlDatabaseTransparentDataEncryptionActivity, die de huidige status en het voltooiingspercentage weergeeft. Monitoring tijdens het versleutelingsproces is cruciaal om eventuele problemen vroegtijdig te identificeren. Azure Monitor en SQL Analytics 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 door TDE tijdelijk uit te schakelen, 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 Get-AzSqlDatabaseTransparentDataEncryption, waarbij de State moet zijn 'Enabled'. Bovendien moeten databasebackups worden gecontroleerd om te verifiëren dat deze automatisch zijn versleuteld, wat gebeurt via Get-AzSqlDatabaseGeoBackup waarbij de EncryptionState 'Encrypted' moet zijn. 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 SQL database-bestanden 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), database-bestanden (.mdf) en transactielogs (.ldf) worden real-time versleuteld op schijf, backups worden automatisch versleuteld met dezelfde sleutel. Belangrijke status: TDE is STANDAARD INGESCHAKELD voor ALLE nieuwe Azure SQL Databases sinds 2017 met Microsoft-Managed Keys - verificatie is primair voor legacy databases aangemaakt vóór 2017 die mogelijk nog onversleuteld zijn. Implementatie voor oude databases: Azure Portal → SQL Database → Security → Transparent data encryption → Schakel ON, of PowerShell Set-AzSqlDatabaseTransparentDataEncryption -State Enabled. 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 SQL 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 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 - geen extra Azure-kosten, geen prestatieverslechteringskosten. Doorlopende inspanning: nul - TDE blijft permanent actief zonder onderhoud. Optioneel: upgrade naar Customer-Managed Keys (zie sql-tde-customer-managed-keys.json) 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 uur
- FTE required: 0.01 FTE