ラージビッグバナー(970x90)

Azure

【Azure】ロールの割り当ての設定。PowerShellでも可能!

投稿日:

ビッグバナー(piglog)728px

Azure でロールの割り当てをPowerShellで行う方法ともうちょっと頑張れば自動化できるようになるところまでを備忘録として記録します。

前置きですが、これに至る経緯として 今回 仮想デスクトップ(WVD/AVD)のマシンを使用するユーザが各自でマシンを停止したり再起動したりできるようにカスタムロールを作成しました。これをやっておくことで、AVDに接続できない場合なんかに再起動操作などをユーザー側に任せられるようになります。つまり、情シスへの問い合わせが減る!

で、これを実現するためには作成したロールをマシンへ割り当てる必要がありますが、この作業は手動で行う必要があり1台ずつGUIでやっていたら日が暮れてしまうので、PowerShellでやる手順を確認したときのものです。

ロールの割り当てを行う(GUI & PowerShell)

カスタムロールを作成する方法はこちらのサイトでわかりやすく説明されていました。

今回はカスタムロールの割り当てをしていますが、組み込みのロールでも可能です。以下にGUIでの手順をPowerShellの手順を記載してます。

GUIでロール割り当て手順

まずはGUIでの手順です。PowerShellの手順は下のほうに記載しています。

ロール割り当ての追加の画面を開きます。

 

対象のロールを選択して「次へ」

 

割り当て先のメンバーを選択して、次へ。

「レビューと割り当て」をクリックして完了。

以下で、ロールが割り当てられていることを確認する。

 

GUIでの設定手順は以上です。

 

PowerShell でロールの割り当て手順

前提として、今回、割り当てるメンバーはユーザーです(グループではなく)。そして、スコープ(割り当て先のリソース)としては、仮想マシンになります。

まず、割り当てるコマンドは「New-AzRoleAssignment」で、構文としては以下のようになります。

オプション説明

-ObjectId ユーザのID
-RoleDefinitionName ロールの名前
-Scope 仮想マシンのリソースID

オプションの各値は今回の前提に沿っているので、状況によってスコープや割り当てるオブジェクトIDは変わってきます。

それぞれの値をどうやって取ってくるのかという説明を以下に記載します。

  • ユーザのIDの取得

     
  • ロールの名前GUIの手順でロール割り当ての追加 の手順で名前を確認できます。引数に指定するのはidでも良いみたいです。というか日本語表記のロールであれば、idを取得して指定したほうがよさそうですね。「Get-AzRoleDefinition」のコマンドでロールやロールのidを取得できます。
  • 仮想マシンのリソースID
    「Get-AzResource」で ResourceId を取得できます。

これらをふまえて、実行するコマンドは以下のようになります。

 

ここまでやってみて気づきましたが、オブジェクトIDと割り当て先のスコープが都度変わってくる今回のような場合、結構手間です。GUIじゃかったるくてやってらんねーと思ってPowerShellでやってみたらこっちはこっちでそれなりに手間。。。ということで、スクリプトにしたのが以下です。

実行時に引数として、ユーザー名と割り当て先のマシン名を付与することで、ユーザーのオブジェクトIDやマシンのリソースIDを自動で取得して指定します。

 

あとは、CSVでユーザ名とマシン名のリストを用意して、foreachで回せば楽ちん一発でロール割り当てが完了するハズです。

では!

↓↓↓ 持っていると便利な一冊。

pig-log_Multiplex_横長

リンクユニット(レスポンシブ)

-Azure
-, , ,

Copyright© ぴぐろぐ , 2022 All Rights Reserved.