Grafanaの権限管理について。Organizations, Folders, Teams

GrafanaのFoldersとTeams機能について調べる
Grafanaで複数のダッシュボードや人を管理したい時、Organization
機能ではなくFolders
やTeams
を使ったほうが良いとGrafana Labの人が言っているので詳しく調べてみる。
GrafanaのOrganizationとは
1つのGrafanaインスタンスの中で最も大きいレベルの区分。
※最大の区分はGrafanaが稼働するインスタンスごと物理的に分けることだろう。
ユーザは必ずどこか1つのOrgに属する。

GrafanaのFoldersとは
1つのOrganizationの中で、さらにリソースを分けるために使用。
先程のURLによると、フォルダを使うことでユーザ、ダッシュボード、データソース、アラート
を独立させることができる。
確かに十分そう?
FoldersはDashboardの画面へ行けば作成したりできる。
Folderに移動した後のNew
ボタンでFolderを選択できなかったので、Folderの階層は1階層までぽい。
つまり階層はない。
FolderごとにDashboard
やPermission
を設定できる。
例えばどの[User, Team, Role]
にどんな権限を割り振るか、を指定する。
これにより、例えばTeamごとに見れるFoldersを制限することができそう。
なお、権限はAdmin, Edit, View
が最初からあるようだが、増やせるのだろうか?
↑URLによると、権限はこの3種類しかないみたいだが、ダッシュボードに対して権限を設定することができ、その設定は権限を上書きする。
例えば、ユーザAがいい感じのTeamに入っていてEditor権限が付いているが、特定のダッシュボードだけReadOnlyにすることができる。
この上書きはパネル単位ではなくダッシュボード単位ぽいので、「ダッシュボード内のこのパネルだけは触らせない」みたいなことは出来なさそう(ダッシュボードを分けよう)。
なお、Enterpriseプラン
に入れば
- Data source permissions
- 特定のユーザ・チームに対してデータソースに対するクエリ権限を制限する
- Role-based access control
- これはIAMロールをイメージすればいいか?
が使えるみたい。デフォルトだとAdmin, Edit, View
くらいしか権限の種類がないので、細かい調整がしたい場合はEnterpriseへどうぞ。という感じか。

GrafanaのTeamsとは
ユーザの集まり。Organization単位で作成する。
Teamsに対して権限を割り振ることができるので、Folders
と組み合わせてリソースやユーザの分離が可能になる。要は1つのOrganizationのなかで、現実でいくつかあるチーム体制を実現できる。
Team Syncについて
LDAPを何らかしてADとGrafanaのTeamsを自動でアサイン・同期する機能。
Enterpriseプランに入らないと使えない。
Enterpriseプランの料金は不明だが、Amazon Managed Grafanaでは $36/admin
と書かれていた。オンプレ版だともう少し下がりそうだが、それでも高そう。
何より、Team Syncを使いたい = ユーザがそこそこいる = 高くなるが目に見えてわかる。

色々検証したので後で詳しくまとめたいが、まず
Admin権限 > Edit権限 > View権限
の順に持つ権限は強い。
そして、
Grafana > Organiaztion > Folder, Team
の順に大きいグルーピング単位であり、上位の単位の権限が強ければその権限が下位の単位で適用される。
つまり、Grafana AdminであればOrganizationやFolderやTeamでどんな権限が設定されていようとAdminになり、Org AdminであればFolderやTeamのAdmin権限を持つ。
※↑例外があるかも知れないけどそんな挙動をした↑
ただし、上位の権限が小さい場合は、下位の権限で塗り替える事が可能。
例えば、OrganizationでViewerだったとしても、Folder Adminを与えればそのFolder内のリソースはAdminになる。

↑これ間違ってた。記事で修正。