本文介绍如何使用 Azure 虚拟桌面设置专用链接以私密方式连接到远程资源。 有关将 专用链接 与 Azure 虚拟桌面配合使用的详细信息(包括限制),请参阅使用 Azure 虚拟桌面Azure 专用链接。
先决条件
若要将 专用链接 与 Azure 虚拟桌面配合使用,需要满足以下条件:
在订阅上启用 Azure 虚拟桌面专用链接
若要将 专用链接 与 Azure 虚拟桌面配合使用,需要在要与 Azure 虚拟桌面一起使用的每个订阅上重新注册 专用链接 Microsoft.DesktopVirtualization 资源提供程序。
选择方案的相关选项卡。
重新注册 Azure 虚拟桌面资源提供程序
在 Azure 虚拟桌面中使用 专用链接 之前,需要重新注册 Microsoft.DesktopVirtualization 资源提供程序。 需要针对要用于 Azure 虚拟桌面专用链接的每个订阅执行此作:
登录 Azure 门户。
在搜索栏中,输入 “订阅 ”,然后选择匹配的服务条目。
选择订阅的名称,然后在 “设置”部分选择“ 资源提供程序”。
搜索并选择“ Microsoft.DesktopVirtualization”,然后选择“ 重新注册”。
验证 Microsoft.DesktopVirtualization 的状态是否为 “已注册”。
向美国政府和由世纪互联运营的 Azure (Azure 虚拟桌面注册 专用链接)
对于由世纪互联运营的适用于美国政府的 Azure 和 Azure,首先需要向 Azure 虚拟桌面注册用于专用链接的 Azure 订阅:
登录 Azure 门户。
在搜索栏中,输入 “订阅 ”,然后选择匹配的服务条目。
选择订阅的名称,然后在 “设置” 部分中,选择“ 预览功能”。
选择筛选器 “类型 ”的下拉列表,并将其设置为 “Microsoft.DesktopVirtualization”。
选择“Azure 虚拟桌面专用链接”,然后选择“注册”。
重新注册 Azure 虚拟桌面资源提供程序
注册订阅后,需要重新注册 Microsoft.DesktopVirtualization 资源提供程序。 需要针对要用于 Azure 虚拟桌面专用链接的每个订阅执行此作:
登录 Azure 门户。
在搜索栏中,输入 “订阅 ”,然后选择匹配的服务条目。
选择订阅的名称,然后在 “设置”部分选择“ 资源提供程序”。
搜索并选择“ Microsoft.DesktopVirtualization”,然后选择“ 重新注册”。
验证 Microsoft.DesktopVirtualization 的状态是否为 “已注册”。
创建专用终结点
在设置过程中,需要根据方案为以下资源创建专用终结点。
连接的所有部分(初始源发现、源下载以及客户端和会话主机的远程会话连接)都使用专用路由。 需要以下专用终结点:
用途 |
资源类型 |
目标子资源 |
终结点数量 |
Connections到主机池 |
Microsoft.DesktopVirtualization/hostpools |
连接 |
每个主机池一个 |
源下载 |
Microsoft.DesktopVirtualization/workspaces |
饲料 |
每个工作区一个 |
初始源发现 |
Microsoft.DesktopVirtualization/workspaces |
全球 |
所有 Azure 虚拟桌面部署只有一个 |
客户端和会话主机的源下载和远程会话连接使用专用路由,但初始源发现使用公共路由。 需要以下专用终结点。 不需要初始源发现终结点。
用途 |
资源类型 |
目标子资源 |
终结点数量 |
Connections到主机池 |
Microsoft.DesktopVirtualization/hostpools |
连接 |
每个主机池一个 |
源下载 |
Microsoft.DesktopVirtualization/workspaces |
饲料 |
每个工作区一个 |
只有客户端和会话主机的远程会话连接使用专用路由,但初始源发现和源下载使用公共路由。 需要以下专用终结点 () 。 不需要工作区的终结点。
用途 |
资源类型 |
目标子资源 |
终结点数量 |
Connections到主机池 |
Microsoft.DesktopVirtualization/hostpools |
连接 |
每个主机池一个 |
客户端和会话主机 VM 都使用公共路由。 此方案中不使用专用链接。
重要
如果为初始源发现创建专用终结点,则用于全局子资源的工作区将控制共享的完全限定域名 (FQDN) ,从而促进所有工作区中源的初始发现。 应创建一个单独的工作区,该工作区仅用于此目的,并且没有任何应用程序组注册到该工作区。 删除此工作区将导致所有源发现进程停止工作。
无法控制对用于初始源发现 (全局子资源) 工作区的访问。 如果将此工作区配置为仅允许专用访问,则会忽略该设置。 始终可从公共路由访问此工作区。
随着对 IP 地址需求的增加,IP 地址分配可能会发生变化。 在容量扩展期间,专用终结点需要其他地址。 请务必考虑潜在的地址空间耗尽并确保有足够的空间进行增长。 有关确定中心或分支拓扑中专用终结点的适当网络配置的详细信息,请参阅专用链接部署的决策树。
Connections到主机池
若要为连接到主机池 的连接 子资源创建专用终结点,请选择方案的相关选项卡,并按照步骤作。
下面介绍如何使用 Azure 门户为连接到主机池的连接子资源创建专用终结点。
登录 Azure 门户。
在搜索栏中,键入 Azure 虚拟桌面 并选择匹配的服务条目以转到 Azure 虚拟桌面概述。
选择“ 主机池”,然后选择要为其创建 连接 子资源的主机池的名称。
在主机池概述中,依次选择“ 网络”、“ 专用终结点连接”和“ 新建专用终结点”。
在“ 基本信息 ”选项卡上,完成以下信息:
参数 |
值/说明 |
订阅 |
从下拉列表中选择要在其中创建专用终结点的订阅。 |
资源组 |
这会自动默认为专用终结点的工作区所在的同一资源组,但你也可以从下拉列表中选择一个替代的现有资源组,或创建一个新资源组。 |
名称 |
输入新专用终结点的名称。 |
网络接口名称 |
网络接口名称将根据你为专用终结点提供的名称自动填充,但你也可以指定其他名称。 |
地区 |
这会自动默认为与工作区相同的 Azure 区域,并且是部署专用终结点的位置。 此区域必须与虚拟网络和会话主机相同。 |
完成此选项卡后,选择“ 下一步:资源”。
在“ 资源 ”选项卡上,验证“ 订阅”、“ 资源类型”和“ 资源”的值,对于 “目标子资源”,选择“ 连接”。 完成此选项卡后,选择“下一步:虚拟网络”。
在“虚拟网络”选项卡上,完成以下信息:
参数 |
值/说明 |
虚拟网络 |
从下拉列表中选择要在其中创建专用终结点的虚拟网络。 |
子网 |
从下拉列表中选择要在其中创建专用终结点的虚拟网络的子网。 |
专用终结点的网络策略 |
如果要选择子网网络策略,请选择 “编辑 ”。 有关详细信息,请参阅 管理专用终结点的网络策略。 |
专用 IP 配置 |
选择 “动态分配 IP 地址 ”或 “静态分配 IP 地址”。 地址空间来自所选子网。
如果选择静态分配 IP 地址,则需要为每个列出的成员填写 “名称” 和“ 专用 IP ”。 |
应用程序安全组 |
可选:从下拉列表中选择专用终结点的现有应用程序安全组,或创建新安全组。 也可以稍后添加一个。 |
完成此选项卡后,选择“ 下一步:DNS”。
在“DNS”选项卡上,选择是否要使用 Azure 专用 DNS区域,方法是为“与专用 DNS 区域集成”选择“是”还是“否”。 如果选择“ 是”,请选择要在其中创建专用 DNS 区域的 privatelink.wvd.microsoft.com
订阅和资源组。 有关详细信息,请参阅 Azure 专用终结点 DNS 配置。
完成此选项卡后,选择“ 下一步:标记”。
可选:在“ 标记 ”选项卡上,可以输入所需的任何 名称/值对 ,然后选择“ 下一步:查看 + 创建”。
在“ 查看 + 创建 ”选项卡上,确保验证通过并查看部署期间使用的信息。
选择“ 创建 ”,为连接子资源创建专用终结点。
下面介绍如何使用 Az.Network 和 Az.DesktopVirtualization PowerShell 模块为用于连接到主机池的连接子资源创建专用终结点。 请务必更改 <placeholder>
自己的值。
使用 PowerShell 终端类型在Azure 门户中打开 Azure Cloud Shell,或在本地设备上运行 PowerShell。
通过运行以下命令,获取要用于专用终结点的虚拟网络和子网的详细信息,并将其存储在变量中:
# Get the subnet details for the virtual network
$subnet = (Get-AzVirtualNetwork -Name <VNetName> -ResourceGroupName <ResourceGroupName>).Subnets | ? Name -eq <SubnetName>
通过运行以下命令,为具有连接子资源的主机池创建专用链接服务连接。
# Get the resource ID of the host pool
$hostPoolId = (Get-AzWvdHostPool -Name <HostPoolName> -ResourceGroupName <ResourceGroupName>).Id
# Create the service connection
$parameters = @{
Name = '<ServiceConnectionName>'
PrivateLinkServiceId = $hostPoolId
GroupId = 'connection'
}
$serviceConnection = New-AzPrivateLinkServiceConnection @parameters
最后,通过运行以下示例之一中的 命令来创建专用终结点。
若要创建具有动态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network and session hosts.
$location = '<Location>'
# Create the private endpoint
$parameters = @{
Name = '<PrivateEndpointName>'
ResourceGroupName = '<ResourceGroupName>'
Location = $location
Subnet = $subnet
PrivateLinkServiceConnection = $serviceConnection
}
New-AzPrivateEndpoint @parameters
若要创建具有静态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network and session hosts.
$location = '<Location>'
# Create a hash table for each private endpoint IP configuration
$ip1 = @{
Name = 'ipconfig1'
GroupId = 'connection'
MemberName = 'broker'
PrivateIPAddress = '<IPAddress>'
}
$ip2 = @{
Name = 'ipconfig2'
GroupId = 'connection'
MemberName = 'diagnostics'
PrivateIPAddress = '<IPAddress>'
}
$ip3 = @{
Name = 'ipconfig3'
GroupId = 'connection'
MemberName = 'gateway-ring-map'
PrivateIPAddress = '<IPAddress>'
}
$ip4 = @{
Name = 'ipconfig4'
GroupId = 'connection'
MemberName = 'web'
PrivateIPAddress = '<IPAddress>'
}
# Create the private endpoint IP configurations
$ipConfig1 = New-AzPrivateEndpointIpConfiguration @ip1
$ipConfig2 = New-AzPrivateEndpointIpConfiguration @ip2
$ipConfig3 = New-AzPrivateEndpointIpConfiguration @ip3
$ipConfig4 = New-AzPrivateEndpointIpConfiguration @ip4
# Create the private endpoint
$parameters = @{
Name = '<PrivateEndpointName>'
ResourceGroupName = '<ResourceGroupName>'
Location = $location
Subnet = $subnet
PrivateLinkServiceConnection = $serviceConnection
IpConfiguration = $ipConfig1, $ipConfig2, $ipConfig3, $ipConfig4
}
New-AzPrivateEndpoint @parameters
输出应类似于以下输出。 检查 ProvisioningState 的值是否为 Succeeded。
ResourceGroupName Name Location ProvisioningState Subnet
----------------- ---- -------- ----------------- ------
privatelink endpoint-hp01 uksouth Succeeded
需要 为专用终结点配置 DNS ,以解析虚拟网络中专用终结点的 DNS 名称。 专用 DNS 区域名称为 privatelink.wvd.microsoft.com
。 有关使用Azure PowerShell创建和配置专用 DNS 区域的步骤,请参阅配置专用 DNS 区域。
下面介绍如何使用 Azure CLI 的网络和桌面虚拟扩展为用于连接到主机池的连接子资源创建专用终结点。
重要
在以下示例中,需要更改 <placeholder>
自己的值。
使用 Bash 终端类型在Azure 门户中打开 Azure Cloud Shell,或在本地设备上运行 Azure CLI。
通过运行以下示例之一中的 命令,为具有连接子资源的主机池创建专用链接服务连接和专用终结点。
若要创建具有动态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network and session hosts.
location=<Location>
# Get the resource ID of the host pool
hostPoolId=$(az desktopvirtualization hostpool show \
--name <HostPoolName> \
--resource-group <ResourceGroupName> \
--query [id] \
--output tsv)
# Create a service connection and the private endpoint
az network private-endpoint create \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--location $location \
--vnet-name <VNetName> \
--subnet <SubnetName> \
--connection-name <ConnectionName> \
--private-connection-resource-id $hostPoolId \
--group-id connection \
--output table
若要创建具有静态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network and session hosts.
location=<Location>
# Get the resource ID of the host pool
hostPoolId=$(az desktopvirtualization hostpool show \
--name <HostPoolName> \
--resource-group <ResourceGroupName> \
--query [id] \
--output tsv)
# Store each private endpoint IP configuration in a variable
ip1={name:ipconfig1,group-id:connection,member-name:broker,private-ip-address:<IPAddress>}
ip2={name:ipconfig2,group-id:connection,member-name:diagnostics,private-ip-address:<IPAddress>}
ip3={name:ipconfig3,group-id:connection,member-name:gateway-ring-map,private-ip-address:<IPAddress>}
ip4={name:ipconfig4,group-id:connection,member-name:web,private-ip-address:<IPAddress>}
# Create a service connection and the private endpoint
az network private-endpoint create \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--location $location \
--vnet-name <VNetName> \
--subnet <SubnetName> \
--connection-name <ConnectionName> \
--private-connection-resource-id $hostPoolId \
--group-id connection \
--ip-configs [$ip1,$ip2,$ip3,$ip4] \
--output table
输出应类似于以下输出。 检查 ProvisioningState 的值是否为 Succeeded。
CustomNetworkInterfaceName Location Name ProvisioningState ResourceGroup
---------------------------- ---------- -------------------- ------------------- ---------------
uksouth endpoint-hp01 Succeeded privatelink
需要 为专用终结点配置 DNS ,以解析虚拟网络中专用终结点的 DNS 名称。 专用 DNS 区域名称为 privatelink.wvd.microsoft.com
。 有关使用 Azure CLI 创建和配置专用 DNS 区域的步骤,请参阅 配置专用 DNS 区域。
重要
需要为要用于专用链接的每个主机池的连接子资源创建专用终结点。
源下载
若要为工作区的 源 子资源创建专用终结点,请选择方案的相关选项卡,并按照步骤作。
在 Azure 虚拟桌面概述中,选择“ 工作区”,然后选择要为其创建 源 子资源的工作区的名称。
在工作区概述中,依次选择“ 网络”、“ 专用终结点连接”和“ 新建专用终结点”。
在“ 基本信息 ”选项卡上,完成以下信息:
参数 |
值/说明 |
订阅 |
从下拉列表中选择要在其中创建专用终结点的订阅。 |
资源组 |
这会自动默认为专用终结点的工作区所在的同一资源组,但你也可以从下拉列表中选择一个替代的现有资源组,或创建一个新资源组。 |
名称 |
输入新专用终结点的名称。 |
网络接口名称 |
网络接口名称将根据你为专用终结点提供的名称自动填充,但你也可以指定其他名称。 |
地区 |
这会自动默认为与工作区相同的 Azure 区域,并且是部署专用终结点的位置。 这必须与虚拟网络所在的区域相同。 |
完成此选项卡后,选择“ 下一步:资源”。
在“ 资源 ”选项卡上,验证“ 订阅”、“ 资源类型”和“ 资源”的值,然后为 “目标子资源”选择“ 源”。 完成此选项卡后,选择“下一步:虚拟网络”。
在“虚拟网络”选项卡上,完成以下信息:
参数 |
值/说明 |
虚拟网络 |
从下拉列表中选择要在其中创建专用终结点的虚拟网络。 |
子网 |
从下拉列表中选择要在其中创建专用终结点的虚拟网络的子网。 |
专用终结点的网络策略 |
如果要选择子网网络策略,请选择 “编辑 ”。 有关详细信息,请参阅 管理专用终结点的网络策略。 |
专用 IP 配置 |
选择 “动态分配 IP 地址 ”或 “静态分配 IP 地址”。 地址空间来自所选子网。
如果选择静态分配 IP 地址,则需要为每个列出的成员填写 “名称” 和“ 专用 IP ”。 |
应用程序安全组 |
可选:从下拉列表中选择专用终结点的现有应用程序安全组,或创建新安全组。 也可以稍后添加一个。 |
完成此选项卡后,选择“ 下一步:DNS”。
在“DNS”选项卡上,选择是否要使用 Azure 专用 DNS区域,方法是为“与专用 DNS 区域集成”选择“是”还是“否”。 如果选择“ 是”,请选择要在其中创建专用 DNS 区域的 privatelink.wvd.microsoft.com
订阅和资源组。 有关详细信息,请参阅 Azure 专用终结点 DNS 配置。
完成此选项卡后,选择“ 下一步:标记”。
可选:在“ 标记 ”选项卡上,可以输入所需的任何 名称/值对 ,然后选择“ 下一步:查看 + 创建”。
在“ 查看 + 创建 ”选项卡上,确保验证通过并查看部署期间使用的信息。
选择“ 创建 ”,为源子资源创建专用终结点。
在同一 PowerShell 会话中,通过运行以下命令,为具有源子资源的工作区创建专用链接服务连接。 在这些示例中,使用相同的虚拟网络和子网。
# Get the resource ID of the workspace
$workspaceId = (Get-AzWvdWorkspace -Name <WorkspaceName> -ResourceGroupName <ResourceGroupName>).Id
# Create the service connection
$parameters = @{
Name = '<ServiceConnectionName>'
PrivateLinkServiceId = $workspaceId
GroupId = 'feed'
}
$serviceConnection = New-AzPrivateLinkServiceConnection @parameters
最后,通过运行以下示例之一中的 命令来创建专用终结点。
若要创建具有动态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
$location = '<Location>'
# Create the private endpoint
$parameters = @{
Name = '<PrivateEndpointName>'
ResourceGroupName = '<ResourceGroupName>'
Location = $location
Subnet = $subnet
PrivateLinkServiceConnection = $serviceConnection
}
New-AzPrivateEndpoint @parameters
若要创建具有静态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
$location = '<Location>'
# Create a hash table for each private endpoint IP configuration
$ip1 = @{
Name = 'ipconfig1'
GroupId = 'feed'
MemberName = 'web-r1'
PrivateIPAddress = '<IPAddress>'
}
$ip2 = @{
Name = 'ipconfig2'
GroupId = 'feed'
MemberName = 'web-r0'
PrivateIPAddress = '<IPAddress>'
}
# Create the private endpoint IP configurations
$ipConfig1 = New-AzPrivateEndpointIpConfiguration @ip1
$ipConfig2 = New-AzPrivateEndpointIpConfiguration @ip2
# Create the private endpoint
$parameters = @{
Name = '<PrivateEndpointName>'
ResourceGroupName = '<ResourceGroupName>'
Location = $location
Subnet = $subnet
PrivateLinkServiceConnection = $serviceConnection
IpConfiguration = $ipConfig1, $ipConfig2
}
New-AzPrivateEndpoint @parameters
输出应如下所示。 检查 ProvisioningState 的值是否为 Succeeded。
ResourceGroupName Name Location ProvisioningState Subnet
----------------- ---- -------- ----------------- ------
privatelink endpoint-ws01 uksouth Succeeded
需要 为专用终结点配置 DNS ,以解析虚拟网络中专用终结点的 DNS 名称。 专用 DNS 区域名称为 privatelink.wvd.microsoft.com
。 有关使用Azure PowerShell创建和配置专用 DNS 区域的步骤,请参阅配置专用 DNS 区域。
在同一 CLI 会话中,通过运行以下命令,为具有源子资源的工作区创建专用链接服务连接和专用终结点。
若要创建具有动态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
location=<Location>
# Get the resource ID of the workspace
workspaceId=$(az desktopvirtualization workspace show \
--name <WorkspaceName> \
--resource-group <ResourceGroupName> \
--query [id] \
--output tsv)
# Create a service connection and the private endpoint
az network private-endpoint create \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--location $location \
--vnet-name <VNetName> \
--subnet <SubnetName> \
--connection-name <ConnectionName> \
--private-connection-resource-id $workspaceId \
--group-id feed \
--output table
若要创建具有静态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
location=<Location>
# Get the resource ID of the workspace
workspaceId=$(az desktopvirtualization workspace show \
--name <WorkspaceName> \
--resource-group <ResourceGroupName> \
--query [id] \
--output tsv)
# Store each private endpoint IP configuration in a variable
ip1={name:ipconfig1,group-id:feed,member-name:web-r1,private-ip-address:<IPAddress>}
ip2={name:ipconfig2,group-id:feed,member-name:web-r0,private-ip-address:<IPAddress>}
# Create a service connection and the private endpoint
az network private-endpoint create \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--location $location \
--vnet-name <VNetName> \
--subnet <SubnetName> \
--connection-name <ConnectionName> \
--private-connection-resource-id $workspaceId \
--group-id feed \
--ip-configs [$ip1,$ip2] \
--output table
输出应如下所示。 检查 ProvisioningState 的值是否为 Succeeded。
CustomNetworkInterfaceName Location Name ProvisioningState ResourceGroup
---------------------------- ---------- -------------------- ------------------- ---------------
uksouth endpoint-ws01 Succeeded privatelink
需要 为专用终结点配置 DNS ,以解析虚拟网络中专用终结点的 DNS 名称。 专用 DNS 区域名称为 privatelink.wvd.microsoft.com
。 有关使用 Azure CLI 创建和配置专用 DNS 区域的步骤,请参阅 配置专用 DNS 区域。
重要
需要为每个要与专用链接一起使用的工作区的源子资源创建专用终结点。
初始源发现
若要为用于初始源发现的 全局 子资源创建专用终结点,请选择方案的相关选项卡并按照步骤作。
在 Azure 虚拟桌面概述中,选择“ 工作区”,然后选择要用于全局子资源的工作区的名称。
-
可选:请改为按照创建工作区的说明创建占位符 工作区以终止全局终结点。
在工作区概述中,依次选择“ 网络”、“ 专用终结点连接”和“ 新建专用终结点”。
在“ 基本信息 ”选项卡上,完成以下信息:
参数 |
值/说明 |
订阅 |
从下拉列表中选择要在其中创建专用终结点的订阅。 |
资源组 |
这会自动默认为专用终结点的工作区所在的同一资源组,但你也可以从下拉列表中选择一个替代的现有资源组,或创建一个新资源组。 |
名称 |
输入新专用终结点的名称。 |
网络接口名称 |
网络接口名称将根据你为专用终结点提供的名称自动填充,但你也可以指定其他名称。 |
地区 |
这会自动默认为与工作区相同的 Azure 区域,并且是专用终结点的部署位置。 这必须与虚拟网络所在的区域相同。 |
完成此选项卡后,选择“ 下一步:资源”。
在“ 资源 ”选项卡上,验证“ 订阅”、“ 资源类型”和“ 资源”的值,然后对于 “目标子资源”,选择“ 全局”。 完成此选项卡后,选择“下一步:虚拟网络”。
在“虚拟网络”选项卡上,完成以下信息:
参数 |
值/说明 |
虚拟网络 |
从下拉列表中选择要在其中创建专用终结点的虚拟网络。 |
子网 |
从下拉列表中选择要在其中创建专用终结点的虚拟网络的子网。 |
专用终结点的网络策略 |
如果要选择子网网络策略,请选择 “编辑 ”。 有关详细信息,请参阅 管理专用终结点的网络策略。 |
专用 IP 配置 |
选择 “动态分配 IP 地址 ”或 “静态分配 IP 地址”。 地址空间来自所选子网。
如果选择静态分配 IP 地址,则需要为每个列出的成员填写 “名称” 和“ 专用 IP ”。 |
应用程序安全组 |
可选:从下拉列表中选择专用终结点的现有应用程序安全组,或创建新安全组。 也可以稍后添加一个。 |
完成此选项卡后,选择“ 下一步:DNS”。
在“DNS”选项卡上,选择是否要使用 Azure 专用 DNS区域,方法是为“与专用 DNS 区域集成”选择“是”还是“否”。 如果选择“ 是”,请选择要在其中创建专用 DNS 区域的 privatelink-global.wvd.microsoft.com
订阅和资源组。 有关详细信息,请参阅 Azure 专用终结点 DNS 配置。
完成此选项卡后,选择“ 下一步:标记”。
可选:在“ 标记 ”选项卡上,可以输入所需的任何 名称/值对 ,然后选择“ 下一步:查看 + 创建”。
在“ 查看 + 创建 ”选项卡上,确保验证通过并查看部署期间使用的信息。
选择“ 创建 ”,为全局子资源创建专用终结点。
可选:按照创建工作区的说明创建占位符 工作区以终止全局终结点。
在同一 PowerShell 会话中,通过运行以下命令,为工作区创建具有全局子资源的专用链接服务连接。 在这些示例中,使用相同的虚拟网络和子网。
# Get the resource ID of the workspace
$workspaceId = (Get-AzWvdWorkspace -Name <WorkspaceName> -ResourceGroupName <ResourceGroupName>).Id
# Create the service connection
$parameters = @{
Name = '<ServiceConnectionName>'
PrivateLinkServiceId = $workspaceId
GroupId = 'global'
}
$serviceConnection = New-AzPrivateLinkServiceConnection @parameters
最后,通过运行以下示例之一中的 命令来创建专用终结点。
若要创建具有动态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
$location = '<Location>'
# Create the private endpoint
$parameters = @{
Name = '<PrivateEndpointName>'
ResourceGroupName = '<ResourceGroupName>'
Location = $location
Subnet = $subnet
PrivateLinkServiceConnection = $serviceConnection
}
New-AzPrivateEndpoint @parameters
若要创建具有静态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
$location = '<Location>'
$ip = @{
Name = '<IPConfigName>'
GroupId = 'global'
MemberName = 'web'
PrivateIPAddress = '<IPAddress>'
}
$ipConfig = New-AzPrivateEndpointIpConfiguration @ip
# Create the private endpoint
$parameters = @{
Name = '<PrivateEndpointName>'
ResourceGroupName = '<ResourceGroupName>'
Location = $location
Subnet = $subnet
PrivateLinkServiceConnection = $serviceConnection
IpConfiguration = $ipconfig
}
New-AzPrivateEndpoint @parameters
输出应如下所示。 检查 ProvisioningState 的值是否为 Succeeded。
ResourceGroupName Name Location ProvisioningState Subnet
----------------- ---- -------- ----------------- ------
privatelink endpoint-global uksouth Succeeded
需要 为专用终结点配置 DNS ,以解析虚拟网络中专用终结点的 DNS 名称。 专用 DNS 区域名称为 privatelink-global.wvd.microsoft.com
。 有关使用Azure PowerShell创建和配置专用 DNS 区域的步骤,请参阅配置专用 DNS 区域。
可选:按照创建工作区的说明创建占位符 工作区以终止全局终结点。
在同一 CLI 会话中,通过运行以下命令,为具有全局子资源的工作区创建专用链接服务连接和专用终结点:
若要创建具有动态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
location=<Location>
# Get the resource ID of the workspace
workspaceId=$(az desktopvirtualization workspace show \
--name <WorkspaceName> \
--resource-group <ResourceGroupName> \
--query [id] \
--output tsv)
# Create a service connection and the private endpoint
az network private-endpoint create \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--location $location \
--vnet-name <VNetName> \
--subnet <SubnetName> \
--connection-name <ConnectionName> \
--private-connection-resource-id $workspaceId \
--group-id global \
--output table
若要创建具有静态分配 IP 地址的专用终结点,请执行以下作:
# Specify the Azure region. This must be the same region as your virtual network.
location=<Location>
# Get the resource ID of the workspace
workspaceId=$(az desktopvirtualization workspace show \
--name <WorkspaceName> \
--resource-group <ResourceGroupName> \
--query [id] \
--output tsv)
# Store each private endpoint IP configuration in a variable
ip={name:ipconfig,group-id:global,member-name:web,private-ip-address:<IPAddress>}
# Create a service connection and the private endpoint
az network private-endpoint create \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--location $location \
--vnet-name <VNetName> \
--subnet <SubnetName> \
--connection-name <ConnectionName> \
--private-connection-resource-id $workspaceId \
--group-id global \
--ip-config $ip \
--output table
输出应如下所示。 检查 ProvisioningState 的值是否为 Succeeded。
CustomNetworkInterfaceName Location Name ProvisioningState ResourceGroup
---------------------------- ---------- -------------------- ------------------- ---------------
uksouth endpoint-global Succeeded privatelink
需要 为专用终结点配置 DNS ,以解析虚拟网络中专用终结点的 DNS 名称。 专用 DNS 区域名称为 privatelink-global.wvd.microsoft.com
。 有关使用 Azure CLI 创建和配置专用 DNS 区域的步骤,请参阅 配置专用 DNS 区域。
关闭公共路由
创建专用终结点后,还可以控制是否允许流量来自公共路由。 可以使用 Azure 虚拟桌面在精细级别控制此问题,也可以更广泛地使用网络安全组 (NSG) 或Azure 防火墙。
使用 Azure 虚拟桌面控制路由
使用 Azure 虚拟桌面,可以独立控制工作区和主机池的公共流量。 选择方案的相关选项卡,然后按照步骤作。 无法在 Azure CLI 中配置此项。 需要对用于专用链接的每个工作区和主机池重复这些步骤。
工作区
在 Azure 虚拟桌面概述中,选择“ 工作区”,然后选择工作区的名称以控制公共流量。
在主机池概述中,选择“ 网络”,然后选择“ 公共访问 ”选项卡。
选择下列选项之一:
Setting |
说明 |
启用来自所有网络的公共访问 |
最终用户可以通过公共 Internet 或专用终结点访问源。 |
禁用公共访问并使用专用访问 |
最终用户只能通过专用终结点访问源。 |
选择“保存”。
主机池
在 Azure 虚拟桌面概述中,选择“ 主机池”,然后选择主机池的名称以控制公共流量。
在主机池概述中,选择“ 网络”,然后选择“ 公共访问 ”选项卡。
选择下列选项之一:
Setting |
说明 |
启用来自所有网络的公共访问 |
最终用户可以通过公共 Internet 或专用终结点安全地访问源和会话主机。 |
为最终用户启用公共访问,对会话主机使用专用访问 |
最终用户可以通过公共 Internet 安全地访问源,但必须使用专用终结点来访问会话主机。 |
禁用公共访问并使用专用访问 |
最终用户只能通过专用终结点访问源和会话主机。 |
选择“保存”。
工作区
在同一 PowerShell 会话中,可以通过运行以下命令来禁用公共访问并使用专用访问:
$parameters = @{
Name = '<WorkspaceName>'
ResourceGroupName = '<ResourceGroupName>'
PublicNetworkAccess = 'Disabled'
}
Update-AzWvdWorkspace @parameters
若要启用来自所有网络的公共访问,请运行以下命令:
$parameters = @{
Name = '<WorkspaceName>'
ResourceGroupName = '<ResourceGroupName>'
PublicNetworkAccess = 'Enabled'
}
Update-AzWvdWorkspace @parameters
主机池
在同一 PowerShell 会话中,可以通过运行以下命令来禁用公共访问并使用专用访问:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
PublicNetworkAccess = 'Disabled'
}
Update-AzWvdHostPool @parameters
若要启用来自所有网络的公共访问,请运行以下命令:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
PublicNetworkAccess = 'Enabled'
}
Update-AzWvdHostPool @parameters
若要对最终用户使用公共访问,但对会话主机使用专用访问,请运行以下命令:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
PublicNetworkAccess = 'EnabledForSessionHostsOnly'
}
Update-AzWvdHostPool @parameters
若要对最终用户使用专用访问,但对会话主机使用公共访问,请运行以下命令:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
PublicNetworkAccess = 'EnabledForClientsOnly'
}
Update-AzWvdHostPool @parameters
重要
更改会话主机的访问权限不会影响现有会话。 将专用终结点更改为主机池后,必须在主机池中的每个会话主机上重启 远程桌面代理加载程序 (RDAgentBootLoader) 服务。 每当更改主机池的网络配置时,还需要重启此服务。 可以重启每个会话主机,而不是重启服务。
使用网络安全组或Azure 防火墙阻止公共路由
如果使用网络安全组或Azure 防火墙来控制从用户客户端设备或会话主机到专用终结点的连接,则可以使用 WindowsVirtualDesktop 服务标记来阻止来自公共 Internet 的流量。 如果使用此服务标记阻止公共 Internet 流量,则所有服务流量仅使用专用路由。
使用 Azure 虚拟桌面验证专用链接
关闭公共路由后,应验证 Azure 虚拟桌面专用链接是否正常工作。 为此,可以检查每个专用终结点的连接状态、会话主机的状态,并测试用户可以刷新并连接到其远程资源。
检查每个专用终结点的连接状态
若要检查每个专用终结点的连接状态,请选择方案的相关选项卡并按照步骤作。 应对用于专用链接的每个工作区和主机池重复这些步骤。
工作区
在 Azure 虚拟桌面概述中,选择“工作区”,然后选择要为其检查连接状态的工作区的名称。
在工作区概述中,依次选择“ 网络”、“ 专用终结点连接”。
对于列出的专用终结点,检查“连接”状态为“已批准”。
主机池
在 Azure 虚拟桌面概述中,选择“主机池”,然后选择要为其检查连接状态的主机池的名称。
在主机池概述中,依次选择“ 网络”和“ 专用终结点连接”。
对于列出的专用终结点,检查“连接”状态为“已批准”。
重要
需要使用 Az.DesktopVirtualization 模块的预览版本来运行以下命令。 有关详细信息以及下载和安装预览版模块,请参阅 PowerShell 库。
工作区
在同一 PowerShell 会话中,运行以下命令以检查工作区的连接状态:
(Get-AzWvdWorkspace -Name <WorkspaceName> -ResourceGroupName <ResourceGroupName).PrivateEndpointConnection | FL Name, PrivateLinkServiceConnectionStateStatus, PrivateLinkServiceConnectionStateDescription, PrivateLinkServiceConnectionStateActionsRequired
输出应如下所示。 检查 PrivateLinkServiceConnectionStateStatus 的值是否为 “已批准”。
Name : endpoint-ws01
PrivateLinkServiceConnectionStateStatus : Approved
PrivateLinkServiceConnectionStateDescription : Auto-approved
PrivateLinkServiceConnectionStateActionsRequired : None
主机池
在同一 PowerShell 会话中,运行以下命令以检查主机池的连接状态:
(Get-AzWvdHostPool -Name <HostPoolName> -ResourceGroupName <ResourceGroupName).PrivateEndpointConnection | FL Name, PrivateLinkServiceConnectionStateStatus, PrivateLinkServiceConnectionStateDescription, PrivateLinkServiceConnectionStateActionsRequired
输出应如下所示。 检查 PrivateLinkServiceConnectionStateStatus 的值是否为 “已批准”。
Name : endpoint-hp01
PrivateLinkServiceConnectionStateStatus : Approved
PrivateLinkServiceConnectionStateDescription : Auto-approved
PrivateLinkServiceConnectionStateActionsRequired : None
在同一 CLI 会话中,运行以下命令以检查工作区或主机池的连接状态:
az network private-endpoint show \
--name <PrivateEndpointName> \
--resource-group <ResourceGroupName> \
--query "{name:name, privateLinkServiceConnectionStates:privateLinkServiceConnections[].privateLinkServiceConnectionState}"
输出应如下所示。 检查 状态 的值是否为 “已批准”。
{
"name": "endpoint-ws01",
"privateLinkServiceConnectionStates": [
{
"actionsRequired": "None",
"description": "Auto-approved",
"status": "Approved"
}
]
}
检查会话主机的状态
在 Azure 虚拟桌面中检查会话主机的状态。
在 Azure 虚拟桌面概述中,选择“ 主机池”,然后选择主机池的名称。
在 “管理 ”部分中,选择“ 会话主机”。
查看会话主机列表,检查其状态为“可用”。
检查用户可以连接
若要测试用户是否可以连接到其远程资源,请执行以下作:
使用远程桌面客户端并确保可以 订阅和刷新工作区。
最后,确保用户可以连接到远程会话。
后续步骤