#RBACで使える権限一覧の取得スクリプト
##はじめに
Azureのリソースやサブスクリプションに関する権限はRBAC(Role Base Access Control)にて管理されます。
Azureポータルにはプリセットのロールが結構な数用意されているのですが、要望にマッチしないとき、カスタムロールとしてオリジナルのロールを作成することができます。
カスタムで使える権限てどんなものがあるのかな、ということで以前に一覧を取得していたので記事にしました。
※カスタムロールの作成はまたの機会。。
#取得方法
Get-AzProviderOperationというコマンドでリソースプロバイダ毎の操作権限が取得できるので、Excelで綺麗に見られるよう整えました。
Connect-AzAccount
$Title = "Operation, OperationName, ProviderNameSpace, ResourceName, Description, IsDataAction"
$Date = Get-Date -Format "yyyyMMdd"
$ResultFileName= "RBAC_OperationList"+$Date+".csv"
$DesktopPath = [Environment]::GetFolderPath('Desktop')
$File = "$DesktopPath\$ResultFileName"
New-Item $File -ItemType File
Add-Content $File $Title
Get-AzProviderOperation -OperationSearchString *| ForEach-Object{
$Operation = $_.Operation
$OperationName = $_.OperationName
$ProviderNameSpace = $_.ProviderNamespace
$ResourceName = $_.ResourceName
$Description = $_.Description
$IsDataAction = $_.IsDataAction
$Line = $Operation+", "+$OperationName+", "+$ProviderNameSpace+", "+$ResourceName+", "+$Description+" ,"+$IsDataAction
Add-Content $File $Line
}
各プロパティの概要は以下の通りです。
プロパティ | 概要 |
---|---|
Operation | 操作権限を表す文字列で、ロール作成に使用 |
OperationNmae | Operationが表す操作内容 |
ProviderNameSpace | VMならMicrosoft.Computeなど、リソースの分類 |
ResourceName | 権限の対象となるリソース |
Description | 説明 |
IsDataAction | オブジェクト内のデータに対する操作かどうか(ロール定義の書き方に影響) |
#取得結果
そして取得したものがこちら。。。
ちょっと横にずれてるものもありますが数が多い。スクロールバーがすごく小さいです。
前に取得したときは2000行くらいだったのが3倍ほどに増えているので、Azureの進化の著しさを表しているように思います。
カスタムロールを作る場合はここからほしい権限に該当するものを探します。。。
#おわりに
カスタムロール作成のための権限リストを取得したらおびただしい量に増えていました。
今後もリソースや機能が増えていくほど権限も増えるので、ほしいものを探すのが大変になりますね。
もうちょっと見つけやすくなると嬉しいのですが。
ただ、記事を作成しながら下のサイトを見つけてしまいました。
Azure Resource Manager のリソース プロバイダー操作
昔はなかったように思うのですが見落としていたのか、これがあるなら自分で取得しなくてもよかったのでは。。。
カスタムロール作るのに権限一覧がほしいなーという方はこちらを使いましょう。。。