Tutorial: Inspect private endpoint traffic with Azure Firewall
Artikel
Azure Private Endpoint is the fundamental building block for Azure Private Link. Private endpoints enable Azure resources deployed in a virtual network to communicate privately with private link resources.
Private endpoints allow resources access to the private link service deployed in a virtual network. Access to the private endpoint through virtual network peering and on-premises network connections extend the connectivity.
You may need to inspect or block traffic from clients to the services exposed via private endpoints. Complete this inspection by using Azure Firewall or a third-party network virtual appliance.
Create a virtual network and an Azure Bastion host
The following procedure creates a virtual network with a resource subnet, an Azure Bastion subnet, and a Bastion host:
In the portal, search for and select Virtual networks.
On the Virtual networks page, select + Create.
On the Basics tab of Create virtual network, enter, or select the following information:
Setting
Value
Project details
Subscription
Select your subscription.
Resource group
Select Create new. Enter test-rg for the name. Select OK.
Instance details
Name
Enter vnet-1.
Region
Select East US 2.
Select Next to proceed to the Security tab.
In the Azure Bastion section, select Enable Azure Bastion.
Bastion uses your browser to connect to VMs in your virtual network over Secure Shell (SSH) or Remote Desktop Protocol (RDP) by using their private IP addresses. The VMs don't need public IP addresses, client software, or special configuration. For more information, see What is Azure Bastion?.
Nota
Hourly pricing starts from the moment that Bastion is deployed, regardless of outbound data usage. For more information, see Pricing and SKUs. If you're deploying Bastion as part of a tutorial or test, we recommend that you delete this resource after you finish using it.
In Azure Bastion, enter or select the following information:
Setting
Value
Azure Bastion host name
Enter bastion.
Azure Bastion public IP address
Select Create a public IP address. Enter public-ip-bastion in Name. Select OK.
Select Next to proceed to the IP Addresses tab.
In the address space box in Subnets, select the default subnet.
In Edit subnet, enter or select the following information:
Setting
Value
Subnet purpose
Leave the default of Default.
Name
Enter subnet-1.
IPv4
IPv4 address range
Leave the default of 10.0.0.0/16.
Starting address
Leave the default of 10.0.0.0.
Size
Leave the default of /24 (256 addresses).
Select Save.
Select Review + create at the bottom of the window. When validation passes, select Create.
Create a virtual network for a private endpoint
The following procedure creates a virtual network with a subnet.
In the portal, search for and select Virtual networks.
On the Virtual networks page, select + Create.
On the Basics tab of Create virtual network, enter or select the following information:
Setting
Value
Project details
Subscription
Select your subscription.
Resource group
Select test-rg
Instance details
Name
Enter vnet-private-endpoint.
Region
Select East US 2.
Select Next to proceed to the Security tab.
Select Next to proceed to the IP Addresses tab.
Select Delete address space with the trash can icon to remove the default address space.
Select Add IPv4 address space.
Enter 10.1.0.0 and leave the pull-down box at the default of /16 (65,536 addresses).
Select + Add a subnet.
In Add a subnet, enter or select the following information:
Setting
Value
Subnet details
Subnet template
Leave the default Default.
Name
Enter subnet-private.
Starting address
Leave the default of 10.1.0.0.
Subnet size
Leave the default of /24(256 addresses).
Select Add.
Select Review + create at the bottom of the screen, and when validation passes, select Create.
Create test virtual machine
The following procedure creates a test virtual machine (VM) named vm-1 in the virtual network.
In the portal, search for and select Virtual machines.
In Virtual machines, select + Create, then Azure virtual machine.
On the Basics tab of Create a virtual machine, enter or select the following information:
Setting
Value
Project details
Subscription
Select your subscription.
Resource group
Select test-rg.
Instance details
Virtual machine name
Enter vm-1.
Region
Select East US 2.
Availability options
Select No infrastructure redundancy required.
Security type
Leave the default of Standard.
Image
Select Ubuntu Server 22.04 LTS - x64 Gen2.
VM architecture
Leave the default of x64.
Size
Select a size.
Administrator account
Authentication type
Select Password.
Username
Enter azureuser.
Password
Enter a password.
Confirm password
Reenter the password.
Inbound port rules
Public inbound ports
Select None.
Select the Networking tab at the top of the page.
Enter or select the following information in the Networking tab:
Setting
Value
Network interface
Virtual network
Select vnet-1.
Subnet
Select subnet-1 (10.0.0.0/24).
Public IP
Select None.
NIC network security group
Select Advanced.
Configure network security group
Select Create new. Enter nsg-1 for the name. Leave the rest at the defaults and select OK.
Leave the rest of the settings at the defaults and select Review + create.
Review the settings and select Create.
Nota
Virtual machines in a virtual network with a bastion host don't need public IP addresses. Bastion provides the public IP, and the VMs use private IPs to communicate within the network. You can remove the public IPs from any VMs in bastion hosted virtual networks. For more information, see Dissociate a public IP address from an Azure VM.
Nota
Azure provides a default outbound access IP for VMs that either aren't assigned a public IP address or are in the backend pool of an internal basic Azure load balancer. The default outbound access IP mechanism provides an outbound IP address that isn't configurable.
The default outbound access IP is disabled when one of the following events happens:
A public IP address is assigned to the VM.
The VM is placed in the backend pool of a standard load balancer, with or without outbound rules.
In the search box at the top of the portal, enter SQL. Select SQL databases in the search results.
In SQL databases, select + Create.
In the Basics tab of Create SQL Database, enter or select the following information:
Setting
Value
Project details
Subscription
Select your subscription.
Resource group
Select test-rg.
Database details
Database name
Enter sql-db.
Server
Select Create new. Enter server-name in Server name (Server names must be unique, replace server-name with a unique value). Select (US) East US 2 in Location. Select Use SQL authentication. Enter a server admin sign-in and password. Select OK.
Want to use SQL elastic pool?
Select No.
Workload environment
Leave the default of Production.
Backup storage redundancy
Backup storage redundancy
Select Locally redundant backup storage.
Select Next: Networking.
In the Networking tab of Create SQL Database, enter or select the following information:
Setting
Value
Network connectivity
Connectivity method
Select Private endpoint.
Private endpoints
Select +Add private endpoint.
Create private endpoint
Subscription
Select your subscription.
Resource group
Select test-rg.
Location
Select East US 2.
Name
Enter private-endpoint-sql.
Target subresource
Select SqlServer.
Networking
Virtual network
Select vnet-private-endpoint.
Subnet
Select subnet-private-endpoint.
Private DNS integration
Integrate with private DNS zone
Select Yes.
Private DNS zone
Leave the default of privatelink.database.windows.net.
Select OK.
Select Review + create.
Select Create.
Connect virtual networks with virtual network peering
In this section, you connect the virtual networks with virtual network peering. The networks vnet-1 and vnet-private-endpoint are connected to vnet-firewall. There isn't direct connectivity between vnet-1 and vnet-private-endpoint.
In the search box at the top of the portal, enter Virtual networks. Select Virtual networks in the search results.
Select vnet-firewall.
In Settings select Peerings.
In Peerings select + Add.
In Add peering, enter or select the following information:
Setting
Value
This virtual network
Peering link name
Enter vnet-firewall-to-vnet-1.
Traffic to remote virtual network
Select Allow (default).
Traffic forwarded from remote virtual network
Select Allow (default).
Virtual network gateway or Route Server
Select None (default).
Remote virtual network
Peering link name
Enter vnet-1-to-vnet-firewall.
Virtual network deployment model
Select Resource manager.
Subscription
Select your subscription.
Virtual network
Select vnet-1.
Traffic to remote virtual network
Select Allow (default).
Traffic forwarded from remote virtual network
Select Allow (default).
Virtual network gateway or Route Server
Select None (default).
Select Add.
In Peerings select + Add.
In Add peering, enter or select the following information:
Setting
Value
This virtual network
Peering link name
Enter vnet-firewall-to-vnet-private-endpoint.
Allow 'vnet-1' to access 'vnet-private-endpoint'
Leave the default of selected.
Allow 'vnet-1' to receive forwarded traffic from 'vnet-private-endpoint'
Select the checkbox.
Allow gateway in 'vnet-1' to forward traffic to 'vnet-private-endpoint'
Leave the default of cleared.
Enable 'vnet-1' to use 'vnet-private-endpoint' remote gateway
Leave the default of cleared.
Remote virtual network
Peering link name
Enter vnet-private-endpoint-to-vnet-firewall.
Virtual network deployment model
Select Resource manager.
Subscription
Select your subscription.
Virtual network
Select vnet-private-endpoint.
Allow 'vnet-private-endpoint' to access 'vnet-1'
Leave the default of selected.
Allow 'vnet-private-endpoint' to receive forwarded traffic from 'vnet-1'
Select the checkbox.
Allow gateway in 'vnet-private-endpoint' to forward traffic to 'vnet-1'
Leave the default of cleared.
Enable 'vnet-private-endpoint' to use 'vnet-1's' remote gateway
Leave the default of cleared.
Select Add.
Verify the Peering status displays Connected for both network peers.
Link the virtual networks to the private DNS zone
The private DNS zone created during the private endpoint creation in the previous section must be linked to the vnet-1 and vnet-firewall virtual networks.
In the search box at the top of the portal, enter Private DNS zone. Select Private DNS zones in the search results.
Select privatelink.database.windows.net.
In Settings select Virtual network links.
Select + Add.
In Add virtual network link, enter or select the following information:
Setting
Value
Virtual network link
Virtual network link name
Enter link-to-vnet-1.
Subscription
Select your subscription.
Virtual network
Select vnet-1 (test-rg).
Configuration
Leave the default of unchecked for Enable auto registration.
Select OK.
Select + Add.
In Add virtual network link, enter or select the following information:
Setting
Value
Virtual network link
Virtual network link name
Enter link-to-vnet-firewall.
Subscription
Select your subscription.
Virtual network
Select vnet-firewall (test-rg).
Configuration
Leave the default of unchecked for Enable auto registration.
Select OK.
Create route between vnet-1 and vnet-private-endpoint
A network link between vnet-1 and vnet-private-endpoint doesn't exist. You must create a route to allow traffic to flow between the virtual networks through Azure Firewall.
The route sends traffic from vnet-1 to the address space of virtual network vnet-private-endpoint, through the Azure Firewall.
In the search box at the top of the portal, enter Route tables. Select Route tables in the search results.
Select + Create.
In the Basics tab of Create Route table, enter or select the following information:
Setting
Value
Project details
Subscription
Select your subscription.
Resource group
Select test-rg.
Instance details
Region
Select East US 2.
Name
Enter vnet-1-to-vnet-firewall.
Propagate gateway routes
Leave the default of Yes.
Select Review + create.
Select Create.
In the search box at the top of the portal, enter Route tables. Select Route tables in the search results.
Select vnet-1-to-vnet-firewall.
In Settings select Routes.
Select + Add.
In Add route, enter or select the following information:
Setting
Value
Route name
Enter subnet-1-to-subnet-private-endpoint.
Destination type
Select IP Addresses.
Destination IP addresses/CIDR ranges
Enter 10.1.0.0/16.
Next hop type
Select Virtual appliance.
Next hop address
Enter 10.2.1.4.
Select Add.
In Settings, select Subnets.
Select + Associate.
In Associate subnet, enter or select the following information:
Setting
Value
Virtual network
Select vnet-1(test-rg).
Subnet
Select subnet-1.
Select OK.
Configure an application rule in Azure Firewall
Create an application rule to allow communication from vnet-1 to the private endpoint of the Azure SQL server server-name.database.windows.net. Replace server-name with the name of your Azure SQL server.
In the search box at the top of the portal, enter Firewall. Select Firewall Policies in the search results.
In Firewall Policies, select firewall-policy.
In Settings select Application rules.
Select + Add a rule collection.
In Add a rule collection, enter or select the following information:
Setting
Value
Name
Enter rule-collection-sql.
Rule collection type
Leave the selection of Application.
Priority
Enter 100.
Rule collection action
Select Allow.
Rule collection group
Leave the default of DefaultApplicationRuleCollectionGroup.
Rules
Rule 1
Name
Enter SQLPrivateEndpoint.
Source type
Select IP Address.
Source
Enter 10.0.0.0/16
Protocol
Enter mssql:1433
Destination type
Select FQDN.
Destination
Enter server-name.database.windows.net.
Select Add.
Test connection to Azure SQL from virtual machine
In the search box at the top of the portal, enter Virtual machine. Select Virtual machines in the search results.
Select vm-1.
In Operations select Bastion.
Enter the username and password for the virtual machine.
Select Connect.
To verify name resolution of the private endpoint, enter the following command in the terminal window:
Bash
nslookup server-name.database.windows.net
You receive a message similar to the following example. The IP address returned is the private IP address of the private endpoint.
A SQL command prompt is displayed on successful sign in. Enter exit to exit the sqlcmd tool.
Validate traffic in the Azure Firewall logs
In the search box at the top of the portal, enter Log Analytics. Select Log Analytics in the search results.
Select your log analytics workspace. In this example, the workspace is named log-analytics-workspace.
In the General settings, select Logs.
In the example Queries in the search box, enter Application rule. In the returned results in Network, select the Run button for Application rule log data.
In the log query output, verify server-name.database.windows.net is listed under FQDN and SQLPrivateEndpoint is listed under Rule.
When you finish using the resources that you created, you can delete the resource group and all its resources.
In the Azure portal, search for and select Resource groups.
On the Resource groups page, select the test-rg resource group.
On the test-rg page, select Delete resource group.
Enter test-rg in Enter resource group name to confirm deletion, and then select Delete.
Next steps
Advance to the next article to learn how to use a private endpoint with Azure Private Resolver:
Learn how to securely connect an Azure SQL server using an Azure Private Endpoint via the Azure portal, ensuring private and safe communication with your SQL server.