Azure SQL Database Security Design

💼 Management Samenvatting

De beveiligingsarchitectuur voor Azure SQL Database binnen de Nederlandse Baseline voor Veilige Cloud bestaat uit een zorgvuldig gelaagde aanpak waarin versleuteling, netwerkafscherming, continue bewaking en streng identiteitsbeheer elkaar versterken. Door Transparent Data Encryption, meervoudige authenticatie via Azure Active Directory, gecontroleerde toegang via privé-eindpunten en een doorlopend detectieregime met Microsoft Defender voor SQL te combineren, ontstaat een robuuste verdedigingslinie die zowel gerichte aanvallen als menselijke fouten kan opvangen zonder de beschikbaarheid van bedrijfskritische gegevens te ondermijnen.

Aanbeveling
Voer het volledige Azure SQL-beveiligingsontwerp in en bekrachtig het met governance, monitoring en herstelprocedures.
Risico zonder
Critical
Risk Score
9/10
Implementatie
20u (tech: 12u)
Van toepassing op:
Azure SQL Database
Azure SQL MI

Databanken in Azure bevatten vaak persoonsgegevens uit basisregistraties, financiële transacties, zorgdossiers en beleidsgevoelige stukken. Deze gegevens vallen onder de AVG, de BIO en sectorale wetgeving en mogen nooit onnodig het internet raken. Zonder een doordachte beveiligingsarchitectuur ontstaan directe risico’s: aanvallers kunnen zich via slecht afgeschermde endpoints toegang verschaffen, exporteren onversleutelde back-ups of misbruiken verouderde accounts voor privilege-escalatie. Daarnaast vraagt de Nederlandse publieke sector om aantoonbare governance: auditors verwachten dat elke query en configuration change traceerbaar is en dat incidenten binnen minuten worden opgemerkt én opgevolgd. Een solide ontwerp is daarmee niet alleen een technische noodzaak, maar ook een voorwaarde voor bestuurlijke betrouwbaarheid.

Implementatie

Het ontwerp beschrijft hoe encryptie in rust en tijdens transport wordt afgedwongen, hoe netwerktoegang uitsluitend via beheerste virtuele netwerken verloopt, op welke wijze toegang via Azure AD-rollen en least privilege wordt geregeld, en hoe Defender voor SQL, kwetsbaarheidsbeoordelingen en auditing samenwerken om afwijkingen onmiddellijk zichtbaar te maken. Elke bouwsteen – van sleutelbeheer met Azure Key Vault tot logische scheiding van workloads, retentie van auditlogs en herstel van incidenten – wordt gekoppeld aan concrete stappen, verantwoordelijke rollen en meetbare criteria zodat organisaties met beperkte capaciteit toch een volwassen dataplatform realiseren.

Vereisten

  1. Elke Azure SQL Database of Managed Instance wordt uitsluitend uitgerold binnen een dedicated resourcegroep met een duidelijk eigenaarschap en lifecycle-beheerplan. Dat betekent dat tagging, beleidstoewijzingen en toegangsmatrix vooraf zijn vastgesteld, dat er een koppeling ligt met een Azure Policy-initiatie voor baseline beveiliging en dat het platformteam kan aantonen hoe wijzigingen worden goedgekeurd. Door deze governancebasis te borgen, blijft de volledige keten auditeerbaar en kan de organisatie aantoonbaar voldoen aan BIO-paragraaf 5 over verantwoordelijkheden.
  2. Transparent Data Encryption moet actief worden gecontroleerd, niet alleen verondersteld. Bevestig dat databases gebruikmaken van een door Azure Key Vault beheerde klantbeheerde sleutel (CMK) met rotatiebeleid van maximaal twaalf maanden, documenteer het sleutelbeheerproces, en beschrijf welke fallback wordt gebruikt bij key vault-storing. Deze maatregel beschermt opslagmedia, geo-replica’s en back-ups en sluit aan op AVG Artikel 32 over passende technische maatregelen.
  3. Alle toegangen verlopen via privé-eindpunten in een afzonderlijk subnet met Network Security Groups die alleen het noodzakelijke verkeer van applicatienetwerken toestaan. Wanneer een oudere applicatie tijdelijk een openbaar eindpunt vereist, moet een expliciet vrijgavebesluit inclusief einddatum en geautoriseerde IP-adressen beschikbaar zijn. Tevens moet DNS-resolutie worden afgestemd zodat queries niet onbedoeld via het publieke Microsoft-endpoint lopen.
  4. Authenticatie en autorisatie zijn gekoppeld aan Azure Active Directory. Dat betekent dat beheerders gebruikmaken van PIM-geactiveerde rollen, dat serviceprincipals of Managed Identities een minimaal rechtenprofiel krijgen op server- en databaseniveau en dat SQL-logins uitsluitend nog bestaan voor technische noodscenario’s met een vastgelegde uitfasering. Multifactor-authenticatie en voorwaardelijke toegang zijn verplicht voor iedere menselijke beheerder.
  5. Microsoft Defender voor SQL is ingeschakeld op elke server of instance, met een kostenplaats die vooraf is goedgekeurd. De meldingen worden doorgestuurd naar Microsoft Sentinel of een gecentraliseerde Log Analytics-werkruimte waar runbooks voor triage, escalatie en afhandeling beschikbaar zijn. Tevens wordt de kwetsbaarheidsbeoordeling wekelijks gepland en beoordeeld door het databasebeveiligingsteam, inclusief het opvolgen van hardening-aanbevelingen.
  6. SQL auditing en diagnostische logs schrijven naar een immutable Log Analytics-werkruimte met rolgescheiden toegang. Retentie is minimaal zeven jaar en er zijn KQL-query’s beschikbaar waarmee auditors direct toegangspatronen, mislukte aanmeldingen en DDL-wijzigingen kunnen analyseren. Dit vereiste ondersteunt BIO 12.04 en ISO 27001 A.12.4.1 en vormt de basis voor forensisch onderzoek.
  7. Back-up en herstel zijn gedocumenteerd inclusief RPO/RTO-doelen, versleutelde long-term retention, opslag in een secundaire regio en terugkerende hersteltests. Verder is vastgelegd hoe point-in-time restore wordt uitgevoerd, hoe een uitwijkomgeving wordt geactiveerd en hoe applicaties van nieuwe connecties op de failoverinstantie worden voorzien. Zonder aantoonbare herstelcapaciteit is de beveiligingsketen onvolledig.
  8. Operationele processen voor configuratiebeheer, patching van clientdrivers en onderhoud van stored procedures zijn vastgelegd in het changeproces. Elk wijzigingsverzoek bevat een beveiligingsimpactanalyse, verwijzing naar het dataclassificatiemodel en een rollbackplan. Hierdoor ontstaat een cultuur waarin security by design is geborgd en waarin auditrapportages exact kunnen traceren wie welke instelling heeft gewijzigd en waarom.
  9. Er bestaat een geïntegreerde test- en validatieketen waarin synthetische transacties, query performance tests en security regressietests automatisch draaien na elke configuratiewijziging. De resultaten worden opgeslagen in een kwaliteitsdashboard zodat zowel productteams als de Chief Information Security Officer realtime kunnen volgen of beveiligingsinstellingen daadwerkelijk werken. Dit sluit menselijke fouten uit en geeft auditors tastbaar bewijs dat controles niet alleen geconfigureerd, maar ook aantoonbaar effectief zijn.

Implementatie

Begin met een beoordeling van de huidige omgeving: inventariseer alle servers, elastic pools en managed instances, controleer of zij onderdeel zijn van de juiste managementgroep en of Azure Policy afwijkingen signaleren. Activeer vervolgens Transparent Data Encryption met een klantbeheerde sleutel en documenteer in het sleutelbeheerplan hoe rotaties, back-ups en break-glass-scenario’s worden afgehandeld. Richt Azure Key Vault logging in zodat sleutelhandelingen automatisch worden doorgestuurd naar het centrale SIEM. Implementeer daarna netwerkisolatie. Maak per workload een dedicated privé-eindpunt, koppel dit aan een subnet met strikte NSG-regels en zorg voor private DNS-zones die de standaard publieke resolutie overschrijven. Controleer met Connection Policy en SQL auditing of er geen clients overblijven die het openbare eindpunt gebruiken. Leg de toegangsstructuur vast in IaC-templates zodat latere uitrol exact dezelfde beveiligingsinstellingen oplevert en voer een periodieke netwerkpenetratietest uit om firewallregels te valideren. De derde stap draait om identiteiten. Schakel Azure AD-authenticatie in, wijs beheerders toe via roldefinities als SQL Server Contributor en Database Reader, en verplicht Privileged Identity Management met tijdsgebonden toewijzing. Verwijder klassieke SQL-logins en documenteer welke Managed Identities applicaties gebruiken. Ontwikkel policyregels die aanmeldingen zonder MFA blokkeren, stel monitoringsregels in die excessieve mislukte logins detecteren en voer per kwartaal een access review uit met het dataclassificatie-team. Vervolgens activeer je Microsoft Defender voor SQL en plan je de kwetsbaarheidsbeoordeling. Analyseer de aanbevelingen, zet ze om in backlog-items en herhaal dit periodiek. Koppel alerts aan Microsoft Sentinel, bouw een analytic rule die afwijkende querypatronen van hooggevoelige tabellen signaleert en definieer een incident runbook dat aangeeft wanneer productie direct moet worden stilgelegd. Breid dit uit met geautomatiseerde Logic Apps die bij kritieke meldingen een Teams-kanaal informeren en een ticket in het ITSM-systeem openen. Tot slot richt je auditing, logging en herstel in. Configureer auditregels voor alle DDL-commando’s, privilegewijzigingen en data-export. Verstuur de logs naar de centrale werkruimte, wijs een retentiebeleid toe en maak KQL-workbooks die bestuurders realtime inzicht geven in misbruikpogingen. Test een point-in-time restore en een geografische failover, voer tabletop-oefeningen uit met het crisismanagementteam en leg bevindingen vast in het operationele draaiboek. Zorg dat lessons learned worden verwerkt in de volgende sprint en dat elke wijziging leidt tot een update van het security design document. Door deze stappen sequentieel te volgen ontstaat een gecontroleerde implementatie waarin geen beveiligingslaag wordt overgeslagen en waarin lessons learned onmiddellijk worden verankerd. Bouw aansluitend automatisering in zodat configuraties continu worden bewaakt. Gebruik Azure Policy, Defender posture management en GitHub Actions of Azure DevOps pipelines om configuraties te vergelijken met het gewenste state-bestand. Wanneer afwijkingen worden gevonden, start automatisch een pull request of remediation task zodat de omgeving weer compliant wordt zonder dat handmatige scripts nodig zijn. Dit verkleint de kans op drift aanzienlijk. Tot slot hoort bij de implementatie een opleidings- en adoptietraject. Train applicatie-eigenaren in veilig queryontwerp, laat operations oefenen met het herstellen van versleutelde back-ups en organiseer gamedays waarin een simulatie van een datalek wordt doorlopen. Documenteer alle bevindingen in het centrale kennisportaal en herzie het ontwerp ten minste jaarlijks zodat nieuwe Microsoft-functionaliteit tijdig wordt opgenomen in de baseline. Deze integrale aanpak zorgt ervoor dat de databaseomgeving consistent, veilig en aantoonbaar compliant blijft.

Compliance en Auditing

Azure SQL Database security ondersteunt meerdere Nederlandse en internationale kaders, maar naleving ontstaat alleen wanneer iedere controle aantoonbaar is vastgelegd. Voor de BIO betekent dit dat hoofdstuk 10 omtrent cryptografie kan worden ingevuld met TDE, Always Encrypted en beheer van sleutels in Azure Key Vault. Documenteer welke datasets onder ‘zeer hoog’ vallen, beschrijf waarom gekozen is voor 256-bits AES, voeg bewijs toe van de jaarlijkse sleutelrotatie en toon aan dat het sleutelbeheerproces inclusief functiescheiding is goedgekeurd door de CISO. Voor BIO 12.04 moet de organisatie kunnen laten zien dat alle toegangs- en configuratiegebeurtenissen worden gelogd, dat er een scheiding bestaat tussen gebruikers met leesrechten en beheerders die logs kunnen verwijderen, en dat incidentmeldingen binnen afgesproken termijnen worden geëscaleerd naar het security operations center. Leg vast hoe escalatie verloopt buiten kantooruren en hoe lessons learned vanuit incidenten worden vertaald naar beleidswijzigingen. AVG Artikel 32 vereist passende technische en organisatorische maatregelen. Vertaal dit naar concrete beheerprocessen: wijzigingsaanvragen bevatten een privacy-impactanalyse, gevoelige tabellen worden met Dynamic Data Masking of Always Encrypted afgeschermd, en er bestaat een protocol voor het informeren van de Functionaris Gegevensbescherming wanneer zich een datalek voordoet. Voeg daarnaast procedures toe voor het recht op inzage en verwijdering zodat querylogs die persoonsgegevens bevatten gecontroleerd kunnen worden gefilterd zonder integriteit te verliezen. Documenteer welke bewaartermijnen gelden voor auditlogs, wanneer deze geanonimiseerd mogen worden en hoe toegang tot loggegevens zelf wordt gelogd. Leg ook vast hoe internationale doorgiftes worden begrensd binnen Europese regio’s van Azure en hoe dataprocessorovereenkomsten zijn geborgd. Voor ISO 27001 is annex A.8.24 gericht op informatieclassificatie en versleuteling. Koppel ieder database-onderdeel aan een classificatieniveau, motiveer de gekozen versleutelingsmaatregelen en leg vast hoe sleutels worden beschermd tegen ongeautoriseerde toegang, bijvoorbeeld met Hardware Security Modules en strikte toegangsprocedures. Annex A.12.4.1 vraagt om gedetailleerde logging en regelmatige review; stel daarom een auditkalender op, wijs reviewers aan, documenteer bevindingen en beschrijf hoe verbetermaatregelen worden gevolgd tot en met implementatie. Voeg rapportages toe die aantonen dat de loggingconfiguratie periodiek wordt getest op volledigheid en integriteit en dat detectieregels worden afgestemd op actuele dreigingsinformatie. PCI-DSS 3.4 is van toepassing zodra betaalkaartgegevens worden verwerkt. Bewijs dat data zowel in rust als tijdens transport is versleuteld, dat sleutelbeheer gescheiden is van operationele teams, dat er intrusion detection draait op alle beheerinterfaces en dat segmentatiecontroles voorkomen dat onbevoegde netwerken bij kaartgegevens kunnen. Lever daarnaast kwartaalrapportages aan die aantonen dat kwetsbaarheden binnen de vereiste termijnen zijn opgelost, dat compensating controls zijn gedocumenteerd indien tijdelijke afwijkingen zijn toegestaan en dat penetratietests aantonen dat segmentatie werkt. Tot slot verlangen auditors bewijsstukken zoals exporten uit Log Analytics, screenshots van beleidstoewijzingen, resultaten van kwetsbaarhedenscans en processen voor incidentrespons. Bewaar deze documenten in een gecontroleerde repository, label ze met versie en geldigheid, en maak ze toegankelijk voor interne en externe toetsten. Bouw een compliance-dashboard dat per controle de status, het meest recente bewijs en de eigenaar toont zodat bestuurders in één oogopslag zien waar risico’s ontstaan. Organiseer minimaal eenmaal per jaar een onafhankelijke review waarbij een externe partij steekproeven uitvoert op configuraties en logbestanden. Door compliance-eisen te koppelen aan concrete technische instellingen én aan bestuurlijke procedures wordt aantoonbaarheid geen ad-hocactiviteit meer maar een ingebed onderdeel van het beheer van Azure SQL.

Monitoring

Gebruik PowerShell-script azure-sql-security.ps1 (functie Invoke-Monitoring) – Controleren.

Remediatie

Gebruik PowerShell-script azure-sql-security.ps1 (functie Invoke-Remediation) – Herstellen.

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 Azure SQL Security Design .DESCRIPTION Implementation for Azure SQL Security Design .NOTES Filename: azure-sql-security.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/design/platform/azure-sql-security.json #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph [CmdletBinding()] param( [Parameter()][switch]$WhatIf, [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Azure SQL Security Design" $CISControl = "Azure SQL Benchmark" $BIOControl = "18.03" function Connect-RequiredServices { # Connection logic based on API } function Test-Compliance { Write-Verbose "Testing compliance for: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "azure-sql-security" PolicyName = $PolicyName IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 Details = @() Recommendations = @() } # Compliance check implementation # Based on: Design Document $result.Details += "Compliance check - implementation required based on control" $result.NonCompliantCount = 1 return $result } function Invoke-Remediation { Write-Host "`nApplying remediation for: $PolicyName..." -ForegroundColor Cyan # Remediation implementation Write-Host " Configuration applied" -ForegroundColor Green Write-Host "`n[OK] Remediation completed" -ForegroundColor Green } function Invoke-Monitoring { $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total: $($result.TotalResources)" -ForegroundColor White Write-Host "Compliant: $($result.CompliantCount)" -ForegroundColor Green $color = if ($result.NonCompliantCount -gt 0) { "Red" } else { "Green" } Write-Host "Non-compliant: $($result.NonCompliantCount)" -ForegroundColor $color return $result } function Invoke-Revert { Write-Host "Revert: Configuration revert not yet implemented" -ForegroundColor Yellow } try { Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "WhatIf: Would apply remediation" -ForegroundColor Yellow } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { $result = Test-Compliance if ($result.IsCompliant) { Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green } else { Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red } } } catch { Write-Error $_ }

Risico zonder implementatie

Risico zonder implementatie
Critical: Zonder deze maatregelen blijven kritieke persoonsgegevens onversleuteld bereikbaar, kunnen aanvallers via publieke endpoints binnendringen, ontbreekt forensisch bewijs en worden BIO-, AVG- en PCI-DSS-verplichtingen geschonden. De financiële en reputatieschade van een datalek of beschikbaarheidsincident overstijgt ruimschoots de implementatie-inspanning.

Management Samenvatting

Pas een defence-in-depthmodel toe waarin TDE met klantbeheerde sleutels, privé-eindpunten, Azure AD-authenticatie, Microsoft Defender voor SQL, uitgebreide auditing en getest herstel samenwerken. Documenteer governance, automatiseer naleving via Azure Policy en zorg dat elke wijziging traceerbaar is in Log Analytics. Daarmee voldoet de organisatie aantoonbaar aan BIO 10.01/12.04, ISO 27001 en AVG Artikel 32 en blijven bedrijfskritische gegevens beschermd.