本文說明如何使用 Azure 虛擬桌面設定 Private Link,以私下連線至遠端資源。 如需搭配 Azure 虛擬桌面使用 Private Link 的詳細資訊,包括限制,請參閱 搭配 Azure 虛擬桌面的 Azure Private Link。
必要條件
若要搭配 Azure 虛擬桌面使用 Private Link,您需要下列項目:
在訂用帳戶上啟用具有 Azure 虛擬桌面的 Private Link
若要搭配 Azure 虛擬桌面使用 Private Link,您必須在每個要搭配 Azure 虛擬桌面使用 Private Link 的訂用帳戶上重新註冊 Microsoft.DesktopVirtualization 資源提供者。
選取案例的相關索引標籤。
重新註冊 Azure 虛擬桌面資源提供者
您必須先重新註冊 Microsoft.DesktopVirtualization 資源提供者,才能搭配 Azure 虛擬桌面使用 Private Link。 您必須針對要用於 Azure 虛擬桌面的 Private Link 的每個訂閱執行此動作:
登入 Azure 入口網站。
在搜尋列中,輸入 [訂閱] ,然後選取相符的服務項目。
選取訂閱的名稱,然後在 [ 設定] 區段中,選取 [資源提供者]。
搜尋並選取 [Microsoft.DesktopVirtualization],然後選取 [ 重新註冊]。
確認 Microsoft.DesktopVirtualization 的狀態為 [註冊]。
重新註冊 Azure 虛擬桌面資源提供者
註冊訂閱之後,您必須重新註冊 Microsoft.DesktopVirtualization 資源提供者。 您必須針對要用於 Azure 虛擬桌面的 Private Link 的每個訂閱執行此動作:
登入 Azure 入口網站。
在搜尋列中,輸入 [訂閱] ,然後選取相符的服務項目。
選取訂閱的名稱,然後在 [ 設定] 區段中,選取 [資源提供者]。
搜尋並選取 [Microsoft.DesktopVirtualization],然後選取 [ 重新註冊]。
確認 Microsoft.DesktopVirtualization 的狀態為 [註冊]。
建立私人端點
在設定過程中,您必須根據案例,建立下列資源的私人端點。
連線的所有部分 - 初始摘要探索、摘要下載,以及用戶端和工作階段主機的遠端工作階段連線 - 都使用私人路由。 您需要下列私人端點:
| 用途 |
資源類型 |
目標子資源 |
端點數量 |
| 主機集區的連線 |
Microsoft.DesktopVirtualization/hostpools |
連線 |
每個主機集區一個 |
| 摘要下載 |
Microsoft.DesktopVirtualization/workspaces |
摘要 |
每個工作區一個 |
| 初步摘要探索 |
Microsoft.DesktopVirtualization/workspaces |
全域 |
所有 Azure 虛擬桌面部署只有一個 |
用戶端和階段作業主機的摘要下載和遠端階段作業連線會使用專用路由,但初始摘要探索會使用公用路徑。 您需要下列私人端點。 不需要初始摘要探索的端點。
| 用途 |
資源類型 |
目標子資源 |
端點數量 |
| 主機集區的連線 |
Microsoft.DesktopVirtualization/hostpools |
連線 |
每個主機集區一個 |
| 摘要下載 |
Microsoft.DesktopVirtualization/workspaces |
摘要 |
每個工作區一個 |
只有用戶端和階段作業主機的遠端階段作業連線會使用專用路由,但初始摘要探索和摘要下載會使用公用路由。 您需要下列私人端點 () 。 不需要工作區的端點。
| 用途 |
資源類型 |
目標子資源 |
端點數量 |
| 主機集區的連線 |
Microsoft.DesktopVirtualization/hostpools |
連線 |
每個主機集區一個 |
用戶端和工作階段主機 VM 都使用公用路由。 Private Link 不會在此案例中使用。
重要事項
如果您為初始摘要探索建立私人端點,則用於全域子資源的工作區會管理共用的完整網域名稱 (FQDN) ,有助於在所有工作區中初始探索摘要。 您應該建立僅用於此用途且未註冊任何應用程式群組的單獨工作區。 刪除此工作區會導致所有摘要探索程序停止運作。
您無法控制用於初始摘要探索 (全域子資源) 之工作區的存取權。 如果您將此工作區設定為僅允許私人存取,則會忽略該設定。 一律可從公用路由存取此工作區。
IP 位址配置可能會隨著 IP 位址需求的增加而變更。 在容量擴充期間,私人端點需要額外的位址。 請務必考慮潛在的位址空間耗盡,並確保有足夠的成長空間。 如需有關判斷中樞或支點拓撲中私人端點適當網路設定的詳細資訊,請參閱 Private Link 部署的決策樹狀結構。
主機集區的連線
若要建立 連線 子資源的私人端點,以連線至主機集區,請選取案例的相關索引標籤,然後依照步驟進行。
以下是如何使用 Azure 入口網站,為連線至主機集區的連線子資源建立私人端點。
登入 Azure 入口網站。
在搜尋列中,輸入 Azure 虛擬桌面,然後選取相符的服務項目,以前往 Azure 虛擬桌面概觀。
選取 [ 主機集區],然後選取您要建立 連線 子資源的主機集區名稱。
從主機集區概觀中,選取 [網路]、 [ 私人端點連線],最後選取 [ 新的私人端點]。
在 [ 基本 ] 索引標籤上,完成下列資訊:
| 參數 |
值/描述 |
| 訂閱 |
從下拉式清單中選取您要建立私人端點的訂閱。 |
| 資源群組 |
這會自動預設為與專屬端點工作區相同的資源群組,但您也可以從下拉式清單中選取現有的替代資源群組,或建立新的資源群組。 |
| 名稱 |
輸入新私人端點的名稱。 |
| 網路介面名稱 |
網路介面名稱會根據您提供給私人端點的名稱自動填入,但您也可以指定不同的名稱。 |
| 區域 |
這會自動預設為與工作區相同的 Azure 區域,也是部署私人端點的位置。 這必須與虛擬網路和工作階段主機是相同的區域。 |
完成此索引標籤之後,選取 [下一步:資源]。
在 資源 索引標籤上,驗證 訂閱、 資源類型和 資源的值,然後針對 目標子資源,選取 連線。 完成此索引標籤之後,選取 [下一步:虛擬網路]。
在 [虛擬網路] 索引標籤上,完成下列資訊:
| 參數 |
值/描述 |
| 虛擬網路 |
從下拉式清單中選取您要建立私人端點的虛擬網路。 |
| 子網路 |
從下拉式清單中選取您要在其中建立私人端點的虛擬網路子網路。 |
| 私人端點的網路原則 |
如果您想要選擇子網路原則,請選取 [ 編輯 ]。 如需詳細資訊,請參閱 管理私人端點的網路原則。 |
| 私人 IP 設定 |
選取動態配置 IP 位址或靜態配置 IP 位址。 位址空間來自您選取的子網路。
如果您選擇靜態配置 IP 位址,則需要為每個列出的成員填寫 名稱 和 私人 IP 。 |
| 應用程式安全性群組 |
選用:從下拉式清單中選取專用端點的現有應用程式安全群組,或建立新的應用程式安全群組。 您也可以稍後再新增。 |
完成此索引標籤之後,選取 [下一步:DNS]。
在 [DNS] 索引標籤上,針對 [與私人 DNS 區域整合] 選取 [是] 或 [否],以選擇是否要使用Azure 私用 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>
執行下列命令,以建立具有連線子資源的主機集區的 Private Link 服務連線。
# 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 的值是否 為成功。
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。
執行下列其中一個範例中的命令,以建立具有連線子資源之主機集區的 Private Link 服務連線和私人端點。
若要使用動態配置的 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 的值是否 為成功。
CustomNetworkInterfaceName Location Name ProvisioningState ResourceGroup
---------------------------- ---------- -------------------- ------------------- ---------------
uksouth endpoint-hp01 Succeeded privatelink
您必須 設定私人端點的 DNS ,以解析虛擬網路中私人端點的 DNS 名稱。 私人 DNS 區域名稱為 privatelink.wvd.microsoft.com。 如需使用 Azure CLI 建立及設定私人 DNS 區域的步驟,請參閱設定私人 DNS 區域。
重要事項
您必須為每個要與 Private Link 搭配使用的主機集區,建立連線子資源的私人端點。
摘要下載
若要建立工作區 摘要子資源 的私人端點,請選取案例的相關索引標籤,然後依照步驟進行。
從 Azure 虛擬桌面概觀中,選取 [工作區],然後選取您要建立摘要子資源的工作區名稱。
從工作區概觀中,選取 [網路],然後選取 [ 私人端點連線],最後選取 [新的私人端點]。
在 [ 基本 ] 索引標籤上,完成下列資訊:
| 參數 |
值/描述 |
| 訂閱 |
從下拉式清單中選取您要建立私人端點的訂閱。 |
| 資源群組 |
這會自動預設為與專屬端點工作區相同的資源群組,但您也可以從下拉式清單中選取現有的替代資源群組,或建立新的資源群組。 |
| 名稱 |
輸入新私人端點的名稱。 |
| 網路介面名稱 |
網路介面名稱會根據您提供給私人端點的名稱自動填入,但您也可以指定不同的名稱。 |
| 區域 |
這會自動預設為與工作區相同的 Azure 區域,也是部署私人端點的位置。 這必須與虛擬網路是相同的區域。 |
完成此索引標籤之後,選取 [下一步:資源]。
在 資源 索引標籤上,驗證 訂閱、 資源型別 和 資源 的值,然後針對 目標子資源,選取 摘要。 完成此索引標籤之後,選取 [下一步:虛擬網路]。
在 [虛擬網路] 索引標籤上,完成下列資訊:
| 參數 |
值/描述 |
| 虛擬網路 |
從下拉式清單中選取您要建立私人端點的虛擬網路。 |
| 子網路 |
從下拉式清單中選取您要在其中建立私人端點的虛擬網路子網路。 |
| 私人端點的網路原則 |
如果您想要選擇子網路原則,請選取 [ 編輯 ]。 如需詳細資訊,請參閱 管理私人端點的網路原則。 |
| 私人 IP 設定 |
選取動態配置 IP 位址或靜態配置 IP 位址。 位址空間來自您選取的子網路。
如果您選擇靜態配置 IP 位址,則需要為每個列出的成員填寫 名稱 和 私人 IP 。 |
| 應用程式安全性群組 |
選用:從下拉式清單中選取專用端點的現有應用程式安全群組,或建立新的應用程式安全群組。 您也可以稍後再新增。 |
完成此索引標籤之後,選取 [下一步:DNS]。
在 [DNS] 索引標籤上,針對 [與私人 DNS 區域整合] 選取 [是] 或 [否],以選擇是否要使用Azure 私用 DNS區域。 如果您選取 [是],請選取要在其中建立私人 DNS 區域 privatelink.wvd.microsoft.com的訂用帳戶和資源群組。 如需詳細資訊,請參閱 Azure 私人端點 DNS 設定。
完成此索引標籤之後,選取 [下一步:標籤]。
選用:在 [標籤 ] 索引標籤上,您可以輸入所需的任何 名稱/值組 ,然後選取 [下一步:檢閱 + 建立]。
在 [檢閱 + 建立 ] 索引標籤上,確保驗證通過,並檢閱部署期間使用的資訊。
選取 建立 以建立摘要子資源的私人端點。
在相同的 PowerShell 工作階段中,執行下列命令,為具有摘要子資源的工作區建立 Private Link 服務連線。 在這些範例中,會使用相同的虛擬網路和子網路。
# 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 的值是否 為成功。
ResourceGroupName Name Location ProvisioningState Subnet
----------------- ---- -------- ----------------- ------
privatelink endpoint-ws01 uksouth Succeeded
您必須 設定私人端點的 DNS ,以解析虛擬網路中私人端點的 DNS 名稱。 私人 DNS 區域名稱為 privatelink.wvd.microsoft.com。 如需使用 Azure PowerShell 建立及設定私人 DNS 區域的步驟,請參閱設定私人 DNS 區域。
在相同的 CLI 工作階段中,執行下列命令,以建立具有摘要子資源之工作區的 Private Link 服務連線和私人端點。
若要使用動態配置的 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 的值是否 為成功。
CustomNetworkInterfaceName Location Name ProvisioningState ResourceGroup
---------------------------- ---------- -------------------- ------------------- ---------------
uksouth endpoint-ws01 Succeeded privatelink
您必須 設定私人端點的 DNS ,以解析虛擬網路中私人端點的 DNS 名稱。 私人 DNS 區域名稱為 privatelink.wvd.microsoft.com。 如需使用 Azure CLI 建立及設定私人 DNS 區域的步驟,請參閱設定私人 DNS 區域。
重要事項
您必須為每個想要與 Private Link 搭配使用的工作區建立摘要子資源的私人端點。
初步摘要探索
若要建立用於初始摘要探索的 全域 子資源的私人端點,請選取案例的相關索引標籤,然後遵循步驟。
從 [Azure 虛擬桌面] 概觀中,選取 [工作區],然後選取要用於全域子資源的工作區名稱。
-
選用: 請改為依照建立 工作區的指示,建立預留位置工作區來終止全域端點。
從工作區概觀中,選取 [網路],然後選取 [ 私人端點連線],最後選取 [新的私人端點]。
在 [ 基本 ] 索引標籤上,完成下列資訊:
| 參數 |
值/描述 |
| 訂閱 |
從下拉式清單中選取您要建立私人端點的訂閱。 |
| 資源群組 |
這會自動預設為與專屬端點工作區相同的資源群組,但您也可以從下拉式清單中選取現有的替代資源群組,或建立新的資源群組。 |
| 名稱 |
輸入新私人端點的名稱。 |
| 網路介面名稱 |
網路介面名稱會根據您提供給私人端點的名稱自動填入,但您也可以指定不同的名稱。 |
| 區域 |
這會自動預設為與工作區相同的 Azure 區域,也是將部署私人端點的位置。 這必須與虛擬網路是相同的區域。 |
完成此索引標籤之後,選取 [下一步:資源]。
在 資源 索引標籤上,驗證 訂閱、 資源類型和 資源的值,然後針對 目標子資源,選取全 域。 完成此索引標籤之後,選取 [下一步:虛擬網路]。
在 [虛擬網路] 索引標籤上,完成下列資訊:
| 參數 |
值/描述 |
| 虛擬網路 |
從下拉式清單中選取您要建立私人端點的虛擬網路。 |
| 子網路 |
從下拉式清單中選取您要在其中建立私人端點的虛擬網路子網路。 |
| 私人端點的網路原則 |
如果您想要選擇子網路原則,請選取 [ 編輯 ]。 如需詳細資訊,請參閱 管理私人端點的網路原則。 |
| 私人 IP 設定 |
選取動態配置 IP 位址或靜態配置 IP 位址。 位址空間來自您選取的子網路。
如果您選擇靜態配置 IP 位址,則需要為每個列出的成員填寫 名稱 和 私人 IP 。 |
| 應用程式安全性群組 |
選用:從下拉式清單中選取專用端點的現有應用程式安全群組,或建立新的應用程式安全群組。 您也可以稍後再新增。 |
完成此索引標籤之後,選取 [下一步:DNS]。
在 [DNS] 索引標籤上,針對 [與私人 DNS 區域整合] 選取 [是] 或 [否],以選擇是否要使用Azure 私用 DNS區域。 如果您選取 [是],請選取要在其中建立私人 DNS 區域 privatelink-global.wvd.microsoft.com的訂用帳戶和資源群組。 如需詳細資訊,請參閱 Azure 私人端點 DNS 設定。
完成此索引標籤之後,選取 [下一步:標籤]。
選用:在 [標籤 ] 索引標籤上,您可以輸入所需的任何 名稱/值組 ,然後選取 [下一步:檢閱 + 建立]。
在 [檢閱 + 建立 ] 索引標籤上,確保驗證通過,並檢閱部署期間使用的資訊。
選取建立以建立全域子資源的私人端點。
選用: 依照 建立工作區的指示,建立預留位置工作區來終止廣域端點。
在相同的 PowerShell 工作階段中,執行下列命令,為具有全域子資源的工作區建立 Private Link 服務連線。 在這些範例中,會使用相同的虛擬網路和子網路。
# 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 的值是否 為成功。
ResourceGroupName Name Location ProvisioningState Subnet
----------------- ---- -------- ----------------- ------
privatelink endpoint-global uksouth Succeeded
您必須 設定私人端點的 DNS ,以解析虛擬網路中私人端點的 DNS 名稱。 私人 DNS 區域名稱為 privatelink-global.wvd.microsoft.com。 如需使用 Azure PowerShell 建立及設定私人 DNS 區域的步驟,請參閱設定私人 DNS 區域。
選用: 依照 建立工作區的指示,建立預留位置工作區來終止廣域端點。
在相同的 CLI 工作階段中,執行下列命令,以建立具有全域子資源之工作區的 Private Link 服務連線和私人端點:
若要使用動態配置的 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 的值是否 為成功。
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 中設定此設定。 您必須針對與 Private Link 搭配使用的每個工作區和主機集區重複這些步驟。
工作區
從 Azure 虛擬桌面概觀中,選取 [工作區],然後選取工作區名稱以控制公用流量。
從主機集區概觀中,選取 [ 網路],然後選取 [ 公用存取 ] 索引標籤。
選取下列其中一個選項:
| 設定 |
描述 |
|
啟用來自所有網路的公共存取 |
終端使用者可以透過公用網際網路或私人端點存取摘要。 |
|
停用公共存取並使用私人存取 |
使用者只能透過私人端點存取摘要。 |
選取 [儲存]。
主機集區
從 [Azure 虛擬桌面] 概觀中,選取 [主機集區],然後選取要控制公用流量的主機集區名稱。
從主機集區概觀中,選取 [ 網路],然後選取 [ 公用存取 ] 索引標籤。
選取下列其中一個選項:
| 設定 |
描述 |
|
啟用來自所有網路的公共存取 |
終端使用者可以透過公用網際網路或私人端點安全地存取摘要和工作階段主機。 |
|
為終端使用者啟用公用存取,對工作階段主機使用私人存取 |
終端使用者可以透過公用網際網路安全地存取摘要,但必須使用私人端點來存取工作階段主機。 |
|
停用公共存取並使用私人存取 |
使用者只能透過私人端點存取摘要和工作階段主機。 |
選取 [儲存]。
工作區
在相同的 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 服務標記來封鎖來自公用網際網路的流量。 如果您使用此服務標籤封鎖公用網際網路流量,則所有服務流量只會使用私人路由。
使用 Azure 虛擬桌面驗證 Private Link
關閉公用路由之後,您應該驗證具有 Azure 虛擬桌面的 Private Link 是否正常運作。 您可以檢查每個私人端點的連線狀態、工作階段主機的狀態,並測試使用者可以重新整理並連線到其遠端資源,以執行此動作。
檢查每個私人端點的連線狀態
若要檢查每個私人端點的連線狀態,請選取案例的相關索引標籤,然後依照步驟進行。 您應該針對與 Private Link 搭配使用的每個工作區和主機集區重複這些步驟。
工作區
從 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 虛擬桌面] 概觀中,選取 [主機集區],然後選取主機集區的名稱。
在 [管理 ] 區段中,選取 [工作階段主機]。
查看工作階段主機清單,並檢查其狀態為 [可用]。
檢查您的使用者是否可以連線
若要測試您的使用者是否可以連線到其遠端資源:
使用遠端桌面用戶端,並確定您可以 訂閱並重新整理工作區。
最後,請確定您的使用者可以連線到遠端工作階段。
透過Private Link (選擇加入) 啟用 UDP
若要使用 UDP 型傳輸,例如用於透過 Azure 虛擬桌面 Private Link 的受管理網路的 RDP 短徑,您必須在工作區或主機集區上明確啟用 UDP,並確保已停用公用 Shortpath 選項
在 Azure 入口網站中,開啟您的 Azure 虛擬桌面主機集區或工作區資源。
移至 [網路] → [公用存取]。
在 公用存取下,選擇下列其中一項:
開啟 [允許透過Private Link的直接 UDP 網路路徑] 以允許 UDP 型傳輸 (例如,RDP 短徑受管理網路) 。
移至 [RDP 短徑] 索引標籤,然後停用公用 [短徑] 選項:
選取 [儲存]。
適用於受管理網路的 RDP 短徑 – 設定驗證
必要條件與限制
重要事項
UDP 選擇加入核取方塊將成為啟用具有私人連結的 RDP 短徑的必要項目。 如果未核取該核取方塊,則會針對 Private Link 連線封鎖 RDP 短徑。
後續步驟