应用程序网关专用链接让你可以通过跨 VNet 和订阅的专用连接来连接工作负载。 有关详细信息,请参阅应用程序网关专用链接。
应用程序网关专用链接可以通过多个选项进行配置,例如(但不限于)Azure 门户、Azure PowerShell 和 Azure CLI。
为专用链接配置定义子网
若要启用专用链接配置,专用链接 IP 配置需要一个不同于应用程序网关子网的子网。 专用链接必须使用不包含任何应用程序网关的子网。 子网大小根据部署所需的连接数来确定。 分配给该子网的每个 IP 地址可确保可在单个时间点通过专用链接建立 64K 并发 TCP 连接。 分配更多 IP 地址可允许通过专用链接建立更多连接。 例如:n * 64K
;其中 n
是要预配的 IP 地址数。
注意
每个专用链接配置的最大 IP 地址数为 8。 仅动态分配受支持。
请完成以下步骤来创建新子网:
添加、更改或删除虚拟网络子网
配置专用链接
专用链接配置定义应用程序网关用于启用来自专用终结点的连接的基础结构。 创建专用链接配置时,请确保侦听器在主动利用相应的前端 IP 配置。完成以下步骤创建专用链接配置:
转到 Azure 门户
搜索并选择“应用程序网关”。
选择要启用专用链接的应用程序网关的名称。
选择“专用链接”
配置以下项:
- 名称:专用链接配置的名称。
- 专用链接子网:应使用其中的子网 IP 地址。
- 前端 IP 配置:专用链接应将流量转发到的应用程序网关上的前端 IP 地址。
- 专用 IP 地址设置:指定至少一个 IP 地址
选择添加。
在“应用程序网关”属性边栏选项卡中,获取并记下资源 ID;如果在不同的 Microsoft Entra 租户中设置专用终结点,则需要用到此 ID。
配置专用终结点
专用终结点是一个网络接口,它使用虚拟网络中的专用 IP 地址,该虚拟网络中包含希望连接到应用程序网关的客户端。 每个客户端都使用专用终结点的专用 IP 地址将流量通过隧道传送到应用程序网关。 若要创建专用终结点,请完成以下步骤:
- 选择“专用终结点连接”选项卡。
- 选择“创建”。
- 在“基本信息”选项卡上,为专用终结点配置资源组、名称和区域。 选择“下一步”。
- 在“资源”选项卡上,选择“下一步”。
- 在“虚拟网络”选项卡上,配置一个应为其预配专用终结点网络接口的虚拟网络和子网。 选择下一步。
- 在“标记”选项卡上,可以选择配置资源标记。 选择“下一步”。
- 选择“创建”。
注意
如果在用于创建专用终结点的“资源”选项卡上尝试选择“目标子资源”时缺少公共或专用 IP 配置资源,请确保侦听器正在积极利用你指定的前端 IP 配置。 没有关联侦听器的前端 IP 配置不会显示为“目标子资源”。
注意
如果从另一个租户中预配“专用终结点”,则需要使用 Azure 应用程序网关资源 ID 以及前端 IP 配置的名称作为目标子资源。 例如,如果我有一个与应用程序网关关联的专用 IP,并且该专用 IP 在门户的前端 IP 配置中列出的名称为 PrivateFrontEndIP,则目标子资源值将为:PrivateFrontEndIP。
注意
如果必须将专用终结点移到另一个订阅,必须先删除专用链接与专用终结点之间的现有专用终结点连接。 完成此操作后,必须在新订阅中重新创建一个新的专用终结点连接,以在专用链接与专用终结点之间建立连接。
若要通过 Azure PowerShell 在现有应用程序网关上配置专用链接,请使用以下命令:
# Disable Private Link Service Network Policies
# /private-link/disable-private-endpoint-network-policy
$net =@{
Name = 'AppGW-PL-PSH'
ResourceGroupName = 'AppGW-PL-PSH-RG'
}
$vnet = Get-AzVirtualNetwork @net
($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'AppGW-PL-Subnet'}).PrivateLinkServiceNetworkPolicies = "Disabled"
$vnet | Set-AzVirtualNetwork
# Get Application Gateway Frontend IP Name
$agw = Get-AzApplicationGateway -Name AppGW-PL-PSH -ResourceGroupName AppGW-PL-PSH-RG
# List the names
$agw.FrontendIPConfigurations | Select Name
# Add a new Private Link configuration and associate it with an existing Frontend IP
$PrivateLinkIpConfiguration = New-AzApplicationGatewayPrivateLinkIpConfiguration `
-Name "ipConfig01" `
-Subnet ($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'AppGW-PL-Subnet'}) `
-Primary
# Add the Private Link configuration to the gateway configuration
Add-AzApplicationGatewayPrivateLinkConfiguration `
-ApplicationGateway $agw `
-Name "privateLinkConfig01" `
-IpConfiguration $PrivateLinkIpConfiguration
# Associate private link configuration to Frontend IP
$agwPip = ($agw | Select -ExpandProperty FrontendIpConfigurations| Where-Object {$_.Name -eq 'appGwPublicFrontendIp'}).PublicIPAddress.Id
$privateLinkConfiguration = ($agw | Select -ExpandProperty PrivateLinkConfigurations | Where-Object {$_.Name -eq 'privateLinkConfig01'}).Id
Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $agw -Name "appGwPublicFrontendIp" -PublicIPAddressId $agwPip -PrivateLinkConfigurationId $privateLinkConfiguration
# Apply the change to the gateway
Set-AzApplicationGateway -ApplicationGateway $agw
# Disable Private Endpoint Network Policies
# /private-link/disable-private-endpoint-network-policy
$net =@{
Name = 'AppGW-PL-Endpoint-PSH-VNET'
ResourceGroupName = 'AppGW-PL-Endpoint-PSH-RG'
}
$vnet_plendpoint = Get-AzVirtualNetwork @net
($vnet_plendpoint | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'MySubnet'}).PrivateEndpointNetworkPolicies = "Disabled"
$vnet_plendpoint | Set-AzVirtualNetwork
# Create Private Link Endpoint - Group ID is the same as the frontend IP configuration
$privateEndpointConnection = New-AzPrivateLinkServiceConnection -Name "AppGW-PL-Connection" -PrivateLinkServiceId $agw.Id -GroupID "appGwPublicFrontendIp"
## Create private endpoint
New-AzPrivateEndpoint -Name "AppGWPrivateEndpoint" -ResourceGroupName $vnet_plendpoint.ResourceGroupName -Location $vnet_plendpoint.Location -Subnet ($vnet_plendpoint | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'MySubnet'}) -PrivateLinkServiceConnection $privateEndpointConnection
以下列表列出了应用程序网关上的专用链接配置的所有 Azure PowerShell 参考:
若要通过 Azure CLI 在现有应用程序网关上配置专用链接,请使用以下命令:
# Disable Private Link Service Network Policies
# /private-link/disable-private-endpoint-network-policy
az network vnet subnet update \
--name AppGW-PL-Subnet \
--vnet-name AppGW-PL-CLI-VNET \
--resource-group AppGW-PL-CLI-RG \
--disable-private-link-service-network-policies true
# Get Application Gateway Frontend IP Name
az network application-gateway frontend-ip list \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Add a new Private Link configuration and associate it with an existing Frontend IP
az network application-gateway private-link add \
--frontend-ip appGwPublicFrontendIp \
--name privateLinkConfig01 \
--subnet /subscriptions/XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/resourceGroups/AppGW-PL-CLI-RG/providers/Microsoft.Network/virtualNetworks/AppGW-PL-CLI-VNET/subnets/AppGW-PL-Subnet \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Get Private Link resource ID
az network application-gateway private-link list \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Disable Private Endpoint Network Policies
# /private-link/disable-private-endpoint-network-policy
az network vnet subnet update \
--name MySubnet \
--vnet-name AppGW-PL-Endpoint-CLI-VNET \
--resource-group AppGW-PL-Endpoint-CLI-RG \
--disable-private-endpoint-network-policies true
# Create Private Link Endpoint - Group ID is the same as the frontend IP configuration
az network private-endpoint create \
--name AppGWPrivateEndpoint \
--resource-group AppGW-PL-Endpoint-CLI-RG \
--vnet-name AppGW-PL-Endpoint-CLI-VNET \
--subnet MySubnet \
--group-id appGwPublicFrontendIp \
--private-connection-resource-id /subscriptions/XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/resourceGroups/AppGW-PL-CLI-RG/providers/Microsoft.Network/applicationGateways/AppGW-PL-CLI \
--connection-name AppGW-PL-Connection
此处提供了应用程序网关上的专用链接配置的所有 Azure CLI 参考列表:Azure CLI - 专用链接