What is a private endpoint - Azure Private Link

rw-book-cover

In this article

  1. Private endpoint properties
  2. Private-link resource
  3. Network security of private endpoints
  4. Access to a private-link resource using approval workflow
  5. DNS configuration
  6. Limitations
  7. Next steps

A private endpoint is a network interface that uses a private IP address from your virtual network. This network interface connects you privately and securely to a service that's powered by Azure Private Link. By enabling a private endpoint, you're bringing the service into your virtual network.

The service could be an Azure service such as:

Private endpoint properties

A private endpoint specifies the following properties:

Property Description
Name A unique name within the resource group.
Subnet The subnet to deploy, where the private IP address is assigned. For subnet requirements, see the Limitations section later in this article.
Private-link resource The private-link resource to connect by using a resource ID or alias, from the list of available types. A unique network identifier is generated for all traffic that's sent to this resource.
Target subresource The subresource to connect. Each private-link resource type has various options to select based on preference.
Connection approval method Automatic or manual. Depending on the Azure role-based access control permissions, your private endpoint can be approved automatically. If you're connecting to a private-link resource without Azure role based permissions, use the manual method to allow the owner of the resource to approve the connection.
Request message You can specify a message for requested connections to be approved manually. This message can be used to identify a specific request.
Connection status A read-only property that specifies whether the private endpoint is active. Only private endpoints in an approved state can be used to send traffic. More available states: - Approved: The connection was automatically or manually approved and is ready to be used.

As you're creating private endpoints, consider the following:

A private-link resource is the destination target of a specified private endpoint. The following table lists the available resources that support a private endpoint:

Private-link resource name Resource type Subresources
Azure App Configuration Microsoft.Appconfiguration/configurationStores configurationStores
Azure Automation Microsoft.Automation/automationAccounts Webhook, DSCAndHybridWorker
Azure Cosmos DB Microsoft.AzureCosmosDB/databaseAccounts SQL, MongoDB, Cassandra, Gremlin, Table
Azure Cosmos DB for PostgreSQL Microsoft.DBforPostgreSQL/serverGroupsv2 coordinator
Azure Batch Microsoft.Batch/batchAccounts batchAccount, nodeManagement
Azure Cache for Redis Microsoft.Cache/Redis redisCache
Azure Cache for Redis Enterprise Microsoft.Cache/redisEnterprise redisEnterprise
Azure Cognitive Services Microsoft.CognitiveServices/accounts account
Azure Managed Disks Microsoft.Compute/diskAccesses managed disk
Azure Container Registry Microsoft.ContainerRegistry/registries registry
Azure Kubernetes Service - Kubernetes API Microsoft.ContainerService/managedClusters management
Azure Data Factory Microsoft.DataFactory/factories dataFactory
Azure Data Explorer Microsoft.Kusto/clusters cluster
Azure Database for MariaDB Microsoft.DBforMariaDB/servers mariadbServer
Azure Database for MySQL Microsoft.DBforMySQL/servers mysqlServer
Azure Database for PostgreSQL - Single server Microsoft.DBforPostgreSQL/servers postgresqlServer
Azure Device Provisioning Service Microsoft.Devices/provisioningServices iotDps
Azure IoT Hub Microsoft.Devices/IotHubs iotHub
Azure IoT Central Microsoft.IoTCentral/IoTApps IoTApps
Azure Digital Twins Microsoft.DigitalTwins/digitalTwinsInstances API
Azure Event Grid Microsoft.EventGrid/domains domain
Azure Event Grid Microsoft.EventGrid/topics topic
Azure Event Hub Microsoft.EventHub/namespaces namespace
Azure HDInsight Microsoft.HDInsight/clusters cluster
Azure API for FHIR (Fast Healthcare Interoperability Resources) Microsoft.HealthcareApis/services fhir
Azure Key Vault HSM (hardware security module) Microsoft.Keyvault/managedHSMs HSM
Azure Key Vault Microsoft.KeyVault/vaults vault
Azure Machine Learning Microsoft.MachineLearningServices/workspaces amlworkspace
Azure Migrate Microsoft.Migrate/assessmentProjects project
Application Gateway Microsoft.Network/applicationgateways application gateway
Private Link service (your own service) Microsoft.Network/privateLinkServices empty
Power BI Microsoft.PowerBI/privateLinkServicesForPowerBI Power BI
Microsoft Purview Microsoft.Purview/accounts account
Microsoft Purview Microsoft.Purview/accounts portal
Azure Backup Microsoft.RecoveryServices/vaults AzureBackup, AzureSiteRecovery
Azure Relay Microsoft.Relay/namespaces namespace
Azure Cognitive Search Microsoft.Search/searchServices searchService
Azure Service Bus Microsoft.ServiceBus/namespaces namespace
Azure SignalR Service Microsoft.SignalRService/SignalR signalr
Azure SignalR Service Microsoft.SignalRService/webPubSub webpubsub
Azure SQL Database Microsoft.Sql/servers SQL Server (sqlServer)
Azure Storage Microsoft.Storage/storageAccounts Blob (blob, blob_secondary) Table (table, table_secondary) Queue (queue, queue_secondary) File (file, file_secondary) Web (web, web_secondary) Dfs (dfs, dfs_secondary)
Azure File Sync Microsoft.StorageSync/storageSyncServices File Sync Service
Azure Synapse Microsoft.Synapse/privateLinkHubs web
Azure Synapse Analytics Microsoft.Synapse/workspaces Sql, SqlOnDemand, Dev
Azure App Service Microsoft.Web/hostingEnvironments hosting environment
Azure App Service Microsoft.Web/sites sites
Azure Static Web Apps Microsoft.Web/staticSites staticSites
Azure Media Services Microsoft.Media/mediaservices keydelivery, liveevent, streamingendpoint
Resource Management Private Links Microsoft.Authorization/resourceManagementPrivateLinks ResourceManagement
Azure Databricks Microsoft.Databricks/workspaces databricks_ui_api, browser_authentication
Azure Monitor Private Link Scope Microsoft.Insights/privatelinkscopes azuremonitor

Note

You can create private endpoints only on a General Purpose v2 (GPv2) storage account.

Network security of private endpoints

When you use private endpoints, traffic is secured to a private-link resource. The platform validates network connections, allowing only those that reach the specified private-link resource. To access more subresources within the same Azure service, more private endpoints with corresponding targets are required. In the case of Azure Storage, for instance, you would need separate private endpoints to access the file and blob subresources.

Private endpoints provide a privately accessible IP address for the Azure service, but do not necessarily restrict public network access to it. All other Azure services require additional access controls, however. These controls provide an extra network security layer to your resources, providing protection that helps prevent access to the Azure service associated with the private-link resource.

Private endpoints support network policies. Network policies enable support for Network Security Groups (NSG), User Defined Routes (UDR), and Application Security Groups (ASG). For more information about enabling network policies for a private endpoint, see Manage network policies for private endpoints. To use an ASG with a private endpoint, see Configure an application security group (ASG) with a private endpoint.

You can connect to a private-link resource by using the following connection approval methods:

Microsoft.<Provider>/<resource_type>/privateEndpointConnectionsApproval/action

Diagram of the workflow approval process.
Over a private-endpoint connection, a private-link resource owner can:

Note

Only private endpoints in an Approved state can send traffic to a specified private-link resource.

Connect by using an alias

An alias is a unique moniker that's generated when a service owner creates a private-link service behind a standard load balancer. Service owners can share this alias offline with consumers of your service.

The consumers can request a connection to a private-link service by using either the resource URI or the alias. To connect by using the alias, create a private endpoint by using the manual connection approval method. To use the manual connection approval method, set the manual request parameter to True during the private-endpoint create flow. For more information, see New-AzPrivateEndpoint and az network private-endpoint create.

Note

This manual request can be auto approved if the consumer's subscription is allow-listed on the provider side. To learn more, go to controlling service access.

DNS configuration

The DNS settings that you use to connect to a private-link resource are important. Existing Azure services might already have a DNS configuration you can use when you're connecting over a public endpoint. To connect to the same service over private endpoint, separate DNS settings, often configured via private DNS zones, are required. Ensure that your DNS settings are correct when you use the fully qualified domain name (FQDN) for the connection. The settings must resolve to the private IP address of the private endpoint.

The network interface associated with the private endpoint contains the information that's required to configure your DNS. The information includes the FQDN and private IP address for a private-link resource.

For complete, detailed information about recommendations to configure DNS for private endpoints, see Private endpoint DNS configuration.

Limitations

The following information lists the known limitations to the use of private endpoints:

Network security group
Limitation Description
Effective routes and security rules unavailable for private endpoint network interface. Effective routes and security rules won't be displayed for the private endpoint NIC in the Azure portal.
NSG flow logs unsupported. NSG flow logs unavailable for inbound traffic destined for a private endpoint.
No more than 50 members in an Application Security Group. Fifty is the number of IP Configurations that can be tied to each respective ASG that’s coupled to the NSG on the private endpoint subnet. Connection failures may occur with more than 50 members.
Destination port ranges supported up to a factor of 250 K. Destination port ranges are supported as a multiplication SourceAddressPrefixes, DestinationAddressPrefixes, and DestinationPortRanges. Example inbound rule: One source * one destination * 4K portRanges = 4K Valid 10 sources * 10 destinations * 10 portRanges = 1 K Valid 50 sources * 50 destinations * 50 portRanges = 125 K Valid 50 sources * 50 destinations * 100 portRanges = 250 K Valid 100 sources * 100 destinations * 100 portRanges = 1M Invalid, NSG has too many sources/destinations/ports.
Source port filtering is interpreted as * Source port filtering isn't actively used as valid scenario of traffic filtering for traffic destined to a private endpoint.
Feature unavailable in select regions. Currently unavailable in the following regions: West India Australia Central 2 South Africa West Brazil Southeast
NSG more considerations
UDR
Limitation Description
SNAT is recommended always. Due to the variable nature of the private endpoint data-plane, it's recommended to SNAT traffic destined to a private endpoint to ensure return traffic is honored.
Feature unavailable in select regions. Currently unavailable in the following regions: West India Australia Central 2 South Africa West Brazil Southeast
Application security group
Limitation Description
Feature unavailable in select regions. Currently unavailable in the following regions: West India Australia Central 2 South Africa West Brazil Southeast

Next steps