Skip to main content
This section describes the Azure service information required for your dedicated instance to reach Azure data sources and APIs over Private Link or private endpoints. The sections below cover Azure managed services and customer-managed workloads exposed through a Private Link service and Azure Standard Load Balancer.

Azure managed services

This section covers Azure-managed services that have service-specific private connectivity requirements. Unlike the later Azure Managed Services with private endpoint access section, these services require service-specific configuration details or additional access controls. It does not cover Customer-managed services exposed through a Private Link service.
The Order column indicates the general sequence for the information exchange. Items with the same order value can usually be provided at the same stage.

Azure Blob Storage

This applies to Azure Blob Storage and Azure Data Lake Storage Gen2 (ADLS Gen2).
OrderInformation RequiredDescriptionExampleOwner
1Storage Account NameName of the Azure Storage AccountcustomerstorageacctCustomer
1Storage Account Resource IDFull Azure Resource ID of the storage account/subscriptions/…/providers/Microsoft.Storage/storageAccounts/customerstorageacctCustomer
1Container Name(s)Containers Unstructured needs to accessdocuments, processed-dataCustomer
1Storage Account RegionRegion where storage account is locatedeastusCustomer
1Sub-resource Typeblob, dfs (for ADLS Gen2), file, table, queueblob, dfsCustomer
2Unstructured Service Principal IDService Principal ID for RBAC role assignmentb2c3d4e5-f6a7-8901-bcde-f23456789012Unstructured
2Unstructured Subscription IDSubscription ID for private endpoint approvala1b2c3d4-e5f6-7890-abcd-ef1234567890Unstructured
For ADLS Gen2, use sub-resource type dfs for hierarchical namespace operations. You must approve the private endpoint connection request. To do so, navigate to Storage Account > Networking > Private endpoint connections. Example: Azure role assignment The following Azure CLI command assigns the Storage Blob Data Reader role to Unstructured’s service principal so the platform can read blobs in your storage account.
az role assignment create \
  --assignee "<UNSTRUCTURED_SP_ID>" \
  --role "Storage Blob Data Reader" \
  --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>"
For read/write access, use the Storage Blob Data Contributor role instead of Storage Blob Data Reader. Replace:
  • <UNSTRUCTURED_SP_ID> — Service principal ID for Unstructured (provided during onboarding)
  • <SUBSCRIPTION_ID> — Your Azure subscription ID
  • <RESOURCE_GROUP> — Resource group that contains the storage account
  • <STORAGE_ACCOUNT> — Storage account name

Azure OpenAI

Azure OpenAI supports private endpoint access. Unstructured creates a private endpoint in our VNet to access the your Azure OpenAI resource privately.
OrderInformation RequiredDescriptionExampleOwner
1Azure OpenAI Resource NameName of the Azure OpenAI resourcecustomer-openaiCustomer
1Azure OpenAI Resource IDFull Azure Resource ID/subscriptions/…/providers/Microsoft.CognitiveServices/accounts/customer-openaiCustomer
1Azure OpenAI RegionRegion where the resource is deployedeastusCustomer
1Deployment Name(s)Model deployment names to accessgpt-4-deployment, embedding-deploymentCustomer
1Sub-resource TypeAlways account for Azure OpenAIaccountCustomer
2Unstructured Service Principal IDService Principal ID for RBAC role assignmentb2c3d4e5-f6a7-8901-bcde-f23456789012Unstructured
2Unstructured Subscription IDSubscription ID for private endpoint approvala1b2c3d4-e5f6-7890-abcd-ef1234567890Unstructured
Example: Azure role assignment for OpenAI Use Azure CLI to assign the Cognitive Services OpenAI User role to Unstructured’s service principal for your Azure OpenAI resource:
az role assignment create \
  --assignee "<UNSTRUCTURED_SP_ID>" \
  --role "Cognitive Services OpenAI User" \
  --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<OPENAI_RESOURCE>"
Replace:
  • <UNSTRUCTURED_SP_ID> — Service principal ID for Unstructured (provided during onboarding)
  • <SUBSCRIPTION_ID> — Your Azure subscription ID
  • <RESOURCE_GROUP> — Resource group that contains the storage account
  • <OPENAI_RESOURCE> — Your Azure OpenAI Resource ID
After the role assignment:
  1. Firewall: On the Azure OpenAI resource, configure networking so public access is disabled and traffic is allowed only as required for your private endpoint design.
  2. Approve the connection: In the Azure portal, go to the OpenAI resource > Networking > Private endpoint connections, then approve the pending private endpoint connection from Unstructured.

Azure Databricks

Azure Databricks supports Private Link for both front-end (user-to-workspace) and back-end (compute-to-control plane) connectivity. You must have Private Link enabled on your workspace.
OrderInformation RequiredDescriptionExampleOwner
1Databricks Workspace URLThe workspace URLadb-1234567890123456.12.azuredatabricks.netCustomer
1Databricks Workspace Resource IDFull Azure Resource ID of the workspace/subscriptions/…/providers/Microsoft.Databricks/workspaces/customer-workspaceCustomer
1Databricks Workspace RegionAzure region where workspace is deployedeastusCustomer
1Sub-resource Typedatabricks_ui_api for workspace accessdatabricks_ui_apiCustomer
2Unstructured Subscription IDSubscription ID for private endpoint approvala1b2c3d4-e5f6-7890-abcd-ef1234567890Unstructured
3Private endpoint DNSThe private endpoint DNS for the workspaceadb-1234567890123456.12.privatelink.azuredatabricks.netCustomer
Example: Approve the Databricks private endpoint connection After Unstructured creates the private endpoint toward your workspace, approve the pending connection using Azure CLI:
az network private-endpoint-connection approve \
  --resource-group "<RESOURCE_GROUP>" \
  --resource-name "<WORKSPACE_NAME>" \
  --name "<PRIVATE_ENDPOINT_NAME>" \
  --type Microsoft.Databricks/workspaces
You can also approve the same request in the Azure portal: open the Databricks workspace resource > Networking > Private endpoint connections, then approve the pending connection from Unstructured. Replace:
  • <RESOURCE_GROUP> — Resource group that contains the Databricks workspace
  • <WORKSPACE_NAME> — Name of the Databricks workspace resource
  • <PRIVATE_ENDPOINT_NAME> — Name of the private endpoint connection (shown in the portal or provided by Unstructured)

Azure Managed Services with private endpoint access

This section applies to Azure Managed Services that support private endpoint access, including: Azure AI Search, Azure SQL Database, Azure SQL Managed Instance, Azure Cosmos DB, Azure Database for PostgreSQL, Azure Database for MySQL, and Azure Synapse Analytics.
The Order column indicates the general sequence for the information exchange. Items with the same order value can usually be provided at the same stage.
OrderInformation RequiredDescriptionExampleOwner
1Service TypeThe Azure managed service being accessedAzure AI Search, Azure SQLCustomer
1Resource NameName of the Azure resourcemy-search-serviceCustomer
1Resource IDFull Azure Resource ID/subscriptions/…/providers/Microsoft.Search/searchServices/my-searchCustomer
1Service RegionRegion where the service is hostedeastusCustomer
1Sub-Resource TypeThe sub-resource type for Private Link (see table below)searchService, sqlServerCustomer
1Service PortPort the service listens on443 (AI Search), 1433 (SQL)Customer
2Unstructured Service Principal IDService Principal ID for RBAC role assignmentb2c3d4e5-f6a7-8901-bcde-f23456789012Unstructured
2Unstructured Subscription IDSubscription ID to approve for private endpointa1b2c3d4-e5f6-7890-abcd-ef1234567890Unstructured
Sub-resource types by service:
ServiceSub-Resource Type
AI SearchsearchService
Azure SQL DatabasesqlServer
Azure SQL Managed InstancemanagedInstance
Azure Cosmos DB (SQL API)Sql
Azure Cosmos DB (MongoDB API)MongoDB
Azure Database for PostgreSQLpostgresqlServer
Azure Database for MySQLmysqlServer
Azure Synapse AnalyticsSql, SqlOnDemand, Dev

Customer Managed Services

This section applies to applications that your organization hosts in your Azure virtual network. Create a Private Link service in front of your application, backed by an Azure Standard Load Balancer.
The Order column indicates the general sequence for the information exchange. Items with the same order value can usually be provided at the same stage.
OrderInformation RequiredDescriptionExampleOwner
1Private Link Service NameName of your Private Link servicecustomer-app-plsCustomer
1Private Link Service Resource IDFull resource ID of the Private Link service/subscriptions/…/providers/Microsoft.Network/privateLinkServices/customer-app-plsCustomer
1Service RegionRegion where the service is hostedeastusCustomer
1Service PortPort(s) the service listens on443, 8080Customer
2Unstructured Subscription IDSubscription ID to approve for connectiona1b2c3d4-e5f6-7890-abcd-ef1234567890Unstructured
You must:
  1. Load balancer: Deploy an Azure Standard Load Balancer in front of your application.
  2. Private Link service: Create a Private Link service attached to the load balancer’s frontend IP configuration.
Unstructured then creates a private endpoint that targets your Private Link service. Approve the pending connection after Unstructured creates the private endpoint (using Azure CLI below or the Azure portal). Example: Create a Private Link service with Azure CLI Use Azure CLI to create the Private Link service. After Unstructured creates a private endpoint to your service, run the second command to approve that connection.
# Create Private Link service
az network private-link-service create \
  --name "customer-app-pls" \
  --resource-group "<RESOURCE_GROUP>" \
  --vnet-name "<VNET_NAME>" \
  --subnet "<SUBNET_NAME>" \
  --lb-name "<LOAD_BALANCER_NAME>" \
  --lb-frontend-ip-configs "<FRONTEND_IP_CONFIG_NAME>" \
  --location "<REGION>"

# Approve the private endpoint connection from Unstructured
az network private-link-service connection approve \
  --resource-group "<RESOURCE_GROUP>" \
  --service-name "customer-app-pls" \
  --name "<CONNECTION_NAME>"
Replace:
  • <RESOURCE_GROUP> — Resource group for the Private Link service and related resources
  • <VNET_NAME> — Virtual network name
  • <SUBNET_NAME> — Subnet used for the Private Link service (must meet Azure subnet requirements for Private Link)
  • <LOAD_BALANCER_NAME> — Name of the Standard Load Balancer fronting your application
  • <FRONTEND_IP_CONFIG_NAME> — Frontend IP configuration name on the load balancer
  • <REGION> — Azure region (for example eastus)
  • <CONNECTION_NAME> — Name of the private endpoint connection request (shown in the portal or provided by Unstructured)

Private API Gateway use case

If your application uses Azure API Management in private-only (internal VNet) mode, you cannot target the API Management resource directly with a Private Link service. In this case, deploy an Azure Standard Load Balancer in front of API Management and create a Private Link service that points to the Load Balancer.