이 문서에서는 Azure Virtual Desktop을 사용하여 원격 리소스에 비공개로 연결하도록 Private Link를 설정하는 방법을 보여줍니다. 제한 사항을 포함하여 Azure Virtual Desktop에서 Private Link를 사용하는 방법에 대한 자세한 내용은 Azure Virtual Desktop에서 Azure Private Link 사용를 참조하세요.
필수 조건
Azure Virtual Desktop에서 Private Link를 사용하려면 다음 항목이 필요합니다.
Private Link를 지원하는 Azure Virtual Desktop용 Azure PowerShell cmdlet은 미리 보기로 제공됩니다. 버전 5.0.0에 추가된 이러한 cmdlet을 사용하려면 Az.DesktopVirtualization 모듈의 미리 보기 버전을 다운로드하여 설치해야 합니다.
구독의 Azure Virtual Desktop에서 Private Link 사용
Azure Virtual Desktop에서 Private Link를 사용하려면 Azure Virtual Desktop에서 Private Link를 사용하려는 각 구독에 Microsoft.DesktopVirtualization 리소스 공급자를 다시 등록해야 합니다.
Azure Virtual Desktop에서 Private Link를 사용하려면 먼저 Microsoft.DesktopVirtualization 리소스 공급자를 다시 등록해야 합니다. Azure Virtual Desktop에서 Private Link에 사용하려는 각 구독에 대해 이 작업을 수행해야 합니다.
Microsoft.DesktopVirtualization을 검색하고 선택한 다음 다시 등록을 선택합니다.
Microsoft.DesktopVirtualization의 상태가 등록됨인지 확인합니다.
프라이빗 엔드포인트 만들기
시나리오에 따라 다르지만, 설정 프로세스 중에 다음 리소스에 대한 프라이빗 엔드포인트를 만들어야 합니다.
클라이언트 및 세션 호스트에 대한 초기 피드 검색, 피드 다운로드 및 원격 세션 연결과 같은 연결의 모든 부분은 프라이빗 경로를 사용합니다. 다음 프라이빗 엔드포인트가 필요합니다.
목적
리소스 종류
대상 하위 리소스
엔드포인트 수량
호스트 풀에 대한 연결
Microsoft.DesktopVirtualization/hostpools
connection
호스트 풀당 하나
피드 다운로드
Microsoft.DesktopVirtualization/workspaces
피드
작업 영역당 하나
초기 피드 검색
Microsoft.DesktopVirtualization/workspaces
global
모든 Azure Virtual Desktop 배포당 하나만
클라이언트 및 세션 호스트에 대한 피드 다운로드 및 원격 세션 연결은 프라이빗 경로를 사용하지만 초기 피드 검색은 공용 경로를 사용합니다. 다음 프라이빗 엔드포인트가 필요합니다. 초기 피드 검색을 위한 엔드포인트는 필요하지 않습니다.
목적
리소스 종류
대상 하위 리소스
엔드포인트 수량
호스트 풀에 대한 연결
Microsoft.DesktopVirtualization/hostpools
connection
호스트 풀당 하나
피드 다운로드
Microsoft.DesktopVirtualization/workspaces
피드
작업 영역당 하나
클라이언트 및 세션 호스트에 대한 원격 세션 연결만 프라이빗 경로를 사용하지만 초기 피드 검색 및 피드 다운로드는 공용 경로를 사용합니다. 다음과 같은 프라이빗 엔드포인트가 필요합니다. 작업 영역에 대한 엔드포인트는 필요하지 않습니다.
목적
리소스 종류
대상 하위 리소스
엔드포인트 수량
호스트 풀에 대한 연결
Microsoft.DesktopVirtualization/hostpools
connection
호스트 풀당 하나
클라이언트 및 세션 호스트 VM은 모두 프라이빗 경로를 사용합니다. 이 시나리오에서는 Private Link가 사용되지 않습니다.
Important
초기 피드 검색을 위한 프라이빗 엔드포인트를 만드는 경우 전역 하위 리소스에 사용되는 작업 영역은 공유 FQDN(정규화된 도메인 이름)을 제어하여 모든 작업 영역에서 피드의 초기 검색을 용이하게 합니다. 이 용도로만 사용되며 애플리케이션 그룹이 등록되지 않은 별도의 작업 영역을 만들어야 합니다. 이 작업 영역을 삭제하면 모든 피드 검색 프로세스의 작동이 중지됩니다.
초기 피드 검색(전역 하위 리소스)에 사용되는 작업 영역에 대한 액세스는 제어할 수 없습니다. 프라이빗 액세스만 허용하도록 이 작업 영역을 구성하면 설정이 무시됩니다. 이 작업 영역은 항상 퍼블릭 경로에서 액세스할 수 있습니다.
IP 주소 할당은 IP 주소에 대한 수요가 증가함에 따라 변경될 수 있습니다. 용량을 확장하는 동안 프라이빗 엔드포인트에 대한 추가 주소가 필요합니다. 잠재적인 주소 공간 소모를 고려하고 성장을 위한 충분한 위쪽 공간을 보장하는 것이 중요합니다. 허브 또는 스포크 토폴로지에서 프라이빗 엔드포인트에 대한 적절한 네트워크 구성을 결정하는 방법에 대한 자세한 내용은 Private Link 배포에 대한 의사 결정 트리를 참조하세요.
호스트 풀에 대한 연결
호스트 풀에 연결하기 위해 연결 하위 리소스에 대한 프라이빗 엔드포인트를 만들려면 시나리오에 대한 관련 탭을 선택하고 단계를 수행합니다.
동적으로 IP 주소 할당을 선택하거나 IP 주소를 정적으로 할당합니다. 주소 공간은 선택한 서브넷에서 가져옵니다.
IP 주소를 정적으로 할당하도록 선택한 경우 나열된 각 멤버의 이름 및 개인 IP를 입력해야 합니다.
애플리케이션 보안 그룹
선택 사항: 드롭다운 목록에서 프라이빗 엔드포인트에 대한 기존 애플리케이션 보안 그룹을 선택하거나 새 애플리케이션 보안 그룹을 만듭니다. 나중에 추가할 수도 있습니다.
이 탭을 완료했으면 다음: DNS를 선택합니다.
DNS 탭에서 프라이빗 DNS 영역과 통합에 대해 예 또는 아니요를 선택하여 Azure 프라이빗 DNS 영역을 사용할지 여부를 선택합니다. 예를 선택하는 경우 프라이빗 DNS 영역 privatelink.wvd.microsoft.com을 만들 구독 및 리소스 그룹을 선택합니다. 자세한 내용은 Azure 프라이빗 엔드포인트 DNS 구성을 참조하세요.
이 탭을 완료했으면 다음: 태그를 선택합니다.
선택 사항: 태그 탭에서 필요한 이름/값 쌍을 입력한 후 다음: 검토 + 만들기를 선택합니다.
검토 + 만들기 탭에서 유효성 검사가 통과되었는지 유효성을 검사하고 배포 중에 사용할 정보를 검토합니다.
만들기를 선택하여 연결 하위 리소스에 대한 프라이빗 엔드포인트를 만듭니다.
Az.Network 및 Az.DesktopVirtualization PowerShell 모듈을 사용하여 호스트 풀에 연결하는 데 사용되는 연결 하위 리소스에 대한 프라이빗 엔드포인트를 만드는 방법은 다음과 같습니다. <placeholder> 값은 반드시 고유한 값으로 변경해야 합니다.
PowerShell 터미널 형식을 사용하여 Azure Portal에서 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 값이 성공함인지 확인합니다.
가상 네트워크에서 프라이빗 엔드포인트의 DNS 이름을 확인하려면 프라이빗 엔드포인트에 대한 DNS를 구성해야 합니다. 프라이빗 DNS 영역 이름은 privatelink.wvd.microsoft.com입니다. Azure PowerShell을 사용하여 프라이빗 DNS 영역을 만들고 구성하는 단계는 프라이빗 DNS 영역 구성을 참조하세요.
Azure CLI용 network 및 desktopvirtualization 확장을 사용하여 호스트 풀에 연결하는 데 사용되는 연결 하위 리소스에 대한 프라이빗 엔드포인트를 만드는 방법은 다음과 같습니다.
Important
다음 예제에서는 <placeholder> 값을 사용자 고유의 값으로 변경해야 합니다.
Azure Portal에서 Bash 터미널 유형을 사용하여 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 값이 성공함인지 확인합니다.
가상 네트워크에서 프라이빗 엔드포인트의 DNS 이름을 확인하려면 프라이빗 엔드포인트에 대한 DNS를 구성해야 합니다. 프라이빗 DNS 영역 이름은 privatelink.wvd.microsoft.com입니다. Azure CLI를 사용하여 프라이빗 DNS 영역을 만들고 구성하는 단계는 프라이빗 DNS 영역 구성을 참조하세요.
Important
Private Link를 사용하려는 각 호스트 풀에 대한 연결 하위 리소스에 대한 프라이빗 엔드포인트를 만들어야 합니다.
피드 다운로드
작업 영역에 대해 피드 하위 리소스에 대한 프라이빗 엔드포인트를 만들려면 시나리오에 대한 관련 탭을 선택하고 단계를 수행합니다.
동적으로 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
가상 네트워크에서 프라이빗 엔드포인트의 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
가상 네트워크에서 프라이빗 엔드포인트의 DNS 이름을 확인하려면 프라이빗 엔드포인트에 대한 DNS를 구성해야 합니다. 프라이빗 DNS 영역 이름은 privatelink.wvd.microsoft.com입니다. Azure CLI를 사용하여 프라이빗 DNS 영역을 만들고 구성하는 단계는 프라이빗 DNS 영역 구성을 참조하세요.
Important
Private Link를 사용하려는 각 작업 영역에 대해 피드 하위 리소스에 대한 프라이빗 엔드포인트를 만들어야 합니다.
초기 피드 검색
초기 피드 검색에 사용되는 전역 하위 리소스에 대한 프라이빗 엔드포인트를 만들려면 시나리오에 대한 관련 탭을 선택하고 단계를 수행합니다.
Important
모든 Azure Virtual Desktop 배포에 대해 전역 하위 리소스에 대한 프라이빗 엔드포인트를 하나만 만듭니다.
모든 작업 영역의 전역 하위 리소스에 대한 프라이빗 엔드포인트는 초기 피드 검색을 위한 공유 FQDN(정규화된 도메인 이름)을 제어합니다. 이는 모든 작업 영역에 대해 피드 검색을 사용하도록 설정합니다. 프라이빗 엔드포인트에 연결된 워크스페이스는 매우 중요합니다. 이를 삭제하면 모든 피드 검색 프로세스가 작동하지 않게 됩니다. 전역 하위 리소스에 사용되지 않는 자리 표시자 작업 영역을 만드는 것이 좋습니다.
동적으로 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
가상 네트워크에서 프라이빗 엔드포인트의 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
가상 네트워크에서 프라이빗 엔드포인트의 DNS 이름을 확인하려면 프라이빗 엔드포인트에 대한 DNS를 구성해야 합니다. 프라이빗 DNS 영역 이름은 privatelink-global.wvd.microsoft.com입니다. Azure CLI를 사용하여 프라이빗 DNS 영역을 만들고 구성하는 단계는 프라이빗 DNS 영역 구성을 참조하세요.
공용 경로 폐쇄
프라이빗 엔드포인트를 만든 후에는 공용 경로에서 트래픽이 들어오는지 제어할 수도 있습니다. Azure Virtual Desktop을 사용하거나 NSG(네트워크 보안 그룹) 또는 Azure Firewall을 사용하여 세분화된 수준에서 이를 제어할 수 있습니다.
Azure Virtual Desktop을 사용하여 경로 제어
Azure Virtual Desktop을 사용하면 작업 영역 및 호스트 풀에 대한 공용 트래픽을 독립적으로 제어할 수 있습니다. 시나리오에 대한 관련 탭을 선택하고 단계를 따릅니다. Azure CLI에서는 구성할 수 없습니다. Private Link를 사용하는 각 작업 영역 및 호스트 풀에 대해 이러한 단계를 반복해야 합니다.
Azure Virtual Desktop 개요에서 작업 영역을 선택한 다음 공용 트래픽을 제어하려는 작업 영역의 이름을 선택합니다.
호스트 풀 개요에서 네트워킹을 선택한 다음 공용 액세스 탭을 선택합니다.
다음 옵션 중 하나를 선택합니다.
설정
설명
모든 네트워크에서 퍼블릭 액세스 사용
최종 사용자는 공용 인터넷 또는 프라이빗 엔드포인트를 통해 피드에 액세스할 수 있습니다.
퍼블릭 액세스를 사용하지 않도록 설정하고 프라이빗 액세스 사용
최종 사용자는 프라이빗 엔드포인트를 통해서만 피드에 액세스할 수 있습니다.
저장을 선택합니다.
호스트 풀
Azure Virtual Desktop 개요에서 호스트 풀을 선택한 다음 호스트 풀의 이름을 선택하여 공용 트래픽을 제어합니다.
호스트 풀 개요에서 네트워킹을 선택한 다음 공용 액세스 탭을 선택합니다.
다음 옵션 중 하나를 선택합니다.
설정
설명
모든 네트워크에서 퍼블릭 액세스 사용
최종 사용자는 공용 인터넷 또는 프라이빗 엔드포인트를 통해 피드 및 세션 호스트에 안전하게 액세스할 수 있습니다.
최종 사용자에 대한 퍼블릭 액세스를 사용하도록 설정하고 세션 호스트에 프라이빗 액세스 사용
최종 사용자는 공용 인터넷을 통해 피드에 안전하게 액세스할 수 있지만 프라이빗 엔드포인트를 사용하여 세션 호스트에 액세스해야 합니다.
퍼블릭 액세스를 사용하지 않도록 설정하고 프라이빗 액세스 사용
최종 사용자는 프라이빗 엔드포인트를 통해서만 피드 및 세션 호스트에 액세스할 수 있습니다.
저장을 선택합니다.
Important
Private Link를 지원하는 Azure Virtual Desktop용 Azure PowerShell cmdlet은 미리 보기로 제공됩니다. 버전 5.0.0에 추가된 이러한 cmdlet을 사용하려면 Az.DesktopVirtualization 모듈의 미리 보기 버전을 다운로드하여 설치해야 합니다.
작업 영역
동일한 PowerShell 세션에서 다음 명령을 실행하여 공용 액세스를 사용하지 않도록 설정하고 프라이빗 액세스를 사용할 수 있습니다.
세션 호스트에 대한 액세스를 변경해도 기존 세션에는 영향을 주지 않습니다. 프라이빗 엔드포인트를 호스트 풀로 변경한 후에는 호스트 풀의 각 세션 호스트에서 원격 데스크톱 에이전트 로더(RDAgentBootLoader) 서비스를 다시 시작해야 합니다. 호스트 풀의 네트워크 구성을 변경할 때마다 이 서비스를 다시 시작해야 합니다. 서비스를 다시 시작하는 대신 세션 호스트를 다시 시작할 수 있습니다.
네트워크 보안 그룹 또는 Azure Firewall을 사용하여 공용 경로 차단
네트워크 보안 그룹 또는 Azure Firewall을 사용하여 사용자 클라이언트 디바이스 또는 세션 호스트에서 프라이빗 엔드포인트로의 연결을 제어하는 경우 WindowsVirtualDesktop 서비스 태그를 사용하여 공용 인터넷의 트래픽을 차단할 수 있습니다. 이 서비스 태그를 사용하여 공용 인터넷 트래픽을 차단하는 경우 모든 서비스 트래픽은 프라이빗 경로만 사용합니다.
연결 하위 리소스를 사용하여 사용자 클라이언트 디바이스 또는 세션 호스트에서 호스트 풀 리소스에 대한 프라이빗 엔드포인트로 특정 포트를 차단하지 마세요. 포트 매핑은 연결 하위 리소스에 해당하는 단일 프라이빗 엔드포인트 IP 주소를 통해 모든 전역 게이트웨이에서 사용되므로 1 - 65535의 전체 TCP 동적 포트 범위가 필요합니다. 포트를 프라이빗 엔드포인트로 제한하는 경우 Azure Virtual Desktop에 성공적으로 연결하지 못할 수 있습니다.
Azure Virtual Desktop을 사용하여 Private Link의 유효성 검사
공용 경로를 닫은 후에는 Azure Virtual Desktop의 Private Link가 작동하는지 확인해야 합니다. 이 작업은 각 프라이빗 엔드포인트의 연결 상태, 세션 호스트의 상태를 확인하고, 사용자가 원격 리소스를 새로 고치고 연결할 수 있는지 테스트하여 수행할 수 있습니다.
각 프라이빗 엔드포인트의 연결 상태 확인
각 프라이빗 엔드포인트의 연결 상태를 확인하려면 시나리오에 대한 관련 탭을 선택하고 단계를 수행합니다. Private Link를 사용하는 각 작업 영역 및 호스트 풀에 대해 이러한 단계를 반복해야 합니다.