Azure Private Link with Azure Virtual Desktop

Azure Private Link と Azure Virtual Desktop を使用して、リモート リソースにプライベートに接続できます。 プライベート エンドポイントを作成すると、仮想ネットワークとサービス間のトラフィックは Microsoft ネットワーク上に留まります。そのため、サービスをパブリック インターネットに公開する必要がなくなります。 また、仮想ネットワークへのユーザーの接続には、VPN または ExpressRoute とリモート デスクトップ クライアントを組み合わせて使用します。 トラフィックを Microsoft ネットワーク内に留めておくことで、セキュリティが向上し、データの安全性が保たれます。 この記事では、Private Link が Azure Virtual Desktop 環境のセキュリティ保護にどのように役立つかについて説明します。

Azure Virtual Desktop には、3 つのワークフローがあり、それに対応してプライベート エンドポイントのリソースが 3 種類のあります。

  1. 初期フィード検出: クライアントはユーザーに割り当てられているすべてのワークスペースを検出できます。 このプロセスを有効にするには、任意のワークスペースの "グローバル" サブリソースに対して 1 つのプライベート エンドポイントを作成する必要があります。 ただし、Azure Virtual Desktop のデプロイ全体で作成できるプライベート エンドポイントは 1 つだけです。 このエンドポイントが、初期フィード検出に必要なグローバル完全修飾ドメイン名 (FQDN) のドメイン ネーム システム (DNS) エントリとプライベート IP ルートを作成します。 この接続は、すべてのクライアントが使う 1 つの共有ルートになります。

  2. フィード ダウンロード: クライアントは、アプリケーション グループをホストするワークスペースの特定のユーザーについて、すべての接続の詳細をダウンロードします。 Private Link で使用するワークスペースごとに、"フィード"サブリソースのプライベート エンドポイントを作成する必要があります。

  3. ホスト プールへの接続: ホスト プールへのすべての接続には、クライアントとセッション ホスト仮想マシン (VM) という 2 つの側面があります。 接続を有効にするには、Private Link で使用するホスト プールごとに、"接続"サブリソースのプライベート エンドポイントを作成する必要があります。

次の概略図は、Private Link がローカル クライアントを Azure Virtual Desktop サービスに安全に接続するしくみを示しています。 クライアント接続の詳細については、「クライアント接続シーケンス」を参照してください。

A high-level diagram that shows Private Link connecting a local client to the Azure Virtual Desktop service.

次の表は、必要なプライベート エンドポイントをまとめたものです:

目的 リソースの種類 ターゲット サブリソース 数量
初期フィード検出 Microsoft.DesktopVirtualization/workspaces グローバル すべての Azure Virtual Desktop デプロイ用に 1 つ
フィードのダウンロード Microsoft.DesktopVirtualization/workspaces feed ワークスペースごとに 1 つ
ホスト プールへの接続 Microsoft.DesktopVirtualization/hostpools connection ホスト プールごとに 1 つ

これらのプライベート エンドポイントは、ネットワーク トポロジ全体で共有するか、仮想ネットワークを分離して、それぞれがホスト プールまたはワークスペースへの独自のプライベート エンドポイントを持つようにすることができます。

サポートされるシナリオ

Private Link with Azure Virtual Desktop を追加する場合、Azure Virtual Desktop に接続するには、次のオプションがあります。 要件に応じて、それぞれを有効または無効にできます。

  • クライアントとセッション ホスト VM の両方がプライベート ルートを使います。
  • クライアントはパブリック ルートを使い、セッション ホスト VM はプライベート ルートを使う。
  • クライアントとセッション ホスト VM の両方がパブリック ルートを使う。 Private Link は使用しません。

ワークスペースへの接続について (最初のフィード検出 (グローバル サブリソース) に使用されるワークスペースを除く)、次の表に各シナリオの結果を示します。

構成 Outcome
すべてのネットワークからのパブリック アクセスを有効にする "パブリック" ルートからのワークスペース フィード要求は、許可されます。

"プライベート" ルートからのワークスペース フィード要求は、許可されます。
すべてのネットワークからのパブリック アクセスを無効にする "パブリック" ルートからのワークスペース フィード要求は、拒否されます。

"プライベート" ルートからのワークスペース フィード要求は、許可されます。

リバース接続トランスポートでは、ホスト プールへの接続には、クライアントからゲートウェイと、セッション ホストからゲートウェイへの 2 つのネットワーク接続があります。 両方の接続のパブリック アクセスを有効または無効にするだけでなく、ゲートウェイに接続しているクライアントに対してパブリック アクセスを有効にし、ゲートウェイに接続しているセッション ホストのプライベート アクセスのみを許可することもできます。 次の表に、各シナリオの結果を示します。

構成 Outcome
すべてのネットワークからのパブリック アクセスを有効にする クライアントまたはセッション ホストが "パブリック" ルートを使用している場合、リモート セッションは許可されます。

クライアントまたはセッション ホストが "プライベート" ルートを使用している場合、リモート セッションは許可されます。
すべてのネットワークからのパブリック アクセスを無効にする クライアントまたはセッション ホストが "パブリック" ルートを使用している場合、リモート セッションは拒否されます。

クライアントとセッション ホストの両方が "プライベート" ルートを使用している場合、リモート セッションは許可されます。
クライアント ネットワークのパブリック アクセスを有効にし、セッション ホスト ネットワークは無効にする クライアントが使用しているルートに関係なく、セッション ホストが "パブリック" ルートを使用している場合、リモート セッションは拒否されます。

クライアントが使用しているルートに関係なく、セッション ホストが "プライベート" ルートを使用している限り、リモート セッションは許可されます。

重要

  • 任意のワークスペースのグローバル サブリソースに対するプライベート エンドポイントは、初期フィード検出用の共有完全修飾ドメイン名 (FQDN) を制御します。 これにより、すべてのワークスペースのフィード検出が可能になります。 プライベート エンドポイントに接続されたワークスペースは非常に重要であるため、これを削除するとすべてのフィード検出プロセスが機能しなくなります。 グローバル サブリソース用の未使用のプレースホルダー ワークスペースを作成することをお勧めします。

  • 初期フィード検出 (グローバル サブリソース) に使用されるワークスペースへのアクセスを制御することはできません。 プライベート アクセスのみを許可するようにこのワークスペースを構成した場合、設定は無視されます。 このワークスペースには、常にパブリック ルートからアクセスできます。

  • ユーザー クライアント デバイスまたはセッション ホスト VM のネットワーク ポートをプライベート エンドポイントに制限する場合は、"接続" サブリソースを使用して、ホスト プール リソースのプライベート エンドポイントへの TCP 動的ポート範囲全体 (1 から 65535) のトラフィックを許可する必要があります。 ポート マッピングは、"接続" サブリソースに対応する単一のプライベート エンドポイント IP アドレスを介してすべてのグローバル ゲートウェイに使われるため、TCP 動的ポート範囲全体が必要です。 ポートをプライベート エンドポイントトに制限すると、ユーザーが Azure Virtual Desktop に正常に接続できなくなる可能性があります。

クライアント接続シーケンス

ユーザーが Private Link 経由で Azure Virtual Desktop に接続していて、Azure Virtual Desktop がプライベート ルートからのクライアント接続のみを許可するように構成されている場合、接続シーケンスは次のようになります。

  1. サポートされているクライアントでは、ユーザーはワークスペースにサブスクライブします。 ユーザーのデバイスは、rdweb.wvd.microsoft.com アドレス (または他の Azure 環境の対応するアドレス) を DNS に照会します。

  2. privatelink-global.wvd.microsoft.com のプライベート DNS ゾーンは、初期フィード検出 (グローバル サブリソース) のプライベート IP アドレスを返します。

  3. フィード内のワークスペースごとに、アドレス <workspaceId>.privatelink.wvd.microsoft.com に対して DNS クエリが実行されます。

  4. privatelink.wvd.microsoft.com のプライベート DNS ゾーンは、ワークスペース フィードのダウンロードに対してプライベート IP アドレスを返します。

  5. リモート セッションを接続する場合、ワークスペース フィードのダウンロードから取得した .rdp ファイルには、リモート デスクトップのゲートウェイ アドレスが含まれます。 アドレス <hostpooId>.afdfp-rdgateway.wvd.microsoft.com に対して DNS クエリが実行されます。

  6. privatelink.wvd.microsoft.com のプライベート DNS ゾーンは、リモート セッションを提供するホスト プールに使用するリモート デスクトップ ゲートウェイのプライベート IP アドレスを返します。

既知の問題と制限事項

Private Link with Azure Virtual Desktop には、次の制限事項があります。

  • Private Link for Azure Virtual Desktop を使用する前に、Azure Virtual Desktop で Private Link を使用する各 Azure サブスクリプションでAzure Virtual Desktop で Private Link を有効にする必要があります。

  • Azure Virtual Desktop に接続するリモート デスクトップ クライアントは、すべて Private Link で使用できます。 インターネットにアクセスできないプライベート ネットワーク上で Windows 用リモート デスクトップ クライアントを使っており、パブリック フィードとプライベート フィードの両方にサブスクライブしている場合、フィードにアクセスすることはできません。

  • プライベート エンドポイントをホスト プールに変更した後、ホスト プール内の各セッション ホスト VM 上で Remote Desktop Agent Loader (RDAgentBootLoader) サービスを再起動する必要があります。 また、ホスト プールのネットワーク構成を変更するたびに、このサービスを再起動する必要があります。 サービスを再開するのではなく、各セッション ホストを再起動することができます。

  • Private Link と RDP Shortpath の両方を使う場合、次の制限があります。

  • Azure Virtual Desktop を使用したPrivate Link のプレビューの早い段階で、初期フィード検出のプライベート エンドポイント ("グローバル" サブリソース用) は、プライベート DNS ゾーン名 privatelink.wvd.microsoft.com を、ワークスペースとホスト プール用の他のプライベート エンドポイントと共有していました。 この構成では、ユーザーはホスト プールとワークスペース専用のプライベート エンドポイントを確立できません。 2023 年 9 月 1 日より、この構成でのプライベート DNS ゾーンの共有はサポートされなくなります。 プライベート DNS ゾーン名 privatelink-global.wvd.microsoft.com を使用するように "グローバル" サブリソースの新しいプライベート エンドポイントを作成する必要があります。 これを行う手順については、「初期フィード検出」を参照してください。

次のステップ