NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

RBACによるAzureリソースへのアクセス制限

こんにちは、上坂(@takashiuesaka)です。

AzureはASM(Azure Service Management)というXMLベースの管理からARM(Azure Resource Management)というJSONベースの管理に移行しつつあります。
Azure PowerShellを使っている方はよくご存じだと思いますが、Switch-AzureModeを使ってASMとARMを使うと次のような警告がでますよね。

f:id:nextscape_blog:20210909233548p:plain

このSwitch-AzureModeコマンドが削除される、というアナウンスも出たわけですが、今日はその話ではなく、Role(役割)を利用したアクセス制限の話です。

 

役割ロールを利用したアクセス制限のことをRBAC(Role-Based Access Control)と呼びます。あーるばっくと読む人が多いようです。これを使うと、次のようになります。

今まで・・・サブスクリプションを使う人は全員管理者
これから・・・管理者以外は特定のリソースに対して特定のロールを割り当てる

例えば、開発会社のエンジニア対してはVMやStorageへのアクセス許可だけを与えたりすることで、他のリソースは見えないようにできるわけです。管理権限を持っていないので、勝手に新規にリソースを作ることもできません。
やり方は簡単です。

1.プレビューポータルにログインします。(現行の管理ポータルではできません)
2.制限をかけたいリソースにアクセスします。
3.アクセスアイコンをクリックします。

f:id:nextscape_blog:20210909233627p:plain

4.役割をクリックします。

f:id:nextscape_blog:20210909233647p:plain

5.一覧の中から割り当てたい役割をクリックします。

f:id:nextscape_blog:20210909233711p:plain

6.追加をクリックします。

f:id:nextscape_blog:20210909233729p:plain

事前に用意されている役割はリソースの種類によって異なります。また、独自の役割を追加することは今はできないようです。今後に期待ですね。とても簡単にリソース単位でのアクセス制御ができますのでぜひお試しください。プレビューポータルにもそろそろ少しずつ慣れていく必要がありそうです。

言うまでもないことだとは思いますが、現行管理ポータルの方で該当ユーザーを共同管理者として設定をしていたら上記のRBACはまったく無意味となります。RBACによる制御を行う場合は共同管理者としての設定はしないでください。

注意が2点ほどあります。
1つ目は、追加できるユーザーはそのサブスクリプションのAzureADのディレクトリに登録されている必要があります。もしまったくの新規ユーザーの場合は先にAzureADのディレクトリに登録が必要です。上記6の手順のあとでユーザーを招待する機能もあるのですが試したところうまく動きませんでしたので、素直にディレクトリにユーザーを追加することをお勧めします。

2つ目はリソースのプロパティを更新すると折角追加したユーザーが削除されてしまうことがある、ということです。
PowerShellでリソースグループを変更したら発生した事象なのですが、他のプロパティ操作でも発生するのか、もしくはリソースが更新されたら役割に紐づくユーザーが削除されるのかはわかっていません。ご注意ください。