Private Link Endpoints Voor PaaS

💼 Management Samenvatting

Privé-eindpunten (Private Endpoints) vormen een kritieke beveiligingslaag voor Platform-as-a-Service (PaaS) services in Azure. Door PaaS-services te koppelen aan een virtueel netwerk via privé-eindpunten, elimineert u publieke internettoegang en creëert u een geïsoleerde, beveiligde omgeving die volledig voldoet aan Zero Trust-principes en Nederlandse compliance-eisen zoals de BIO en NIS2.

Aanbeveling
IMPLEMENTEER VOOR PRODUCTIE PAAS
Risico zonder
Medium
Risk Score
6/10
Implementatie
8u (tech: 6u)
Van toepassing op:
Azure

Zonder deze beveiligingsmaatregel ontstaan er aanzienlijke beveiligingsrisico's die kunnen leiden tot gegevenscompromittering, nalevingsovertredingen en reputatieschade voor de organisatie. Publieke PaaS-eindpunten zijn direct toegankelijk via het internet, waardoor databases, opslagaccounts en Key Vaults blootgesteld worden aan mogelijke aanvallen. Privé-eindpunten zorgen ervoor dat deze kritieke services uitsluitend bereikbaar zijn via privé-netwerkverbindingen binnen uw beveiligde VNet-omgeving, waardoor de aanvalsoppervlakte drastisch wordt verkleind.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.Network

Implementatie

Deze controle implementeert beveiligingsbest practices via Azure Policy, ARM-templates of Microsoft Intune om cloudresources en eindpunten te beschermen volgens actuele compliance frameworks. Het betreft het configureren en implementeren van Azure Private Link-eindpunten voor alle kritieke PaaS-services, inclusief Azure SQL Database, Azure Storage Accounts, Azure Key Vault, Azure Cosmos DB en andere Platform-as-a-Service componenten die gevoelige gegevens verwerken of opslaan.

Vereisten

Voor de implementatie van privé-eindpunten voor PaaS-services zijn specifieke infrastructurele en configuratievereisten van toepassing. Deze vereisten vormen de basis voor een veilige en effectieve implementatie van netwerkisolatie volgens Zero Trust-principes en Nederlandse beveiligingsstandaarden.

De primaire infrastructurele vereiste is de beschikbaarheid van een Azure Virtual Network (VNet). Dit VNet fungeert als de beveiligde netwerklaag waarin uw Azure-resources worden gehost. Het VNet moet beschikken over voldoende adresruimte om zowel de bestaande resources als de toe te voegen privé-eindpunten te accommoderen. Daarnaast moet het VNet correct geconfigureerd zijn met de juiste subnetten, waarbij minimaal één subnet gereserveerd wordt voor privé-eindpunten conform de aanbevelingen van Microsoft Azure.

Voor de implementatie zelf is een Azure-abonnement vereist met voldoende rechten voor het beheer van netwerkcomponenten en PaaS-services. Specifiek zijn de volgende Azure RBAC-rollen nodig: Network Contributor voor het configureren van netwerkcomponenten, en de relevante contributor-rollen voor de betreffende PaaS-services (bijvoorbeeld SQL DB Contributor voor Azure SQL Database, Storage Account Contributor voor Storage Accounts). Bovendien zijn subscription-level rechten vereist voor het configureren van privé-DNS-zones en het koppelen daarvan aan het VNet.

De belangrijkste functionele vereiste is de aanwezigheid van PaaS-services die ondersteuning bieden voor Azure Private Link. Dit omvat onder meer Azure SQL Database en Azure SQL Managed Instance voor relationele databases, Azure Storage Accounts voor objectopslag, Azure Key Vault voor geheimenbeheer, Azure Cosmos DB voor NoSQL-databases, Azure App Service voor webapplicaties, en Azure Cognitive Services voor AI-functionaliteit. Het is essentieel om vooraf te verifiëren dat de specifieke PaaS-service waar u privé-eindpunten voor wilt implementeren, daadwerkelijk Private Link ondersteunt, aangezien niet alle Azure-services deze functionaliteit aanbieden.

Een kritieke netwerkvereiste betreft de configuratie van Azure Private DNS Zones. Privé-eindpunten werken met privé IP-adressen binnen uw VNet, en voor een naadloze werking moeten deze IP-adressen automatisch worden omgezet naar de juiste volledig gekwalificeerde domeinnamen (FQDNs) van de PaaS-services. Dit vereist de implementatie van specifieke privé-DNS-zones zoals privatelink.database.windows.net voor Azure SQL, privatelink.blob.core.windows.net voor Blob Storage, en privatelink.vaultcore.azure.net voor Key Vault. Deze DNS-zones moeten gekoppeld worden aan uw VNet om automatische naamomzetting mogelijk te maken.

Ten slotte zijn er organisatorische vereisten die aandacht vereisen. Voordat u publieke eindpunten uitschakelt, moet u ervoor zorgen dat alle applicaties en services die afhankelijk zijn van de betreffende PaaS-service, geconfigureerd zijn om te werken via privé-eindpunten. Dit kan betekenen dat u toepassingscode moet aanpassen, verbindingsstrings moet bijwerken, en uitgebreide testen moet uitvoeren in een niet-productieomgeving voordat u de wijzigingen doorvoert naar productie.

Monitoring

Gebruik PowerShell-script private-link-endpoints-paas.ps1 (functie Invoke-Monitoring) – Controleren.

Effectieve monitoring van privé-eindpunten voor PaaS-services is essentieel voor het handhaven van een sterke netwerkbeveiligingspostuur en het garanderen van continue naleving van beveiligingsstandaarden. Monitoring omvat zowel de detectie van PaaS-services die nog geen privé-eindpunten hebben geconfigureerd, als het continu bewaken van de gezondheid en beschikbaarheid van bestaande privé-eindpunten.

De primaire monitoringtaak bestaat uit het identificeren van PaaS-services binnen uw Azure-omgeving die nog steeds gebruikmaken van publieke eindpunten in plaats van privé-eindpunten. Dit is kritiek omdat elke PaaS-service zonder privé-eindpunt een potentieel beveiligingsrisico vormt. Publieke eindpunten zijn toegankelijk via het internet en vergroten het aanvalsoppervlak van uw organisatie aanzienlijk. Het is daarom van het grootste belang om een regelmatig controleschema te implementeren dat automatisch alle PaaS-services scant en rapporteert welke services nog geen privé-eindpunten hebben.

Voor een grondige monitoringaanpak moet u verschillende Azure-services systematisch controleren. Dit omvat Azure SQL Database en Azure SQL Managed Instance instanties, waarbij u specifiek zoekt naar databases die nog toegankelijk zijn via publieke endpoints. Voor Azure Storage Accounts moet u controleren of blob-, file- en queue-services geconfigureerd zijn met privé-eindpunten. Azure Key Vault instanties moeten eveneens gecontroleerd worden, aangezien deze vaak zeer gevoelige gegevens bevatten zoals certificaten, wachtwoorden en API-sleutels. Daarnaast moeten services zoals Azure Cosmos DB, Azure App Service, en Azure Cognitive Services onderdeel uitmaken van uw monitoringprotocol.

Naast het detecteren van ontbrekende privé-eindpunten, is het monitoren van de operationele status van bestaande privé-eindpunten van cruciaal belang. U moet regelmatig verifiëren dat privé-eindpunten correct zijn geconfigureerd, dat de DNS-resolutie correct functioneert, en dat de verbindingen tussen uw VNet en de PaaS-services stabiel en performant zijn. Monitoringoplossingen zoals Azure Monitor kunnen worden gebruikt om metrische gegevens te verzamelen over de beschikbaarheid en prestaties van privé-eindpunten, waardoor u proactief kunt reageren op potentiële problemen.

Voor compliance- en auditdoeleinden is het belangrijk om een gedetailleerd overzicht bij te houden van alle PaaS-services, hun privé-eindpuntconfiguratie, en de datum waarop deze configuratie is geïmplementeerd. Dit inventarisoverzicht moet regelmatig worden bijgewerkt en moet beschikbaar zijn voor interne en externe auditors. Het PowerShell-script dat beschikbaar is via deze controle automatiseert deze monitoringtaak en genereert een uitgebreid rapport dat direct gebruikt kan worden voor compliance-rapportage en risicoanalyses.

Het is aan te bevelen om monitoring te automatiseren via geplande taken die regelmatig worden uitgevoerd, bijvoorbeeld dagelijks of wekelijks afhankelijk van de dynamiek van uw Azure-omgeving. Wanneer nieuwe PaaS-services worden toegevoegd, moeten deze automatisch worden gedetecteerd en geëvalueerd op de aanwezigheid van privé-eindpunten. Alerting moet worden geconfigureerd om beveiligingsteams direct te waarschuwen wanneer een PaaS-service zonder privé-eindpunt wordt gedetecteerd, zodat er snel actie ondernomen kan worden.

Compliance en Auditing

De implementatie van privé-eindpunten voor PaaS-services draagt direct bij aan naleving van meerdere kritieke Nederlandse en internationale beveiligingsstandaarden. Deze controle is met name relevant voor organisaties die moeten voldoen aan de Baseline Informatiebeveiliging Overheid (BIO), de Network and Information Systems Directive 2 (NIS2), de Algemene Verordening Gegevensbescherming (AVG), en de internationale ISO 27001:2022 standaard.

Voor de BIO is controle 13.01 van directe toepassing. Deze controle vereist dat organisaties gebruikmaken van privé-connectiviteit voor het veilig verbinden van systemen en services. Door PaaS-services te isoleren via privé-eindpunten en publieke internettoegang te elimineren, voldoet u aan deze eis. Privé-eindpunten zorgen ervoor dat gegevensverkeer tussen uw virtuele netwerken en PaaS-services uitsluitend via het Microsoft Azure-backbonenetwerk loopt, zonder dat dit verkeer het publieke internet passeert. Dit vermindert het risico op interceptie, man-in-the-middle-aanvallen, en onbevoegde toegang aanzienlijk.

De ISO 27001:2022 controle A.8.20 betreft netwerkbeveiliging en vereist dat organisaties netwerkdiensten en netwerkverbindingen beveiligen tegen bedreigingen. Privé-eindpunten vormen een cruciale technische maatregel om aan deze controle te voldoen, omdat zij netwerksegmentatie en -isolatie implementeren op het niveau van individuele services. Door elke PaaS-service te voorzien van een privé IP-adres binnen uw VNet en deze service alleen toegankelijk te maken via geautoriseerde netwerkverbindingen, creëert u een geïsoleerde beveiligingszone die beschermd is tegen ongeautoriseerde netwerktoegang.

Voor organisaties die onder de NIS2-richtlijn vallen, is de implementatie van privé-eindpunten een belangrijke technische maatregel om te voldoen aan de eisen voor netwerk- en informatiesysteembeveiliging. NIS2 vereist dat essentiële en belangrijke entiteiten passende technische en organisatorische maatregelen treffen om risico's voor de beschikbaarheid, authenticiteit, integriteit en vertrouwelijkheid van hun netwerk- en informatiesystemen te beheersen. Privé-eindpunten dragen hieraan bij door de netwerkaanvalsoppervlakte te minimaliseren en door te zorgen dat kritieke PaaS-services alleen toegankelijk zijn via beveiligde, gecontroleerde netwerkpaden.

Vanuit AVG-perspectief dragen privé-eindpunten bij aan de naleving van artikel 32, dat vereist dat organisaties passende technische en organisatorische maatregelen treffen om persoonsgegevens te beveiligen. Door persoonsgegevens die worden opgeslagen in of verwerkt door PaaS-services (zoals Azure SQL Database of Azure Storage Accounts) te isoleren via privé-eindpunten, vermindert u het risico op datalekken en onbevoegde toegang aanzienlijk. Dit is met name relevant voor overheidsorganisaties die grote hoeveelheden persoonsgegevens verwerken.

Voor auditing en compliance-rapportage is het essentieel om gedetailleerde documentatie bij te houden van alle geïmplementeerde privé-eindpunten. Deze documentatie moet informatie bevatten over welke PaaS-services voorzien zijn van privé-eindpunten, wanneer deze zijn geïmplementeerd, welke VNet-subnetten worden gebruikt, en hoe de DNS-configuratie is ingericht. Regelmatige compliance-audits moeten verifiëren dat alle kritieke PaaS-services daadwerkelijk gebruikmaken van privé-eindpunten en dat publieke toegang correct is uitgeschakeld. Het PowerShell-monitoringscript dat beschikbaar is via deze controle kan worden gebruikt om automatisch compliance-rapporten te genereren die direct gebruikt kunnen worden tijdens externe audits.

Het is belangrijk om te erkennen dat de implementatie van privé-eindpunten alleen één onderdeel vormt van een bredere beveiligingsstrategie. Voor volledige compliance moet deze technische maatregel worden aangevuld met andere controles zoals netwerksegmentatie, toegangsbeheer, logging en monitoring, en regelmatige beveiligingsbeoordelingen. Privé-eindpunten vormen echter een fundamentele bouwsteen voor Zero Trust-netwerkarchitectuur, die steeds vaker wordt vereist door moderne beveiligingsstandaarden en compliance frameworks.

Remediatie

Gebruik PowerShell-script private-link-endpoints-paas.ps1 (functie Invoke-Remediation) – Herstellen.

Remediatie van PaaS-services zonder privé-eindpunten vereist een gestructureerde en voorzichtige aanpak om ervoor te zorgen dat bestaande applicaties en services niet worden verstoord tijdens de migratie van publieke naar privé-eindpunten. Het remediatieproces omvat meerdere stappen die zorgvuldig moeten worden gepland en uitgevoerd, bij voorkeur in een gefaseerde benadering die begint met niet-kritieke services voordat kritieke productieservices worden aangepakt.

De eerste stap in het remediatieproces is het identificeren en inventariseren van alle PaaS-services die nog geen privé-eindpunten hebben. Dit kan worden gedaan met behulp van het beschikbare PowerShell-script dat automatisch alle relevante services in uw Azure-abonnement scant. Zodra de lijst met services is geïdentificeerd, moet u een prioriteringsmatrix opstellen op basis van criteria zoals de gevoeligheid van de gegevens die door de service worden verwerkt, de kritiekheid voor bedrijfsprocessen, en de complexiteit van de migratie. Services die zeer gevoelige gegevens verwerken of die direct gekoppeld zijn aan kritieke bedrijfsprocessen, moeten prioriteit krijgen maar vereisen ook de meest grondige planning en testen.

Voor elke PaaS-service die moet worden gemigreerd, begint het remediatieproces met het maken van een privé-eindpunt in het juiste VNet-subnet. Het privé-eindpunt moet worden gekoppeld aan de specifieke PaaS-service-resource (bijvoorbeeld een specifieke SQL-database of een specifiek Storage Account). Tijdens het aanmaken van het privé-eindpunt moet u ervoor zorgen dat de juiste privé-DNS-zone is geconfigureerd en gekoppeld aan uw VNet. Deze DNS-zone zorgt ervoor dat aanvragen naar de publieke FQDN van de service automatisch worden omgeleid naar het privé IP-adres van het eindpunt binnen uw VNet.

Na het aanmaken van het privé-eindpunt, maar voordat u publieke toegang uitschakelt, is het cruciaal om uitgebreide functionele tests uit te voeren. Alle applicaties en services die gebruikmaken van de betreffende PaaS-service moeten worden getest om te verifiëren dat zij correct kunnen verbinden via het privé-eindpunt. Dit kan betekenen dat u verbindingsstrings moet bijwerken in applicatieconfiguraties, dat u firewallregels moet aanpassen om verkeer via het privé-eindpunt toe te staan, en dat u de DNS-resolutie moet verifiëren vanuit uw VNet-resources. Het is aan te bevelen om deze tests eerst uit te voeren in een test- of ontwikkelomgeving voordat u wijzigingen doorvoert in productie.

Zodra u heeft geverifieerd dat alle verbindingen correct werken via het privé-eindpunt, kunt u overwegen om publieke toegang uit te schakelen voor de PaaS-service. Echter, dit moet zeer voorzichtig worden gedaan en alleen na grondige verificatie. Voor sommige services zoals Azure Storage Accounts kunt u publieke toegang beperken tot alleen geautoriseerde netwerken of volledig uitschakelen. Voor Azure SQL Database kunt u firewallregels aanpassen om alleen verkeer vanuit uw VNet toe te staan. Het is belangrijk om te erkennen dat het uitschakelen van publieke toegang een onomkeerbare wijziging kan zijn die alle externe toegang blokkeert, daarom moet dit alleen worden gedaan na volledige verificatie dat alle benodigde toegang via privé-eindpunten werkt.

Het PowerShell-remediatiescript dat beschikbaar is via deze controle automatiseert veel van deze stappen en kan worden gebruikt om het remediatieproces te versnellen. Het script maakt automatisch privé-eindpunten aan, configureert de benodigde DNS-zones, en kan optioneel helpen bij het uitschakelen van publieke toegang wanneer dit gewenst is. Echter, zelfs bij gebruik van geautomatiseerde scripts is het essentieel om het proces zorgvuldig te plannen, uitgebreid te testen, en gefaseerd uit te voeren om verstoring van bedrijfskritieke services te voorkomen. Na voltooiing van de remediatie moet u regelmatige monitoring implementeren om ervoor te zorgen dat alle nieuwe PaaS-services automatisch worden voorzien van privé-eindpunten.

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
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Private Link Endpoints PaaS .DESCRIPTION CIS Azure Foundations Benchmark - Control 6.21 Controleert gebruik van Private Link endpoints voor PaaS services. .NOTES Filename: private-link-endpoints-paas.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 6.21 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Network [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "Private Link Endpoints PaaS" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $privateEndpoints = Get-AzPrivateEndpoint -ErrorAction SilentlyContinue $result = @{ TotalPrivateEndpoints = $privateEndpoints.Count } return $result } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Private Endpoints: $($r.TotalPrivateEndpoints)" -ForegroundColor $(if ($r.TotalPrivateEndpoints -gt 0) { 'Green' } else { 'Yellow' }) if ($r.TotalPrivateEndpoints -eq 0) { Write-Host "`nℹ️ Overweeg Private Link voor PaaS services" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nPrivate Endpoints: $($r.TotalPrivateEndpoints)" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Private Endpoints: $($r.TotalPrivateEndpoints)" -ForegroundColor $(if ($r.TotalPrivateEndpoints -gt 0) { 'Green' } else { 'Yellow' }) if ($r.TotalPrivateEndpoints -eq 0) { Write-Host "`nℹ️ Overweeg Private Link voor PaaS services" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nPrivate Endpoints: $($r.TotalPrivateEndpoints)" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de configuratie naar de gewenste staat .DESCRIPTION Dit is een monitoring-only control, remediation delegeert naar monitoring #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
Medium: Publieke PaaS-eindpunten betekenen blootstelling aan internet. SQL-databases, Storage Accounts en Key Vaults zijn direct toegankelijk via het publieke internet, wat het risico op ongeautoriseerde toegang, datalekken en cyberaanvallen aanzienlijk verhoogt. Zonder privé-eindpunten voldoet de organisatie niet aan de eisen van NIS2 en Zero Trust-architectuur. Het risico is hoog voor productie PaaS-services die gevoelige gegevens verwerken.

Management Samenvatting

Privé-eindpunten voor PaaS: uitsluitend VNet-toegang voor SQL, Storage, Key Vault en Cosmos DB, waardoor publieke internettoegang wordt geëlimineerd. Implementatie: Deploy Privé-eindpunten → Configureer Privé-DNS. Kosten: €6 per maand per eindpunt. Verplicht voor NIS2 en Zero Trust. Implementatietijd: 6-8 uur. Essentieel voor productie PaaS-isolatie en netwerkbeveiliging.