💼 Management Samenvatting
Virtual Network (VNet) Injection implementeert Azure Databricks clusters binnen een door de klant beheerd virtueel netwerk, waardoor organisaties volledige netwerkcontrole verkrijgen via Network Security Groups (NSGs), firewalls, private endpoints en on-premises connectiviteit. Deze architectuur is essentieel voor organisaties met strenge netwerksegmentatie-eisen.
In een standaard Azure Databricks deployment worden clusters geïmplementeerd in een door Microsoft beheerd virtueel netwerk, waarbij organisaties geen directe netwerkcontrole hebben. Dit betekent dat u geen Network Security Groups kunt toepassen op het cluster-verkeer, geen private endpoints kunt configureren voor beveiligde toegang tot Azure-services, geen connectiviteit heeft met uw on-premises omgeving via ExpressRoute of VPN, beperkte zichtbaarheid heeft in netwerkverkeerspatronen, en potentiële compliance-hiaten ontstaan ten aanzien van netwerk-isolatie-eisen. Met VNet Injection verkrijgt uw organisatie volledige controle over het netwerkverkeer van Databricks. Dit omvat de mogelijkheid om NSG-regels toe te passen op al het cluster-verkeer, User Defined Routes (UDR) te gebruiken voor het routeren van verkeer via bijvoorbeeld een Azure Firewall, Private Link en private endpoints in te zetten voor veilige toegang tot Azure Storage en Key Vault, Azure Firewall-integratie te realiseren voor uitgaand verkeer-filtering, ExpressRoute of site-to-site VPN-connectiviteit te configureren naar on-premises datacenters en applicaties, en te voldoen aan netwerk-isolatie-vereisten zoals gesteld in NIS2 en ISO 27001. Voor organisaties in gereguleerde sectoren of met Zero Trust-architectuurprincipes is VNet Injection daarom vaak een must-have vereiste.
Connection:
Connect-AzAccountRequired Modules: Az.Databricks, Az.Network
Implementatie
Deze maatregel implementeert VNet Injection voor Azure Databricks workspaces, waarbij Databricks clusters worden geïmplementeerd in een door de organisatie beheerd virtueel netwerk. De implementatie omvat verschillende essentiële stappen. Allereerst moet een toegewijd Virtual Network worden aangemaakt met voldoende adresruimte (minimaal een /16 CIDR-range wordt aanbevolen). Binnen dit VNet moeten twee afzonderlijke subnets worden gecreëerd: een publiek subnet (minimaal /24) en een privé subnet (minimaal /24) die beide specifiek gereserveerd zijn voor Databricks-gebruik. Deze subnets moeten gedelegeerd worden aan de Microsoft.Databricks/workspaces service, wat toestemming geeft aan Databricks om resources in deze subnets te beheren. Vervolgens moeten Network Security Group-regels worden geconfigureerd die het vereiste Databricks-verkeer toestaan, inclusief inbound verkeer op poort 443 vanaf de AzureDatabricks service tag voor control plane-communicatie. Bij het aanmaken van de Databricks workspace moet de VNet Injection-configuratie worden gespecificeerd, waarbij het aangemaakte VNet en de subnets worden geselecteerd. Optioneel kunnen User Defined Routes worden geconfigureerd voor het routeren van uitgaand verkeer via een Azure Firewall, en kunnen private endpoints worden ingesteld voor beveiligde toegang tot Azure Storage en Key Vault. Na de implementatie worden alle Databricks clusters automatisch binnen het klant-VNet aangemaakt, wat volledige netwerk-zichtbaarheid en controle mogelijk maakt.
- Design de VNet address space met voldoende capaciteit voor toekomstige groei. MINIMUM is /16 (65.536 IP-adressen) maar /14 is recommended voor large-scale deployments met 100+ concurrent clusters. Databricks clusters consumeren significant IP-adressen: een 10-node cluster gebruikt 20+ IPs (2x aantal nodes voor redundancy).
- Kies een private IP-range volgens RFC 1918 standaarden die NIET overlapt met bestaande corporate networks (on-premises of andere Azure VNets): 10.0.0.0/8, 172.16.0.0/12, of 192.168.0.0/16. Overlap veroorzaakt routing conflicts die ExpressRoute/VPN connectivity blokkeren.
- Plan subnet sizing: Databricks vereist TWEE dedicated subnets: (1) 'Public' subnet (misleading naam - het is NIET internet-facing, maar voor control plane communicatie) met minimum /26 (64 IPs) maar /24 (256 IPs) recommended, (2) 'Private' subnet voor cluster worker nodes met minimum /26 maar /23 of groter recommended voor production (elke cluster node consumed 2 IPs). Formule: (#max_concurrent_cluster_nodes × 2) + 25% overhead.
- Documenteer het IP address plan in een network diagram met CIDR blocks, subnet purposes, reserved ranges voor future expansion, en integration points met corporate network (VPN gateway subnets, ExpressRoute gateways, Azure Firewall subnet).
- Obtain approval van enterprise networking team voor de VNet design, IP allocation en routing plan om conflicts met existing network infrastructure te voorkomen. Networking-gerelateerde issues na deployment zijn zeer moeilijk te remediëren.
- Creëer Azure VNet via Azure Portal, ARM template of Terraform in dezelfde Azure region als de geplande Databricks workspace (cross-region VNet Injection is niet supported). Naming convention: 'vnet-databricks-prod-westeurope'.
- Configureer de VNet address space met de in Fase 1 geplande CIDR block, bijvoorbeeld 10.140.0.0/16 voor een dedicated Databricks VNet of integreer in bestaande enterprise VNet als subnet.
- Schakel DDoS Protection Standard optioneel IN voor productie-workloads (€2.500/maand maar biedt protection tegen volumetric attacks). Basic DDoS is gratis maar limited protection.
- Configureer Azure DNS settings: gebruik Azure-provided DNS (168.63.129.16) of custom DNS servers indien corporate policy dit vereist. Let op: custom DNS kan Databricks control plane connectivity blokkeren indien niet correct configured.
- Tag de VNet met relevante metadata: Environment=Production, Workload=Databricks, CostCenter=Analytics, Owner=DataEngineering voor resource management en cost allocation.
- Creëer het 'public' subnet (ondanks de naam: niet publiek toegankelijk, maar voor Databricks control plane communicatie): gebruik CIDR zoals 10.140.1.0/24, naam zoals 'snet-databricks-public', en delegeer het subnet aan 'Microsoft.Databricks/workspaces' service delegation (MANDATORY voor VNet Injection).
- Creëer het 'private' subnet voor Databricks worker nodes: gebruik CIDR zoals 10.140.2.0/23 (512 IPs voor grotere clusters), naam zoals 'snet-databricks-private', en delegeer ook dit subnet aan 'Microsoft.Databricks/workspaces'.
- Subnet delegation is KRITIEK: zonder delegation zal Databricks workspace deployment falen. Delegation geeft Databricks-service permissions om network interfaces aan te maken in deze subnets tijdens cluster launches.
- Reserveer GEEN IP-adressen in deze subnets voor andere resources - Databricks-delegated subnets mogen ALLEEN door Databricks worden gebruikt. Andere VMs of resources in deze subnets zullen deployment problemen veroorzaken.
- Voor multi-workspace scenarios: creëer separate subnet pairs per workspace voor volledige isolatie, of gebruik shared subnets (mogelijk maar meer complex permission management).
- Creëer een dedicated NSG voor Databricks subnets: naam zoals 'nsg-databricks-prod'. Gebruik NIET shared NSGs met andere workloads om blast radius te limiteren.
- Configureer MANDATORY inbound rules vereist voor Databricks control plane connectivity: (1) Allow inbound TCP 443 FROM 'AzureDatabricks' service tag TO subnet (workspace management), (2) Allow inbound ANY FROM VirtualNetwork TO VirtualNetwork (inter-cluster communicatie tussen public en private subnets). Zonder deze rules kunnen clusters niet starten.
- Configureer MANDATORY outbound rules: (1) Allow outbound TCP 443 TO 'AzureDatabricks' service tag (control plane), (2) Allow outbound TCP 3306 TO 'Sql' service tag (metastore), (3) Allow outbound TCP 443 TO 'Storage' service tag (DBFS, cluster logs), (4) Allow outbound ANY TO VirtualNetwork (inter-cluster).
- Implementeer RESTRICTIVE outbound rules voor security hardening: Block outbound TO Internet BEHALVE via Azure Firewall (implementeer UDRs in Fase 6), Allow only specific Azure service tags (Storage, Sql, KeyVault, AzureActiveDirectory) en block 'Internet' service tag direct om data exfiltration te voorkomen, Log ALL denied traffic via NSG Flow Logs voor security monitoring.
- Koppel de NSG aan BEIDE Databricks subnets (public en private). NSG moet zijn attached voordat workspace wordt deployed.
- Test NSG rules door een test Databricks workspace te deployen in een development VNet met identieke NSG configuration om te verifiëren dat clusters kunnen starten. NSG misconfigurations zijn de #1 oorzaak van VNet Injection deployment failures.
- Start Databricks workspace creation via Azure Portal → Create Databricks Workspace → tijdens 'Networking' tab selecteer 'Deploy Azure Databricks workspace in your Virtual Network (VNet Injection)'.
- Selecteer de in Fase 2 gecreëerde VNet en de public/private subnets. Azure valideert automatisch of subnets correct zijn gedelegeerd en voldoende IP space hebben.
- Configureer 'Secure Cluster Connectivity' (No Public IP) optie: wanneer enabled, krijgen cluster nodes GEEN public IP-adressen wat attack surface reduceert. Recommended voor high-security deployments, maar vereist NAT Gateway of Azure Firewall voor outbound internet connectivity.
- Voor private connectivity: schakel 'Private Link' optioneel IN wat een Private Endpoint creëert voor de Databricks workspace URL (webapp endpoint) zodat users Databricks UI kunnen bereiken via private IP in plaats van publiek.
- Valideer tijdens deployment: Azure controleert subnet delegation, NSG attachment, IP space sufficiency. Deployment fails met detailed error als iets niet klopt - lees error messages carefully.
- Wacht op deployment completion (10-15 minuten). Monitor deployment via Azure Portal notifications of Azure CLI: 'az databricks workspace show --resource-group
--name --query provisioningState'. - Immediate na deployment: verifieer dat VNet Injection correct is door te checken: Azure Portal → Databricks workspace → Networking waarbij VNet name en subnet names moeten verschijnen. Start een test cluster en verify dat network interfaces verschijnen in de designated subnets.
- Voor centralized traffic inspection: creëer een Route Table en associeer met beide Databricks subnets. Configureer UDRs die ALLE outbound internet traffic (0.0.0.0/0) forwarden naar Azure Firewall of Network Virtual Appliance (NVA) voor inspection.
- Deploy Azure Firewall in een dedicated subnet in de VNet of in hub VNet (hub-spoke topology). Configureer Firewall rules die Databricks required outbound traffic toestaan: *.azuredatabricks.net op TCP 443, Azure Storage endpoints, Azure SQL metastore, package repositories zoals PyPI/Maven voor library installations.
- KRITIEKE AANDACHT: UDRs kunnen Databricks control plane connectivity breken indien incorrectly configured. Gebruik de Azure Databricks-provided UDR template als starting point: routes naar AzureDatabricks service tag moeten NIET via Firewall maar direct naar internet om asymmetric routing te voorkomen.
- Implementeer Azure Firewall threat intelligence-based filtering die automatic blocks traffic naar known malicious IP addresses and domains, wat data exfiltration naar command & control servers voorkomt.
- Test thoroughly: start een cluster en monitor Azure Firewall logs om te verifiëren dat all required traffic wordt toegestaan. Cluster start failures door UDR/Firewall blocks zijn common - iterative testing is essential.
- Voor Azure Storage Accounts gebruikt door Databricks (DBFS storage, cluster logs): creëer Private Endpoints in de Databricks VNet zodat storage traffic private blijft. Configure Private DNS zones voor automatic DNS resolution van storage.blob.core.windows.net naar private IPs.
- Voor Azure Key Vault (indien CMK gebruikt): implementeer Private Endpoint zodat encryption key access via private network gebeurt. Kritiek voor compliance met data sovereignty vereisten.
- Voor Azure SQL Databases of Azure Synapse gebruikt als data sources: Private Endpoints elimineren public internet exposure van database connections. Databricks clusters kunnen dan secure via private IPs connecteren.
- Voor elke Private Endpoint: verify DNS resolution werkt correct vanaf Databricks clusters door een notebook te draaien met 'nslookup storage-account.blob.core.windows.net' - dit moet private IP teruggeven (10.x.x.x), NIET public IP (20.x.x.x of 52.x.x.x).
- Configureer NSG rules om traffic naar Private Endpoint IPs toe te staan indien restrictive outbound rules in plaats zijn. Private Endpoints gebruiken service tag 'Storage', 'KeyVault', 'Sql' die al in NSG allowed should zijn.
- Schakel NSG Flow Logs IN voor de Databricks NSG: send flow logs naar Storage Account voor retention en optioneel naar Log Analytics for real-time analysis. Flow logs capture ALL traffic (allowed en denied) voor security forensics.
- Configureer Traffic Analytics (built-in Azure feature) die NSG Flow Logs analyseert en visualizations biedt van: top talkers (welke IPs genereren meeste traffic), geographic traffic patterns (detect traffic naar unexpected countries), denied traffic patterns (blocked data exfiltration attempts), protocol distribution.
- Implementeer Azure Network Watcher packet captures (on-demand) voor deep troubleshooting van connectivity issues. Packet captures kunnen worden triggered wanneer clusters failover te starten.
- Creëer Azure Monitor alerts voor anomalous network behavior: Sudden spike in outbound traffic volume (>1000% increase kan indicate data exfiltration), Traffic naar new external IPs not seen before (could be command & control), High volume of denied traffic (indicates scanning or attack attempts), Connectivity failures naar critical endpoints zoals storage or metastore.
- Setup a monitoring dashboard in Azure Monitor workbooks met: Network traffic volume trends, Top destination IPs en ports, NSG rule hit counts (welke rules worden vaak triggered), Denied traffic analysis.
Vereisten
- Toegewijd VNet met minimaal /16 CIDR (of groter)
- Twee subnets voor Databricks: publiek (/24) en privé (/24)
- NSG gekoppeld aan beide subnets
- Subnet delegatie geconfigureerd naar Microsoft.Databricks/workspaces
- Geen UDR conflicten met Databricks regelen plane communicatie
- firewall regels voor vereiste Databricks endpoints
- Planning voor IP adres ruimte (clusters gebruiken IP adressen)
Implementatie
Gebruik PowerShell-script databricks-custom-vnet.ps1 (functie Invoke-Remediation) – Automatiseert VNet Injection-configuratie voor Databricks workspaces inclusief VNet setup, subnet delegation en NSG-configuratie.
⚠️ **KRITIEKE VEREISTE**: Custom VNet Injection kan UITSLUITEND worden geconfigureerd tijdens het initiële aanmaken van een Azure Databricks workspace. Retrofitting VNet Injection op bestaande workspaces is technisch onmogelijk - dit vereist complete workspace re-creation met volledige data-migratie. Plan dit zorgvuldig VOORDAT u productie-workspaces deployt.
**FASE 1: Virtual Network Design en IP Address Planning (Duur: 2-3 uur)**
- Design de VNet address space met voldoende capaciteit voor toekomstige groei. MINIMUM is /16 (65.536 IP-adressen) maar /14 is recommended voor large-scale deployments met 100+ concurrent clusters. Databricks clusters consumeren significant IP-adressen: een 10-node cluster gebruikt 20+ IPs (2x aantal nodes voor redundancy).
- Kies een private IP-range volgens RFC 1918 standaarden die NIET overlapt met bestaande corporate networks (on-premises of andere Azure VNets): 10.0.0.0/8, 172.16.0.0/12, of 192.168.0.0/16. Overlap veroorzaakt routing conflicts die ExpressRoute/VPN connectivity blokkeren.
- Plan subnet sizing: Databricks vereist TWEE dedicated subnets: (1) 'Public' subnet (misleading naam - het is NIET internet-facing, maar voor control plane communicatie) met minimum /26 (64 IPs) maar /24 (256 IPs) recommended, (2) 'Private' subnet voor cluster worker nodes met minimum /26 maar /23 of groter recommended voor production (elke cluster node consumed 2 IPs). Formule: (#max_concurrent_cluster_nodes × 2) + 25% overhead.
- Documenteer het IP address plan in een network diagram met CIDR blocks, subnet purposes, reserved ranges voor future expansion, en integration points met corporate network (VPN gateway subnets, ExpressRoute gateways, Azure Firewall subnet).
- Obtain approval van enterprise networking team voor de VNet design, IP allocation en routing plan om conflicts met existing network infrastructure te voorkomen. Networking-gerelateerde issues na deployment zijn zeer moeilijk te remediëren.
**FASE 2: Azure Virtual Network Creatie en Basis-configuratie (Duur: 1 uur)**
- Creëer Azure VNet via Azure Portal, ARM template of Terraform in dezelfde Azure region als de geplande Databricks workspace (cross-region VNet Injection is niet supported). Naming convention: 'vnet-databricks-prod-westeurope'.
- Configureer de VNet address space met de in Fase 1 geplande CIDR block, bijvoorbeeld 10.140.0.0/16 voor een dedicated Databricks VNet of integreer in bestaande enterprise VNet als subnet.
- Schakel DDoS Protection Standard optioneel IN voor productie-workloads (€2.500/maand maar biedt protection tegen volumetric attacks). Basic DDoS is gratis maar limited protection.
- Configureer Azure DNS settings: gebruik Azure-provided DNS (168.63.129.16) of custom DNS servers indien corporate policy dit vereist. Let op: custom DNS kan Databricks control plane connectivity blokkeren indien niet correct configured.
- Tag de VNet met relevante metadata: Environment=Production, Workload=Databricks, CostCenter=Analytics, Owner=DataEngineering voor resource management en cost allocation.
**FASE 3: Databricks Subnets Creatie met Delegation (Duur: 1 uur)**
- Creëer het 'public' subnet (ondanks de naam: niet publiek toegankelijk, maar voor Databricks control plane communicatie): gebruik CIDR zoals 10.140.1.0/24, naam zoals 'snet-databricks-public', en delegeer het subnet aan 'Microsoft.Databricks/workspaces' service delegation (MANDATORY voor VNet Injection).
- Creëer het 'private' subnet voor Databricks worker nodes: gebruik CIDR zoals 10.140.2.0/23 (512 IPs voor grotere clusters), naam zoals 'snet-databricks-private', en delegeer ook dit subnet aan 'Microsoft.Databricks/workspaces'.
- Subnet delegation is KRITIEK: zonder delegation zal Databricks workspace deployment falen. Delegation geeft Databricks-service permissions om network interfaces aan te maken in deze subnets tijdens cluster launches.
- Reserveer GEEN IP-adressen in deze subnets voor andere resources - Databricks-delegated subnets mogen ALLEEN door Databricks worden gebruikt. Andere VMs of resources in deze subnets zullen deployment problemen veroorzaken.
- Voor multi-workspace scenarios: creëer separate subnet pairs per workspace voor volledige isolatie, of gebruik shared subnets (mogelijk maar meer complex permission management).
**FASE 4: Network Security Groups (NSGs) Configuratie met Required Rules (Duur: 2-3 uur)**
- Creëer een dedicated NSG voor Databricks subnets: naam zoals 'nsg-databricks-prod'. Gebruik NIET shared NSGs met andere workloads om blast radius te limiteren.
- Configureer MANDATORY inbound rules vereist voor Databricks control plane connectivity: (1) Allow inbound TCP 443 FROM 'AzureDatabricks' service tag TO subnet (workspace management), (2) Allow inbound ANY FROM VirtualNetwork TO VirtualNetwork (inter-cluster communicatie tussen public en private subnets). Zonder deze rules kunnen clusters niet starten.
- Configureer MANDATORY outbound rules: (1) Allow outbound TCP 443 TO 'AzureDatabricks' service tag (control plane), (2) Allow outbound TCP 3306 TO 'Sql' service tag (metastore), (3) Allow outbound TCP 443 TO 'Storage' service tag (DBFS, cluster logs), (4) Allow outbound ANY TO VirtualNetwork (inter-cluster).
- Implementeer RESTRICTIVE outbound rules voor security hardening: Block outbound TO Internet BEHALVE via Azure Firewall (implementeer UDRs in Fase 6), Allow only specific Azure service tags (Storage, Sql, KeyVault, AzureActiveDirectory) en block 'Internet' service tag direct om data exfiltration te voorkomen, Log ALL denied traffic via NSG Flow Logs voor security monitoring.
- Koppel de NSG aan BEIDE Databricks subnets (public en private). NSG moet zijn attached voordat workspace wordt deployed.
- Test NSG rules door een test Databricks workspace te deployen in een development VNet met identieke NSG configuration om te verifiëren dat clusters kunnen starten. NSG misconfigurations zijn de #1 oorzaak van VNet Injection deployment failures.
**FASE 5: Databricks Workspace Deployment met VNet Injection (Duur: 2 uur)**
- Start Databricks workspace creation via Azure Portal → Create Databricks Workspace → tijdens 'Networking' tab selecteer 'Deploy Azure Databricks workspace in your Virtual Network (VNet Injection)'.
- Selecteer de in Fase 2 gecreëerde VNet en de public/private subnets. Azure valideert automatisch of subnets correct zijn gedelegeerd en voldoende IP space hebben.
- Configureer 'Secure Cluster Connectivity' (No Public IP) optie: wanneer enabled, krijgen cluster nodes GEEN public IP-adressen wat attack surface reduceert. Recommended voor high-security deployments, maar vereist NAT Gateway of Azure Firewall voor outbound internet connectivity.
- Voor private connectivity: schakel 'Private Link' optioneel IN wat een Private Endpoint creëert voor de Databricks workspace URL (webapp endpoint) zodat users Databricks UI kunnen bereiken via private IP in plaats van publiek.
- Valideer tijdens deployment: Azure controleert subnet delegation, NSG attachment, IP space sufficiency. Deployment fails met detailed error als iets niet klopt - lees error messages carefully.
- Wacht op deployment completion (10-15 minuten). Monitor deployment via Azure Portal notifications of Azure CLI: 'az databricks workspace show --resource-group
--name --query provisioningState'. - Immediate na deployment: verifieer dat VNet Injection correct is door te checken: Azure Portal → Databricks workspace → Networking waarbij VNet name en subnet names moeten verschijnen. Start een test cluster en verify dat network interfaces verschijnen in de designated subnets.
**FASE 6: User-Defined Routes (UDRs) en Azure Firewall Integration (Optioneel maar Recommended, Duur: 3-4 uur)**
- Voor centralized traffic inspection: creëer een Route Table en associeer met beide Databricks subnets. Configureer UDRs die ALLE outbound internet traffic (0.0.0.0/0) forwarden naar Azure Firewall of Network Virtual Appliance (NVA) voor inspection.
- Deploy Azure Firewall in een dedicated subnet in de VNet of in hub VNet (hub-spoke topology). Configureer Firewall rules die Databricks required outbound traffic toestaan: *.azuredatabricks.net op TCP 443, Azure Storage endpoints, Azure SQL metastore, package repositories zoals PyPI/Maven voor library installations.
- KRITIEKE AANDACHT: UDRs kunnen Databricks control plane connectivity breken indien incorrectly configured. Gebruik de Azure Databricks-provided UDR template als starting point: routes naar AzureDatabricks service tag moeten NIET via Firewall maar direct naar internet om asymmetric routing te voorkomen.
- Implementeer Azure Firewall threat intelligence-based filtering die automatic blocks traffic naar known malicious IP addresses and domains, wat data exfiltration naar command & control servers voorkomt.
- Test thoroughly: start een cluster en monitor Azure Firewall logs om te verifiëren dat all required traffic wordt toegestaan. Cluster start failures door UDR/Firewall blocks zijn common - iterative testing is essential.
**FASE 7: Private Endpoints voor Dependent Azure Services (Duur: 2-3 uur)**
- Voor Azure Storage Accounts gebruikt door Databricks (DBFS storage, cluster logs): creëer Private Endpoints in de Databricks VNet zodat storage traffic private blijft. Configure Private DNS zones voor automatic DNS resolution van storage.blob.core.windows.net naar private IPs.
- Voor Azure Key Vault (indien CMK gebruikt): implementeer Private Endpoint zodat encryption key access via private network gebeurt. Kritiek voor compliance met data sovereignty vereisten.
- Voor Azure SQL Databases of Azure Synapse gebruikt als data sources: Private Endpoints elimineren public internet exposure van database connections. Databricks clusters kunnen dan secure via private IPs connecteren.
- Voor elke Private Endpoint: verify DNS resolution werkt correct vanaf Databricks clusters door een notebook te draaien met 'nslookup storage-account.blob.core.windows.net' - dit moet private IP teruggeven (10.x.x.x), NIET public IP (20.x.x.x of 52.x.x.x).
- Configureer NSG rules om traffic naar Private Endpoint IPs toe te staan indien restrictive outbound rules in plaats zijn. Private Endpoints gebruiken service tag 'Storage', 'KeyVault', 'Sql' die al in NSG allowed should zijn.
**FASE 8: NSG Flow Logs en Network Monitoring Setup (Duur: 1-2 uur)**
- Schakel NSG Flow Logs IN voor de Databricks NSG: send flow logs naar Storage Account voor retention en optioneel naar Log Analytics for real-time analysis. Flow logs capture ALL traffic (allowed en denied) voor security forensics.
- Configureer Traffic Analytics (built-in Azure feature) die NSG Flow Logs analyseert en visualizations biedt van: top talkers (welke IPs genereren meeste traffic), geographic traffic patterns (detect traffic naar unexpected countries), denied traffic patterns (blocked data exfiltration attempts), protocol distribution.
- Implementeer Azure Network Watcher packet captures (on-demand) voor deep troubleshooting van connectivity issues. Packet captures kunnen worden triggered wanneer clusters failover te starten.
- Creëer Azure Monitor alerts voor anomalous network behavior: Sudden spike in outbound traffic volume (>1000% increase kan indicate data exfiltration), Traffic naar new external IPs not seen before (could be command & control), High volume of denied traffic (indicates scanning or attack attempts), Connectivity failures naar critical endpoints zoals storage or metastore.
- Setup a monitoring dashboard in Azure Monitor workbooks met: Network traffic volume trends, Top destination IPs en ports, NSG rule hit counts (welke rules worden vaak triggered), Denied traffic analysis.
**FASE 9: On-Premises Connectivity via ExpressRoute of VPN (Optioneel, Duur: 4-8 uur)**
De negende fase omvat de optionele implementatie van on-premises connectiviteit via ExpressRoute of VPN Gateway voor hybrid cloud-scenario's waarbij Databricks-clusters moeten verbinden met on-premises databronnen zoals legacy-databases, bestandsservers of private API's. Voor deze scenario's moeten organisaties kiezen tussen ExpressRoute, dat een toegewijde private verbinding biedt met voorspelbare latency en hogere bandbreedte (1-100 Gbps), of VPN Gateway, dat een virtuele private netwerkverbinding biedt via het publieke internet met lagere kosten maar variabele performance. ExpressRoute is bijzonder geschikt voor organisaties met hoge beschikbaarheidsvereisten of die grote hoeveelheden data moeten verplaatsen tussen on-premises systemen en Azure Databricks, maar kost tussen €400 en €4.000 per maand afhankelijk van de bandbreedte en connectiviteitsprovider. VPN Gateway is een goedkopere optie (circa €100 per maand) maar biedt variabele performance en hogere latency, wat acceptabel kan zijn voor organisaties met minder strenge vereisten of lagere data-volumes.
Wanneer het Databricks-VNet en het on-premises gateway-VNet gescheiden zijn, moeten organisaties VNet-peering configureren tussen het Databricks-VNet en het hub-VNet met gatewaytransit ingeschakeld, zodat Databricks-verkeer kan worden gerouteerd via de gecentraliseerde ExpressRoute- of VPN-gateway. Deze configuratie maakt het mogelijk om meerdere spoke-VNets, inclusief het Databricks-VNet, te laten delen van een enkele ExpressRoute- of VPN-verbinding, wat kostenefficiënt is en consistente routing biedt across de hele organisatie. Gatewaytransit moet expliciet worden ingeschakeld tijdens de VNet-peering-configuratie, omdat deze functie standaard is uitgeschakeld om beveiligingsredenen. Wanneer gatewaytransit is ingeschakeld, kunnen resources in het Databricks-VNet automatisch gebruik maken van de gateway in het hub-VNet zonder dat er een aparte gateway hoeft te worden geïmplementeerd in het Databricks-VNet, wat kosten bespaart en de netwerktopologie vereenvoudigt.
On-premises firewallregels moeten worden bijgewerkt om inkomend verkeer van Databricks-subnetbereiken toe te staan naar specifieke databaseservers, API's of bestandsservers. Deze firewallregels moeten worden geconfigureerd volgens least-privilege-principes, waarbij alleen vereiste poorten en protocollen worden toegestaan om de aanvalsoppervlakte te minimaliseren. Organisaties moeten specifiek verifiëren dat alleen verkeer van Databricks-subnetten wordt toegestaan en niet van andere Azure-subnetten, wat de beveiliging verbetert door de bron van toegang te beperken. Firewallregels moeten worden gedocumenteerd met uitleg waarom specifieke poorten en protocollen zijn toegestaan, wat essentieel is voor compliance-audits en security-reviews. Regelmatige reviews van firewallregels moeten worden uitgevoerd om te verifiëren dat alleen actief gebruikte verbindingen zijn toegestaan en dat ongebruikte regels worden verwijderd om de beveiliging te verbeteren.
Connectiviteit moet worden getest vanaf Databricks-notebooks door verbinding te maken met on-premises systemen zoals SQL Server, bestandsservers of REST API's. Deze tests moeten worden uitgevoerd met private IP-adressen in plaats van publieke IP-adressen of FQDN's, omdat private IP-adressen ervoor zorgen dat verkeer via de ExpressRoute- of VPN-verbinding loopt in plaats van via het publieke internet. Tijdens het testen moeten organisaties de latency meten om te verifiëren dat deze acceptabel is (minder dan 50 milliseconden voor databases in dezelfde regio), omdat hoge latency de performance van Databricks-workloads kan beïnvloeden. Tests moeten worden uitgevoerd met verschillende workloads en datavolumes om te verifiëren dat de verbinding stabiel is onder verschillende omstandigheden. Eventuele connectivity-problemen moeten worden geanalyseerd met Azure Network Watcher om te identificeren waar verbindingen falen en welke aanpassingen nodig zijn aan firewallregels of routeconfiguraties.
Monitoring van on-premises connectiviteit moet worden geïmplementeerd om proactief te detecteren wanneer verbindingen falen of latency boven acceptabele drempels stijgt. Azure Monitor Connection Monitor kan periodieke connectiviteitstests uitvoeren tussen Databricks-subnets en on-premises endpoints, waarbij automatisch wordt gealert wanneer connectiviteit faalt of wanneer latency boven geconfigureerde drempels komt. Deze tests moeten worden geconfigureerd om regelmatig (bijvoorbeeld elke vijf minuten) verbinding te testen met kritieke on-premises systemen, zodat problemen snel worden gedetecteerd voordat ze impact hebben op productie-workloads. Connection Monitor-logs moeten worden geïntegreerd met Azure Monitor-alerts zodat operations teams automatisch worden gewaarschuwd wanneer connectiviteitsproblemen optreden. Daarnaast moeten trends in latency en beschikbaarheid worden gemonitord om te identificeren wanneer verbindingen langzaam verslechteren, wat kan wijzen op netwerkproblemen die moeten worden aangepakt voordat ze kritiek worden.
**FASE 10: Security hardening en validatietests (Duur: 2-3 uur)**
De tiende en laatste fase omvat security hardening en validatietests om te verifiëren dat alle security-configuraties correct zijn geïmplementeerd en dat de VNet Injection-architectuur voldoet aan compliance-vereisten. Network Watcher NSG-diagnostiek moet worden geïmplementeerd voor continue validatie dat NSG-regels correct zijn geconfigureerd en geen conflicten hebben. NSG-diagnostiek kan simuleren of specifieke verkeersstromen zouden worden toegestaan of geblokkeerd door NSG-regels, wat essentieel is voor het valideren van security-configuraties voordat problemen optreden. Deze diagnostiek moet regelmatig worden uitgevoerd om te verifiëren dat NSG-regels nog steeds correct zijn geconfigureerd en dat wijzigingen in de netwerkarchitectuur geen security-hiaten hebben geïntroduceerd. Organisaties moeten procedures ontwikkelen voor regelmatige NSG-diagnostiek en moeten waarschuwingen configureren wanneer diagnostiek wijst op mogelijke configuratiefouten of security-hiaten.
Penetration testing moet worden uitgevoerd met Microsoft-goedkeuring via het Azure penetration testing notification formulier om te verifiëren dat security-configuraties effectief werken tegen aanvalpogingen. Deze tests moeten verifiëren dat vanaf Databricks-clusters ongeautoriseerde uitgaande verbindingen naar kwaadaardige IP-adressen worden geblokkeerd, dat data exfiltratie via DNS-tunneling of ICMP wordt voorkomen, en dat laterale beweging naar andere Azure-resources wordt geblokkeerd door NSG-regels. Penetration testing moet worden uitgevoerd door gekwalificeerde security-professionals die bekend zijn met Azure-netwerkbeveiliging en die kunnen identificeren wanneer security-configuraties niet effectief zijn. De resultaten van penetration testing moeten worden gedocumenteerd in een security-rapport dat alle gevonden kwetsbaarheden en aanbevelingen voor verbetering bevat. Organisaties moeten actie ondernemen op basis van deze aanbevelingen om de security-posture te verbeteren en moeten follow-up tests uitvoeren om te verifiëren dat kwetsbaarheden zijn verholpen.
Validatie dat de Databricks-workspace control plane-communicatie werkt moet worden uitgevoerd door meerdere clusters gelijktijdig te starten en te verifiëren dat alle clusters succesvol starten. Deze validatie is essentieel om te verifiëren dat NSG-regels, subnet-delegatie en andere configuraties correct werken onder normale omstandigheden. Veelvoorkomende problemen die tijdens validatie kunnen optreden zijn NSG-regels die de AzureDatabricks-servicetag blokkeren, subnets die onvoldoende IP-adressen hebben, of ontbrekende subnet-delegatie. Deze problemen moeten worden geïdentificeerd en opgelost voordat productie-workloads worden gestart. Organisaties moeten verschillende scenario's testen, inclusief het starten van kleine en grote clusters, het starten van meerdere clusters gelijktijdig, en het starten van clusters met verschillende configuraties, om te verifiëren dat alle scenario's correct werken.
Failure-scenario's moeten worden getest om te verifiëren dat het systeem graceful faalt wanneer componenten niet beschikbaar zijn of wanneer configuratiefouten optreden. Organisaties moeten testen wat er gebeurt wanneer de Azure Firewall wordt gestopt (indien gebruikt) en verifiëren dat Databricks-clusters graceful falen zonder dataverlies of corrumpering. Organisaties moeten ook testen wat er gebeurt wanneer een Private Endpoint wordt verwijderd en verifiëren dat foutmeldingen betekenisvol zijn en dat operators kunnen begrijpen wat er mis is. Daarnaast moeten organisaties testen wat er gebeurt wanneer NSG-regels worden gewijzigd om vereist verkeer te blokkeren en verifiëren dat cluster-startfouten correct worden gelogd en dat operators worden gewaarschuwd. Deze tests helpen bij het identificeren van zwakke punten in de architectuur en bij het ontwikkelen van procedures voor het omgaan met failure-scenario's in productieomgevingen.
Alle netwerkafhankelijkheden moeten worden gedocumenteerd in een architectuurdiagram dat de VNet-topologie, subnet-indeling, NSG-regels, UDR next hops, Private Endpoints, ExpressRoute- of VPN-connectiviteit en DNS-configuratie weergeeft. Deze documentatie is essentieel voor troubleshooting wanneer problemen optreden en voor knowledge transfer wanneer teamleden wijzigen of wanneer nieuwe teamleden worden toegevoegd. Het architectuurdiagram moet worden bijgewerkt wanneer wijzigingen worden doorgevoerd in de netwerkarchitectuur om te garanderen dat de documentatie actueel blijft. Organisaties moeten procedures ontwikkelen voor het onderhouden van deze documentatie en moeten ervoor zorgen dat alle relevante stakeholders toegang hebben tot de documentatie. Deze documentatie is ook essentieel voor compliance-audits, omdat auditors deze gebruiken om te verifiëren dat netwerkisolatie correct is geïmplementeerd en dat alle vereiste security-controles aanwezig zijn.
⏱️ **Totale Implementatie-tijd**: 8-12 uur voor nieuwe workspace met basis VNet Injection (VNet design, subnet creation, NSG config, workspace deployment, testing). Additional 8-16 uur voor advanced networking (Azure Firewall integration, on-premises connectivity via ExpressRoute/VPN, extensive Private Endpoints setup). Voor migratie van bestaande workspaces: add 20-40 uur voor planning, data migration, parallel testing en cutover.
💰 **Kosten**: VNet Injection zelf is gratis (geen extra Databricks-kosten). Azure networking costs: VNet gratis, NSGs gratis, NSG Flow Logs circa €0,10/GB processed, Private Endpoints €6-8 per endpoint per maand, Azure Firewall vanaf €900/maand (Standard) tot €5.500/maand (Premium) indien gebruikt, ExpressRoute vanaf €400/maand (50 Mbps) tot €4.000+/maand (10 Gbps). Total cost of ownership voor production VNet Injection met Firewall en Private Endpoints: €1.000-2.000/maand networking costs bovenop Databricks DBU costs.
Monitoring
Gebruik PowerShell-script databricks-custom-vnet.ps1 (functie Invoke-Monitoring) – Controleren.
Monitor VNet traffic en compliance:
- NSG flow logt voor monitoring van cluster verkeerspatronen
- Azure firewall logt voor uitgaand verkeer
- Azure Network Watcher voor connectiviteit troubleshooting
- Alerts bij NSG regel schendingen
- Monitor IP adresruimte gebruik
Compliance en Auditing
- CIS Azure - regelen 3.1.1 (Netwerk isolatie)
- ISO 27001 - A.13.1.1 (Netwerk controls)
- NIS2 - Artikel 21 (Netwerk segmentatie)
- BIO - Thema 13.01 (Netwerkbeveiliging)
- Zero Trust Architectuur compliance
Remediatie
Gebruik PowerShell-script databricks-custom-vnet.ps1 (functie Invoke-Remediation) – Herstellen.
Compliance & Frameworks
- CIS M365: Control 3.1.1 (L2) - Databricks deployment in customer-beheerde VNet
- BIO: 13.01.01 - Netwerkbeveiliging - Netwerk segmentatie
- ISO 27001:2022: A.13.1.1, A.13.1.3 - Netwerk regelt en scheiding
- NIS2: Artikel - Netwerk segmentatie en isolatie
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
Custom Virtual Network (VNet) Injection voor Azure Databricks implementeert Databricks-clusters binnen het door de klant beheerde Azure Virtual Network in plaats van een Microsoft-managed VNet, wat volledige netwerkcontrole en security visibility mogelijk maakt. VNet Injection is ESSENTIEEL voor productie-workloads omdat het de volgende kritieke capabilities enableert: (1) Network Security Groups (NSGs) kunnen worden toegepast op Databricks-subnets voor granulaire inbound/outbound traffic filtering, blocking van unauthorized destinations en data exfiltration-preventie, (2) Azure Firewall of Network Virtual Appliances kunnen alle Databricks-verkeer inspecteren via User-Defined Routes (UDRs) voor advanced threat detection en URL filtering, (3) Private Endpoints voor Azure Storage Accounts, Azure Key Vault, Azure SQL Databases kunnen worden geïmplementeerd zodat ALL Databricks-communicatie via private Azure backbone gebeurt zonder public internet exposure, (4) ExpressRoute of VPN connectivity naar on-premises datacenters enabled hybrid scenarios waarbij Databricks secure kan connecteren met legacy databases, file servers of private APIs, (5) NSG Flow Logs en Azure Network Watcher bieden comprehensive network traffic visibility voor security monitoring en forensics, (6) Hub-spoke network topologies kunnen Databricks integreren in enterprise network architectures met centralized security controls. Deze maatregel is MANDATORY voor productie Databricks-workspaces in gereguleerde sectoren, REQUIRED voor compliance met NIS2 Artikel 21 en BIO 13.01 netwerkisolatie-vereisten, en STRONGLY RECOMMENDED voor alle business-critical workloads ongeacht data sensitivity. Belangrijke vereisten zijn: dedicated Azure VNet met minimaal /16 CIDR address space, twee subnets (public en private) van elk minimaal /24 voor Databricks cluster nodes, subnet delegation naar Microsoft.Databricks/workspaces service, en awareness dat VNet Injection ALLEEN tijdens workspace creation kan worden geconfigureerd - bestaande workspaces moeten volledig opnieuw worden aangemaakt. Implementatie-effort is 8-12 uur inclusief VNet design, subnet configuration, NSG rule development, Databricks workspace deployment met VNet Injection, Private Endpoint setup voor dependent services, connectivity testing en network monitoring configuration. Er zijn geen extra Databricks-kosten voor VNet Injection (het is een gratis feature), maar wel reguliere Azure networking costs voor VNet, NSGs, Private Endpoints (€6-8 per endpoint per maand), en optionele Azure Firewall (€900+ per maand). Return on investment komt van compliance-achievement, enhanced security posture, network visibility voor threat detection, en flexibility voor hybrid cloud architectures met on-premises connectivity.
- Implementatietijd: 12 uur
- FTE required: 0.15 FTE