この記事では、Private Link with Azure Virtual Desktop を設定して、リモート リソースにプライベートに接続する方法について説明します。 制限事項など、Private Link with Azure Virtual Desktop の使用の詳細については、「Private Link with Azure Virtual Desktop」を参照してください。
必須コンポーネント
Private Link with Azure Virtual Desktop を使用するには、次のものが必要です。
# 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
仮想ネットワーク内のプライベート エンドポイントの DNS 名を解決するには、プライベート エンドポイントの DNS を構成する必要があります。 プライベート DNS ゾーンの名前は privatelink.wvd.microsoft.com です。 Azure PowerShell を使用してプライベート DNS ゾーンを作成および構成する手順については、「プライベート DNS ゾーンを構成する」を参照してください。
次のいずれかの例のコマンドを実行して、接続サブリソースを使用して ホスト プールの 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
仮想ネットワーク内のプライベート エンドポイントの DNS 名を解決するには、プライベート エンドポイントの DNS を構成する必要があります。 プライベート DNS ゾーンの名前は privatelink.wvd.microsoft.com です。 Azure CLI を使用してプライベート DNS ゾーンを作成および構成する手順については、「プライベート DNS ゾーンを構成する」を参照してください。
重要
Private Link で使用するホスト プールごとに、接続サブリソースのプライベート エンドポイントを作成する必要があります。
同じ 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 ゾーンを構成する」を参照してください。
重要
Private Link で使用するワークスペースごとに、フィード サブリソースのプライベート エンドポイントを作成する必要があります。
同じ 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 ゾーンを構成する」を参照してください。