Open5

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

takamin55takamin55

GrafanaのFoldersとTeams機能について調べる

https://grafana.com/blog/2022/03/14/how-to-best-organize-your-teams-and-resources-in-grafana/

Grafanaで複数のダッシュボードや人を管理したい時、Organization機能ではなくFoldersTeamsを使ったほうが良いとGrafana Labの人が言っているので詳しく調べてみる。

GrafanaのOrganizationとは

1つのGrafanaインスタンスの中で最も大きいレベルの区分。
※最大の区分はGrafanaが稼働するインスタンスごと物理的に分けることだろう。

https://grafana.com/blog/2022/03/14/how-to-best-organize-your-teams-and-resources-in-grafana/
このURLによると、ユーザとライセンス以外のすべてはOrg単位で独立する。
ユーザは必ずどこか1つのOrgに属する。

takamin55takamin55

GrafanaのFoldersとは

1つのOrganizationの中で、さらにリソースを分けるために使用。
先程のURLによると、フォルダを使うことでユーザ、ダッシュボード、データソース、アラートを独立させることができる。

確かに十分そう?

FoldersはDashboardの画面へ行けば作成したりできる。

Folderに移動した後のNewボタンでFolderを選択できなかったので、Folderの階層は1階層までぽい。
つまり階層はない。

FolderごとにDashboardPermissionを設定できる。
例えばどの[User, Team, Role]にどんな権限を割り振るか、を指定する。

これにより、例えばTeamごとに見れるFoldersを制限することができそう。

なお、権限はAdmin, Edit, Viewが最初からあるようだが、増やせるのだろうか?
https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/

↑URLによると、権限はこの3種類しかないみたいだが、ダッシュボードに対して権限を設定することができ、その設定は権限を上書きする。
例えば、ユーザAがいい感じのTeamに入っていてEditor権限が付いているが、特定のダッシュボードだけReadOnlyにすることができる。
この上書きはパネル単位ではなくダッシュボード単位ぽいので、「ダッシュボード内のこのパネルだけは触らせない」みたいなことは出来なさそう(ダッシュボードを分けよう)。

なお、Enterpriseプランに入れば

  • Data source permissions
    • 特定のユーザ・チームに対してデータソースに対するクエリ権限を制限する
  • Role-based access control
    • これはIAMロールをイメージすればいいか?

が使えるみたい。デフォルトだとAdmin, Edit, Viewくらいしか権限の種類がないので、細かい調整がしたい場合はEnterpriseへどうぞ。という感じか。

takamin55takamin55

GrafanaのTeamsとは

ユーザの集まり。Organization単位で作成する。
Teamsに対して権限を割り振ることができるので、Foldersと組み合わせてリソースやユーザの分離が可能になる。要は1つのOrganizationのなかで、現実でいくつかあるチーム体制を実現できる。

Team Syncについて

https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-team-sync/

LDAPを何らかしてADとGrafanaのTeamsを自動でアサイン・同期する機能。
Enterpriseプランに入らないと使えない。
Enterpriseプランの料金は不明だが、Amazon Managed Grafanaでは $36/adminと書かれていた。オンプレ版だともう少し下がりそうだが、それでも高そう。
何より、Team Syncを使いたい = ユーザがそこそこいる = 高くなるが目に見えてわかる。

takamin55takamin55

色々検証したので後で詳しくまとめたいが、まず

Admin権限 > Edit権限 > View権限

の順に持つ権限は強い。
そして、

Grafana > Organiaztion > Folder, Team

の順に大きいグルーピング単位であり、上位の単位の権限が強ければその権限が下位の単位で適用される。
つまり、Grafana AdminであればOrganizationやFolderやTeamでどんな権限が設定されていようとAdminになり、Org AdminであればFolderやTeamのAdmin権限を持つ。
※↑例外があるかも知れないけどそんな挙動をした↑

ただし、上位の権限が小さい場合は、下位の権限で塗り替える事が可能。
例えば、OrganizationでViewerだったとしても、Folder Adminを与えればそのFolder内のリソースはAdminになる。