WVDのプロファイルをFSLogixを使って Private Link 経由で Azure Storage へ保管する

Windows Virtual Desktop (WVD) のプロファイルを外部へ保管する方法としてFSLogixが推奨されています。
WVDを使う理由としてデータを社外に持ち出したくないというところもあると思います。
Azure 上にプロファイルサーバーを立ててそこに保管する方法もありますが、サーバーを管理したくないので Azure Storage のBLOBへ配置します。
また、表題にもあるように完全にVNet内で通信を完結するために Private Link でBLOBへ接続します。

docs.microsoft.com

流れとしては以下となります。

  • Azure Storage の作成
  • WVD用仮想マシン(イメージ)の作成
  • FSLogix をインストール
  • サインインしての検証

Azure Storage の作成

まず Azure ポータルからStorage Accountを作成します。

名称等を入れます。
注意事項としてはパフォーマンスはPremiumを選択しましょう。
Standardだとサインイン・アウト時の読み込みなどの速度に影響してきます。

f:id:tsukatoh:20200605100613p:plain

接続方法はプライベート エンドポイントを選択します。

f:id:tsukatoh:20200605100632p:plain

名称と展開する仮想ネットワーク・サブネットを選択します。
ここでプライベートDNS統合を選択することで接続文字列等を変更なく利用できます。

f:id:tsukatoh:20200605100644p:plain

検証に成功したら作成します。
ARMテンプレートにも対応しているので、利用したい場合はダウンロードして参考にしてみてください。

f:id:tsukatoh:20200605100726p:plain

WVD用仮想マシン(イメージ)の作成

今回は Microsoft Windows 10 + Office 365 ProPlus で構築していきます。
選択したのは Windows 10 Enterprise multi-session, Version 2004 + Office 365 ProPlusです。
画面についてはここでは触れませんが、ネットワークは先ほど作った Azure Storage の Private Link のエンドポイントに接続できるよう、同一VNet内かPeeringされたネットワークに配置してください。

f:id:tsukatoh:20200605100801p:plain

FSLogix をインストール

VMの展開が完了したらリモートデスクトップ接続して作業します。
(安全に接続するには Azure Bastion で接続する方がいいと思います。)

FSLogix をダウンロードします。

https://aka.ms/fslogix_download

展開して x64\Release\FSLogixAppsSetup.exe を実行します。
他にある実行ファイルはそれぞれ以下の役割をインストールしますが今回は対象外です。
FSLogixAppsJavaRuleEditorSetup.exe → Javaバージョン管理機能のルール作成 FSLogixAppsRuleEditorSetup.exe → Application Masking

f:id:tsukatoh:20200605101303p:plain

次にGPO設定用にadml、admxファイルをコピーします。
fslogix.adml → C:\Windows\PolicyDefinitions\en-US
fslogix.admx → C:\Windows\PolicyDefinitions

f:id:tsukatoh:20200605101448p:plainf:id:tsukatoh:20200605104035p:plain

ファイル名を指定して実行で「gpedit.msc」を実行します。

f:id:tsukatoh:20200605101734p:plain

[コンピューターの構成] → [管理用テンプレート] → [FSLogix] → [Profile Containers] → [Enabled] をEnabledへ変更
[コンピューターの構成] → [管理用テンプレート] → [FSLogix] → [Profile Containers] → [Cloud Cache] → [Cloud Cache Locations] を有効にして「type=azure,connectionString="接続文字列"」を入れます。

f:id:tsukatoh:20200605102751p:plainf:id:tsukatoh:20200605102804p:plain

でもこのままではキーがそのまま見えてしまうので隠蔽して登録します。

C:\Program Files\FSLogix\Apps\frx.exe add-secure-key -key blobkey -value [BLOB Key]

f:id:tsukatoh:20200605102904p:plain

出来上がったら以下に置き換えて登録しなおします。

type=azure,connectionString=”DefaultEndpointsProtocol=https;AccountName=[account_name];AccountKey=|fslogix/blobkey|;EndpointSuffix=core.windows.net”;

サインインしての検証

設定が終わったらサインインして検証します。
一度サインアウトしてサインインしなおします。

ディスクの管理から見るとプロファイルがVHDとしてマウントされています。

f:id:tsukatoh:20200605103158p:plain

VNet上のマシンから Azure Storage Explorer や Azure Portal から見ると以下のようにユーザー毎にコンテナーが作られ、その中にvhdファイルが保管されていることが確認できます。

f:id:tsukatoh:20200605103235p:plainf:id:tsukatoh:20200605103246p:plain

VNet外のマシンから上記のように確認しても権限がないとアクセスすることができません。

f:id:tsukatoh:20200605103300p:plain

Storage BLOB へのアクセスをPrivate Link経由にすることでBLOBストレージを外部に公開することなくプライベートなネットワークで利用することができ、WVDのプロファイルの保管用途としても外部に公開したくないというニーズにも応えられるようになっています。