Exchange RBAC で特定ドメイン名をもつオブジェクトの設定変更に限定したアクセス権を作成する

みなさんこんにちは。Miyaです。

今回はExchangeの機能の一つである「Role Based Access Control(RBAC)」についてご紹介したいと思います。

RBACをより深く理解することで、適切なユーザーに適切なアクセス権を与えることが出来るので、Office 365の運用においてセキュリティ面の強化を図ることできます。本記事を参考に是非習得してみてください。

スポンサーリンク:

Role Based Access Control(RBAC)とは?

RBACとは、Role Based Access Controlの略称で、日本語に直すと「役割ベースのアクセス制御」を意味します。

言葉の通り、Exchange組織の役割に応じたアクセス制御を提供する機能で、「実行可能なコマンド」と「実行可能なスコープ」を定義します。

既にあるビルドインの役割の中でもよく目にするのが、組織全体の管理者の「Organization Management」や、電子情報開示を検索するための「Compliance Management」だと思います。

これらの既定で定義された役割をRoleGroupと呼び、実行可能なコマンド群を定義した「Management Roleを一つ以上含む集合体です。

RBAC

 

例えば、上図の「Recipient Management」には、配布グループやメールボックスに関連する設定変更や、パスワードリセットなんかも実行可能であることが分かりますね。

[+]の新規作成メニューより、RoleGroupを新規作成し、既定で用意されているManagementRoleを組み込むことである程度権限を限定したアクセス権を作成、ユーザーに割り当てることも出来ます。

RBAC

より詳細なアクセス権を作成したい

GUIから簡単に作成できるアクセス権ですが、Office 365 の運用でよくある話で「ヘルプデスクのアカウント向けに限定したアクセス権を作成したい」とか、「関係会社のオブジェクトのみ変更可能なアクセス権を作成したい」、なんて話がよくありますよね。

既定で組み込まれたManagementRoleでは、上述の要件を満たすことは出来ませんが、RBACはPowerShellから詳細に作りこむことが出来るため、少し複雑ですが覚えておいて損はありません。

 

これからご紹介するのはPowerShellを使って詳細なアクセス権を作成する方法です。以下の図の流れで作成していきます。

RBAC

実際に作成してみる

実際にRBACを作成していきますが、まずはRBACの全体像を整理してから作成すると各コマンドが何の設定をしているのかがイメージしやすくなると思うので↓の絵を参考にしてください。

RBAC

 

今回作成するアクセス権は「特定ドメインを持つグループのメンバー変更ができるアクセス権」を作成したいと思います。

まずは、New-ManagementRoleで役割を作成します。

ManagementRoleはあくまで入れ物で、New-ManagementRoleEntryコマンドで実行可能な操作をコマンドレベルで追加/削除していきますが、一から作成すると抜け漏れの恐れがあるので、ここでは既定の「Security Group Creation and membership」を継承した”Edit ITBeginner Group”を新規作成しています。

Get-ManagementRoleEntryで作成した役割の中身を覗くと、「Security Group Creation and membership」と同等レベルのコマンド群が既に組み込まれていることが分かります。

RBAC

 

しかし、今回の要件はあくまで”設定変更”であるため、オブジェクトの削除や作成コマンドである「New-*」や「Remove-*」は必要ありません。これらをRemove-ManagementRoleEntryコマンドで削っていきます。

上記コマンド実行後、Edit ITbeginner Groupの中身を覗くと、不要なコマンド群が除かれていることが分かります。

RBAC

 

次に、「特定ドメインを持つグループ」に限定するめのスコープをNew-ManagementScopeで作成します。

このコマンドはオブジェクトが持つ属性をフィルタリングしてスコープを定義します。一番やりやすいのはメールアドレスのドメイン部分だと思うので、ここでは”PrimarySmtpAddress”属性のドメイン部分が”itbeginner.biz”のオブジェクトを指定します。

以上で、PowerShellでの作業は終了です。次に作成した役割とスコープを使って役割グループをGUIで作成し、ユーザーに権限を割り当てます。

Exchange Online管理コンソールの[permission]で、[+]をクリックして新規作成します。

RBACRBAC

 

[Write scope:]にカスタムスコープを選択、[Roles:]にカスタム役割を選択します。[Members:]にはアクセス権を付与するユーザーアカウントを指定します。付与するアカウントにExchangeライセンスを必要ありません。

RBAC

 

 

そのまま新規作成すればカスタムアクセス権の出来上がりです。お疲れさまでした。

カスタムアクセス権で操作してみる

PowerShellからScope対象に該当しないセキュリティグループにAdd-DistributionGroupMemberコマンドを実行すると、「現在の書き込みスコープ内にありません」とエラーが返されます。また、ManagementRoleに存在しないコマンドは実行すら出来ません。

RBAC

 

 

一点注意しておきたいのが、スコープで定義出来るのは”書き込み”に対するスコープであるため、Getに対してスコープは有効になりません。

つまり、Get-*コマンドはScope外のオブジェクトも表示されるので、Get-*をEntryから除外しても良いですがいまひとつですね。

また、作成したEdit ITBeginner Groupには、Set-DistributionGroupコマンドのオプション類があまり揃っていないため、表示名などの各属性の変更は今のままでは出来ません。

RBAC

 

これは親である「Security Group Creation and Membership」がそもそもこのオプションしか実行できないため、別で「Distribution Groups」を親にManagementRoleを作成して、Edit ITBeginner Groupに追加する必要があります。

↑の話の補足で、Set-ManagementRoleEntryコマンドで各コマンドのオプションを追加/削除が可能ですが、親が持っていないオプションを追加することは出来ないので、上述の通り別のManagementRoleを作成しましょう。

おわりに

いかがでしたでしょうか?小難しいPowerShellコマンドが登場しますが、意外に需要のあるRBACのテクニックについてご紹介させていただきました。

コマンドだけで見ると中々理解しがたい機能ですが、それぞれの設定値の位置づけが整理出来ていれば、意外と簡単です。是非習得してみてください。

それでは、良いOffice 365ライフをっ♪

スポンサーリンク