Grafanaのユーザ・ダッシュボード権限管理の仕組みを図にした
Grafanaの権限管理の仕組み
やや見にくくて申し訳ないですが、整理のため図にしてみました。
以下で補足していきます。
Grafanaの単位区分の考え方
まずはGrafanaの中で様々な要素を分ける単位区分である Organization
, Folder
, Team
について整理します。
Organization
Organization
はGrafanaの中で最も大きな単位区分です。
Grafanaサーバーに必ず1つのOrganizationがあり、初期でMain.org
が存在します。
ユーザーは必ずどこかのOrganizationに所属します。
Organization と Organization は、ライセンスとユーザ以外のあらゆるものが分離されています。
詳細はこちらのページで確認できます。
Folder
Folder
はリソース(例えばダッシュボードとかアラート設定とか)を含む単位区分です。
つまり、 Folder を使えば Organization の中でさらにリソースを分けることができるので、 新たにOrganization を作って分ける、といった必要がなくなります。
詳しい分離は先ほどの図 ↑ をご覧ください。
Team
Team
はユーザーのグループで、 Organization の中で作成し、そこにユーザーを所属させることができます。
Grafanaの権限
続いて権限について整理します。権限は様々なレベルで設定・管理されるようです。
Folderレベル
Folderに対して、誰にどのような権限を付与するか、を管理できます。
例えば冒頭に載せた写真の場合だと
-
User1
にFolderA
に対するAdmin
権限を与える -
TeamZ
にFolderA
に対するEditor
権限を与える- つまり
User2
とUser3
- つまり
-
User3
にFolderB
に対するViewer
権限を与える
といった権限管理を行っています。
ところでAdmin, Editor, Viewerの持つ権限ですが、例えばFolderのAdminを持っている場合は 「このFolderでは誰に対してどの権限を付与するか」 という権限管理やFolderの削除などが可能になります。
EditorとViewerに関してはご想像のとおりだと思います。Folder内のダッシュボードを操作できたりReadOnlyだったりです。
Organizationレベル
Organization
レベルの権限をユーザーに設定できます。権限はAdmin
, Editor
, Viewer
の3通り(一応None
もある。)です。
Admin
とEditor
の違いは 権限管理ができるかどうか です。
Admin がついていれば Org内のユーザーの権限の管理や、先ほど述べた Folder レベルの権限の管理が可能になります。
なお、Organization と Folder 権限の優先順位に関しては Folderに書かれた権限が優先されます。
つまり、
- Org Editor で Folder Viewer を付与すると、そのFolderに対しては Viewer 権限になる
- Org Viewer で Folder Admin を付与すると、そのFolderに対しては Admin 権限になる
となります。
しかしややこしいことに、Org Admin だけは Folder で上書きできないようです。これはFolderの権限管理画面を見れば分かるのですが、Org Admin に対しては Folder Admin を付与する、という定義でロックされているためです。
↑ ロックされている図
Grafanaレベル
最後にGrafana Admin
に関してです。Grafana Adminを持つとサーバーレベルのAdminが設定され、今までのすべての権限レベルに対してAdminを持つことになります。また、Grafana Adminにしかできない仕事としてOrgの作成・削除などのOrg管理があります。
※ダッシュボード単体に対する個別の権限設定
ダッシュボードに対して Read Only
を設定できます。
例えば、Folder
に対してはEditor
権限を持たせたいけどこのダッシュボードだけは編集してほしくない、みたいなときに設定します。
Grafanaで権限を運用する
Folderを使えば1つのOrganizationだけで十分に運用できる可能性があると思います。
例えば、
- 全ユーザーのOrganization権限はViewerにしておく
- 本当の管理者をGrafana AdminまたはOrganization Adminにしておく
- 必要なチームごとにFolderを切り、誰か1人をFolder Adminにしておく
- するとFolder Adminがそのフォルダ内で権限管理を行ってくれる
上記を行えば、全員が等しくReadOnly権限を持ち、各チーム内の権限管理は各チームに任せることができてスケールしそうです。
終わりに
Grafanfaの権限をまとめてみました。
ドキュメントだけだとなかなか理解できないと思うので、この記事が役に立てば幸いです。
なお、事細かく検証をしたわけではないので誤った情報などもあるかもしれません。もしございましたら教えていただけると幸いです。
Discussion