管理者の役割について、カスタマイズする方法を詳しく解説していきたいと思います。
管理者の役割をカスタマイズする方法を、テナントの役割ベースのアクセス制御 (RBAC) と呼んでいます。
※読み方は「アールバック」と読みます。
まず、手順として元々ある役割をコピーした役割を以下のコマンドレットで作成します。
以下の記事を参考に、ExchangeOnlineに接続してから実行してください。
新規の役割を作成します。
※コピー元の役割は Distribution Groups で指定します。
<構文>
New-ManagementRole -Parent <コピー元の役割> -Name <新しい役割名>
<実行例>
New-ManagementRole -Parent "Distribution Groups" -Name testRole
RBAC は「引き算」のようなものと言われていて、基本的に元々ある役割からコマンドレットを削除して機能を制限していくものです。
そのため、元々ある役割に含まれていないコマンドレットを追加することはできません。
なお、コマンドレットを削除よりも詳細にカスタマイズする場合は、コマンドレットのパラメーターを削除することで可能です。
では、まずはコマンドレットを削除する手順をご紹介していきます。
作成した役割から不要なコマンドを削除するコマンドレット
<構文>
Remove-ManagementRoleEntry -Identity "役割\コマンドレット" -Confirm:$False
<実行例>
Remove-ManagementRoleEntry -Identity "testRole\New-DistributionGroup" -Confirm:$False
上記の例では、作成した役割から New-DistributionGroup のコマンドレットを削除しています。
間違えて削除したコマンドレットを再度、追加したい場合は以下のコマンドレットで可能です。
<構文>
Add-ManagementRoleEntry -Identity "役割\コマンドレット"
<実行例>
Add-ManagementRoleEntry -Identity "testRole\New-DistributionGroup"
次にパラメーターを削除する手順をご紹介していきたいと思います。
不要なパラメーターを削除するコマンドレット
<構文>
Set-ManagementRoleEntry "役割名\編集するコマンドレット" -Parameters Identity,EmailAddresses
<実行例>
Set-ManagementRoleEntry "testRole\Set-DistributionGroup" -Parameters Identity,EmailAddresses
上記の例では、Set-DistributionGroup の IdentityとEmailAddresses 以外のパラメーターを削除しています。
なお、EmailAddresses のパラメーターのみ削除したいという場合は、最後に [-Remove] を追加することで可能です。
<実行例>
Set-ManagementRoleEntry "testRole\Set-DistributionGroup" -Parameters EmailAddresses -Remove
また、間違えて削除したパラメーターを再度、追加したい場合は、最後に [-Add] を追加することで可能です。
<実行例>
Set-ManagementRoleEntry "testRole\Set-DistributionGroup" -Parameters EmailAddresses -Add
最後に複数のコマンドレットを一括で削除したいという場合についてもふれておきたいと思います。
まずは、例として、Distribution Groups をコピーした役割から、New-DistributionGroup と Get-DistributionGroup 以外のコマンドレットを削除したい場合は ($_.Name -Notlike "New-DistributionGroup") と -Notlike で指定し、[-and] で残したいコマンドレットを追加していきます。
役割から複数のコマンドレットを削除する
<構文>
Get-ManagementRoleEntry "役割名\*" |where {($_.Name -Notlike "New-DistributionGroup") -and ($_.Name -Notlike "Get-DistributionGroup")} | foreach {sleep -m 500; $cmd = ""; $cmd ="役割名\" + $_.Name ; Remove-managementroleentry -Identity $cmd -Confirm:$false }
次に Distribution Groups をコピーした役割から、New-DistributionGroup と Get-DistributionGroupのコマンドレットを削除したい場合は、($_.Name -like "New-DistributionGroup") と -like で指定し、[-or] で追加していきます。
<構文>
Get-ManagementRoleEntry "役割名\*" |where {($_.Name -like "New-DistributionGroup") -or ($_.Name -like "Get-DistributionGroup")} | foreach {sleep -m 500; $cmd = ""; $cmd ="役割名\" + $_.Name ; Remove-managementroleentry -Identity $cmd -Confirm:$false }
役割名のところには、最初に作成した役割名を入れてください。
"testRole\*" のようになります。
あとは、作成した役割を役割グループに追加し、メンバーに権限を付与するユーザーを登録することで完了となります。