AVD セッションホストをユーザー主導で「起動/停止」させる!

Azureでは仮想マシンを停止する事で利用料金を安く抑える事ができます。Azure Virtual Desktop (AVD)のように大量に仮想マシンを展開するソリューションに対しては、コストに大きな影響を与えます。
現時点でのAVDでは、ユーザー(AVD利用者)からの任意のタイミングでSession Hostを
[起動/再起動/停止]する機能はありません。

そこで今回は、カスタムロールを作成し、Session Hostの[起動/再起動/停止]だけを
ユーザー(AVD利用者)に許可するよう設定してみたいと思います。

※1日13時間以上、稼働させる場合は、RIを適用した方が安くなる可能性があります。

現実的に利用可能なケースは、Single-Sessionかつ4000VM以下の環境となるでしょう。
※サブスクリプションあたり、4000の割り当て制限があるため

4000VM以上の環境で利用する場合は、リソースグループに対してユーザーグループで適用してください。ただし、他人のSession Hostに対しても権限を与える事になります。


全体の流れ

Step1:カスタムロールの作成
Step2:カスタムロールの割り当て

※事前にSession Hostに対して、ユーザーを割り当てておく必要があります。


Step1:カスタムロールの作成

[サブスクリプション]ー[アクセス制御]ー[+追加]ー[カスタムロールの追加]を選択

カスタムロール名:表示名
説明:コメントを記載
ベースラインのアクセス許可:
ロールを複製します=既存ロールをベースにして作成
最初から始める=ベース無しで作成
JSONから開始=JSONファイルをアップロードして作成

※「アクセス許可」「割り当て可能なスコープ」は変更なし

“actions”項目に下記を追加します。
“Microsoft.Compute/*/read”,
“Microsoft.Compute/virtualMachines/start/action”,
“Microsoft.Compute/virtualMachines/restart/action”,
“Microsoft.Compute/virtualMachines/deallocate/action”

最後に確認

これにて、カスタムロールが完成!


Step2:カスタムロールの割り当て

作成済みのSession Hostー[アクセス制御]ー[+追加]ー[ロールの割り当ての追加]を選択

役割:作成したカスタムロールを選択
アクセスの割り当て先:変更なし
選択:Session Hostに割り当てたユーザーを選択

割り当てを確認


それでは、確認してみましょう!

許可を与えたユーザーにて”https://portal.azure.com” に接続し、[すべてのリソース]を選択

自身が利用する Session Host だけが確認できる

[起動/再起動/停止]の操作だけが可能

試しに、Session Hostを削除してみましたが、しっかり禁止されていました。


カスタムロールの削除方法