Ga naar de hoofdinhoud
Hands-on Terraform-gids

Databricks NCC Terraform voor Serverless SQL private connectivity naar ADLS Gen2

Bouw de Databricks Network Connectivity Configuration, private-endpointregels en workspacebinding waarmee een serverless SQL warehouse Azure Data Lake Gen2 via een privaat pad kan bereiken.

NCC Managed private endpoints ADLS Gen2
Terraform Azure Databricks
Een klantcase die laat zien hoe Titan Exact Online combineert met een afzonderlijk masterdataplatform tot één betrouwbaar groepsbreed verkoopoverzicht.
01

Maak NCC

mws_network_connectivity_config

02

Maak blob + dfs-regels

mws_ncc_private_endpoint_rule

In afwachting
03

Workspace koppelen

mws_ncc_binding

04

Goedkeuren op Azure-resource

Private endpoint-connection wordt bruikbaar

Vastgesteld

Terraform-automatisering voor dataplatformen

Wat deze gids bouwt

Eén private serverless-pad, volledig reproduceerbaar met Terraform

Het target is bewust smal: een Databricks serverless SQL warehouse moet data bevragen die is opgeslagen in een Azure Data Lake Gen2-account waarvan public network access is beperkt.

Deze gids automatiseert de Databricks-accountobjecten die dat pad tot stand brengen. Hij vervangt inbound Private Link, classic-compute VNet-design of Unity Catalog-permissies niet.

Eerst de architectuurbeslissing nodig? Lees Private Link versus NCC

Scope van deze implementatie

Serverless SQL

Databricks-beheerde serverless compute plane

ADLS Gen2

Azure Storage in eigendom van de klant

Private transport: NCC private endpoint rules voor de storage-subresources die door de workload worden gebruikt.

Runtimepad

Wat verandert wanneer SQL-compute serverless is

Serverless compute draait niet binnen je VNet-injected classic compute-subnets. Private outbound access naar Azure-resources van de klant wordt daarom geconfigureerd via een Network Connectivity Configuration.

Serverless SQL private datapad

Dit is outbound connectivity vanuit Databricks naar je Azure-resource.

Compute

Serverless SQL warehouse

Draait in de Azure Databricks serverless compute plane.

Netwerkcontrol

NCC + private endpoint rule

Een klantcase die laat zien hoe Titan Foodware 365-data ontsluit voor betrouwbare rapportage, dashboards en AI-ready fundamenten.

Bestemming

Azure Data Lake Gen2

Private endpoint-connection goedgekeurd op het storageaccount.

Geen inbound Private Link

Gebruiker-naar-workspace-toegang is een ander netwerkpad.

Geen VNet injection

Dat patroon hoort bij classic-compute networking.

Heeft nog steeds data-autorisatie nodig

Private transport verleent geen Unity Catalog- of Azure-storagepermissions.

terraform.tfstate

Drie Databricks-accountresources definiëren het pad

Alle drie de resources zijn account-level. De NCC en workspace moeten in dezelfde Azure-regio staan en een workspace kan maar aan één NCC tegelijk gekoppeld zijn.

Als een workspace meerdere private bestemmingen nodig heeft, plaats de endpoint rules dan in dezelfde NCC in plaats van meerdere NCC's te proberen te koppelen.

1

databricks_mws_network_connectivity_config

Maakt de regionale NCC

De container voor serverless egress rules.

2

databricks_mws_ncc_private_endpoint_rule

Vraagt een private endpoint aan

Richt zich op een Azure-resource-ID en subresource zoals blob of dfs.

3

databricks_mws_ncc_binding

Koppelt de NCC aan de workspace

Maakt de NCC-configuratie beschikbaar voor serverless workloads in die workspace.

Vereisten

Controleer account, regio en approval-grens voordat je toepast

De meeste mislukte implementaties zijn geen HCL-problemen. Het zijn mismatches tussen de Databricks-accountgrens, workspace-regio, Azure-resourcepermissions en eigenaarschap van endpoint approval.

01

Premium workspace

Outbound Private Link for serverless compute requires the Premium plan.

02

Account admin

NCCs and private endpoint rules are managed at the Databricks account level.

03

Same region

The NCC must match the Azure region of the workspace it is attached to.

04

Azure approver

The target resource owner must approve the pending private endpoint connection.

Huidige schaalgrenzen: maximaal 10 NCC's per regio per account, 100 private endpoints per regio over die NCC's en maximaal 50 workspace attachments per NCC.

Dependencygraph

Modelleer de Terraform-graph in dezelfde volgorde als het netwerkcontract

Maak eerst de regionale NCC. Endpointregels verwijzen naar die NCC en de Azure Storage-resource. De workspacebinding verwijst naar de NCC. Goedkeuring aan resourcezijde is de laatste gate voordat de private-endpointregel bruikbaar wordt.

Terraform-resources

NCC

regionaal object

endpointregels

blob + dfs

workspace binding

dezelfde regio

Azure-goedkeuring

PENDING → ESTABLISHED

Provideropzet

Gebruik een account-level Databricks-provider

NCC-resources zijn geen workspace-resources. Configureer een Databricks-provideralias voor de accountconsole en gebruik die alias voor alle drie NCC-resources.

Host: https://accounts.azuredatabricks.net

Een actuele gids voor Declarative Automation Bundles voor Databricks-projectstructuur, omgevingstargets, CI/CD en productiedeployment. uw Azure Databricks-account-ID

Authenticatie: gebruik Databricks unified authentication passend bij lokale of CI-uitvoering

providers.tf
terraform {
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
    }
    databricks = {
      source = "databricks/databricks"
    }
  }
}

provider "azurerm" {
  features {}
}

provider "databricks" {
  alias      = "accounts"
  host       = "https://accounts.azuredatabricks.net"
  account_id = var.databricks_account_id
}

variable "databricks_account_id" { type = string }
variable "location"              { type = string }
variable "workspace_id"          { type = number }

Implementatie

Test

De resourcenamen hieronder behouden de drie Databricks-accountresources die door de bestaande implementatie worden gebruikt. Vervang de voorbeeldresource-referenties door je eigen workspace- en storageresources.

1

Maak de Network Connectivity Configuration

De NCC is regionaal. Gebruik dezelfde regio als de workspace die hem zal gebruiken.

Terraform + Azure CLI
resource "databricks_mws_network_connectivity_config" "ffa_titan_ncc" {
  provider = databricks.accounts
  name     = "ffa-titan-ncc"
  region   = var.location
}
2

Maak de private-endpointregels voor Azure Storage

Voor deze ADLS Gen2-implementatie maken we aparte regels voor de blob en dfs subresources.

blob
resource "databricks_mws_ncc_private_endpoint_rule" "blob" {
  provider = databricks.accounts

  network_connectivity_config_id =
    databricks_mws_network_connectivity_config.ffa_titan_ncc.network_connectivity_config_id

  resource_id = azurerm_storage_account.ffa_titan_adls_gen2.id
  group_id    = "blob"
}
dfs
resource "databricks_mws_ncc_private_endpoint_rule" "dfs" {
  provider = databricks.accounts

  network_connectivity_config_id =
    databricks_mws_network_connectivity_config.ffa_titan_ncc.network_connectivity_config_id

  resource_id = azurerm_storage_account.ffa_titan_adls_gen2.id
  group_id    = "dfs"
}

De Azure-resource-eigenaar moet de private endpoint-connections nog steeds goedkeuren. Alleen de regels aanmaken maakt ze niet bruikbaar.

3

Bind de NCC aan de workspace

Als yield daalt, wil je niet alleen weten dát dit gebeurt maar ook waar het verlies ontstaat en wat het kost.

Terraform + Azure CLI
resource "databricks_mws_ncc_binding" "ffa_titan_ncc_binding" {
  provider = databricks.accounts

  network_connectivity_config_id =
    databricks_mws_network_connectivity_config.ffa_titan_ncc.network_connectivity_config_id

  workspace_id = var.workspace_id
}
4

Keur pending endpointverbindingen goed op de Azure-resource

Goedkeuring gebeurt op de doel-Azure-resource. Voer dit in CI/CD uit met een Azure-identity die alleen de permissions heeft die nodig zijn om private-endpointverbindingen goed te keuren.

terraform apply
resource "terraform_data" "approve_storage_private_endpoints" {
  triggers_replace = [
    databricks_mws_ncc_private_endpoint_rule.blob.rule_id,
    databricks_mws_ncc_private_endpoint_rule.dfs.rule_id
  ]

  provisioner "local-exec" {
    interpreter = ["bash", "-c"]
    command = <<-EOT
      for id in $(az network private-endpoint-connection list \
        --id "${azurerm_storage_account.ffa_titan_adls_gen2.id}" \
        --query "[?properties.privateLinkServiceConnectionState.status=='Pending'].id" \
        -o tsv); do

        az network private-endpoint-connection approve \
          --id "$id" \
          --description "Approved by FFA Titan Terraform"
      done
    EOT
  }
}
Belangrijk: behandel approval als een Azure-side administratieve actie. Als je separation-of-duties-model handmatige approval vereist, houd deze stap buiten Terraform en keur goed via Azure Portal of een gecontroleerde pipelinestap.

Approval-lifecycle

PENDING is verwacht. ESTABLISHED is de bruikbare status.

Een private-endpointregel maken stuurt een verzoek naar de doel-Azure-resource. Totdat dat verzoek is goedgekeurd kan de Databricks-regel geen productieverkeer dragen.

Regels die PENDING, REJECTED of DISCONNECTED blijven kunnen na 14 dagen verlopen, dus goedkeuring en validatie moeten onderdeel zijn van de deploymentworkflow.

AANMAKEN

Databricks provisiont het endpointrequest.

PENDING

Wachten op goedkeuring van de Azure-resource.

VASTGESTELD

Private endpoint is klaar voor serverless gebruik.

Databricks stelt dat de meeste wijzigingen aan private-endpointregels binnen 10 minuten propageren, maar dat volledige toepassing tot 24 uur kan duren. Herstart draaiende serverless-services na wijziging van de workspace-NCC-attachment.

Validatie

Valideer de netwerkstatus en de daadwerkelijke SQL-workload

AI-ready datafundament

Validatievolgorde

01

Terraform state

NCC, blob rule, dfs rule and workspace binding exist.

02

Endpoint state

Private endpoint rules report ESTABLISHED.

03

Workspace attachment

The expected NCC is attached to the same-region workspace.

04

Serverless query

Run the real SQL query against the Unity Catalog object backed by ADLS Gen2.

05

Public-path test

Confirm the storage security posture still blocks paths that should not be public.

Verwachte uitkomst

Private transport, governed access

Netwerk

Serverless verkeer bereikt het storage account via het goedgekeurde private endpoint.

Identiteit

Azure Storage-autorisatie blijft gescheiden van het private netwerkpad.

Governance

Unity Catalog-permissies bepalen nog steeds wie de externe data kan bevragen.

Veelgemaakte fouten

Houd de Terraform-implementatie afgestemd op de echte netwerkgrens

Vermijd

Using a workspace-level provider for NCC resources

Betere default

Use an account-level Databricks provider alias

Vermijd

Assuming endpoint creation equals approval

Betere default

Wait for ESTABLISHED before validating SQL

Vermijd

Binding multiple NCCs to one workspace

Betere default

Put all required private endpoint rules in one NCC

Vermijd

Treating private networking as data authorization

Betere default

Validate Azure RBAC and Unity Catalog separately

Vermijd

Hard-coding credentials in local-exec

Betere default

Run approval with your authenticated CI identity and least privilege

Vermijd

Testing only from classic compute

Betere default

Test from the serverless SQL workload this NCC is designed for

Hoe Food For Analytics dit implementeert

Behandel private connectivity als een versioned platformcontract

In Titan worden de NCC, destination rules en workspace attachment als infrastructure as code beheerd naast de Azure-resourcegrens. Validatie wordt uitgevoerd vanaf de serverless workload die de verbinding daadwerkelijk gebruikt.

Verken Titan

Titan-netwerkdeployment

Declareer · keur goed · bewijs

01

Declareer

NCC, rules en binding in Terraform.

02

Goedkeuren

Gecontroleerde goedkeuring aan Azure-resourcezijde.

03

Bewijzen

End-to-end serverless-queryvalidatie.

FAQ

Vragen over Databricks NCC Terraform en Serverless SQL

Praktische antwoorden over Network Connectivity Configuration, Terraform, private endpoint rules en Serverless SQL-toegang tot Azure Data Lake Gen2.

Wat is een Databricks Network Connectivity Configuration (NCC)?

Een NCC is een account-level regionale configuratie die serverless netwerkconnectiviteit beheert, inclusief private-endpointregels. Een NCC kan aan meerdere workspaces in dezelfde regio worden gekoppeld, maar iedere workspace kan slechts één actieve NCC-binding hebben.

Welke Terraform-resources maken Databricks NCC private connectivity aan?

De kernresources voor Databricks-account zijn databricks_mws_network_connectivity_config, databricks_mws_ncc_private_endpoint_rule en databricks_mws_ncc_binding.

Gebruiken NCC Terraform-resources een account-level of workspace-level provider?

Gebruik een account-level Databricks-provider. Voor Azure is de account-consolehost https://accounts.azuredatabricks.net en de provider moet het Databricks-account-ID kennen.

Wat doet databricks_mws_ncc_private_endpoint_rule?

Het maakt een private endpoint rule aan binnen een NCC voor een doelresource. In Azure geeft u de Azure resource ID en de relevante subresource group ID op, zoals blob of dfs voor Azure Storage.

Kan een workspace aan meerdere NCC's worden gebonden?

Nee. Een workspace kan één actieve NCC-binding hebben. Als de workspace meerdere private bestemmingen nodig heeft, voeg de benodigde private endpoint rules toe aan dezelfde NCC.

Maakt Terraform-creatie van een private-endpointregel deze automatisch actief?

Nee. De eigenaar van de doel-Azure-resource moet de private endpoint-connection goedkeuren. De Databricks private endpoint rule wordt bruikbaar wanneer de connection state ESTABLISHED is.

Welke private endpoint rules worden in deze implementatie gebruikt voor ADLS Gen2?

Deze implementatie maakt aparte private endpoint rules voor de blob- en dfs-subresources van Azure Storage. Bevestig de exacte subresources die je workload nodig heeft voordat je het patroon standaardiseert.

Hoe lang duurt het voordat een NCC-workspacebinding is toegepast?

Databricks-documentatie adviseert ongeveer 10 minuten te wachten na het koppelen van een NCC aan een workspace en draaiende serverless-services opnieuw te starten. Wijzigingen aan private-endpointregels propageren meestal snel, maar volledige propagatie kan langer duren.

Vervangt NCC VNet Injection?

Nee. VNet Injection is een classic-compute-networkingpatroon. NCC beheert outbound-connectiviteit vanuit de Azure Databricks serverless-compute-plane naar customer resources.

Geeft private connectiviteit toegang tot de data?

Nee. Netwerkbereikbaarheid, Azure-resourceautorisatie en Unity Catalog-privileges zijn afzonderlijke controls. Een ESTABLISHED-endpoint verleent geen storage- of catalogpermissions.

Wat zijn de huidige NCC-schaallimieten op Azure Databricks?

De huidige Azure Databricks-documentatie noemt maximaal 10 NCC's per regio per account, 100 private endpoints per regio over die NCC's en maximaal 50 workspaceattachments per NCC.

Implementatieondersteuning nodig?

Bouw private serverless-connectiviteit zonder de netwerkgrenzen te vervagen

We kunnen het NCC-ontwerp, de Terraform-graph, Azure-approvalflow en de omliggende Unity Catalog- en storagepermissies beoordelen.

Review de architectuurgids

Implementatiereview

Een klantcase die laat zien hoe Titan Reflex Systems-data ontsluit voor betrouwbare rapportage, dashboards en AI-ready fundamenten.
NCC- en endpoint-rule-lifecycle
Azure-goedkeuring en least privilege
End-to-end serverless-validatie