コマンドラインでre:dashのグループ、グループ権限を設定してみる

re:dashではグループに基づいて各ユーザーに権限が付与されます。
アカウント追加時の設定では「Defaultグループ」に参加され、クエリ作成などが実施可能な権限を付与された状態となります。

この状態でre:dash運用を行うと追加ユーザー分のクエリ、ダッシュボードが作成可能な状態となってしまいます。 グループの新規作成はGUIから実行可能ですが、権限設定はGUIから実行は出来ないようなので今回はグループに各権限を与えるべくコマンドラインにて権限設定を投入してみました。

作成済みグループを確認する

対象インスタンスへsshログイン

ssh -i <キーペア名> -u ubuntu <接続インスタンスIP or DNS名>

コマンドを実行する(ユーザー一覧を表示する)

$ cd /opt/redash/current ; pwd
/opt/redash/current

$ sudo -u redash bin/run ./manage.py groups list
Id: 1
Name: admin
Type: builtin
Organization: default
--------------------
Id: 2
Name: default
Type: builtin
Organization: default

グループを作成する

$ sudo -u redash bin/run ./manage.py groups create "<グループ名>"
$ sudo -u redash bin/run ./manage.py groups create --help
Usage: manage.py groups create [OPTIONS] NAME

Options:
  --org TEXT          The organization the user belongs to (leave blank for
                      'default').
  --permissions TEXT  Comma separated list of permissions ('create_dashboard',
                      'create_query', 'edit_dashboard', 'edit_query',
                      'view_query', 'view_source', 'execute_query',
                      'list_users', 'schedule_query', 'list_dashboards',
                      'list_alerts', 'list_data_sources') (leave blank for
                      default).
  --help              Show this message and exit.
$ sudo -u redash bin/run ./manage.py groups create "dashboard_view_only"
Creating group (dashboard_view_only)...
permissions: [create_dashboard,create_query,edit_dashboard,edit_query,view_query,view_source,execute_query,list_users,schedule_query,list_dashboards,list_alerts,list_data_sources]
$ sudo -u redash bin/run ./manage.py groups list
Id: 1
Name: admin
Type: builtin
Organization: default
--------------------
Id: 2
Name: default
Type: builtin
Organization: default
--------------------
Id: 4
Name: dashboard_view_only
Type: regular
Organization: default
--------------------

グループへ権限を付与する

グループへ権限を付与する場合、change_permissionsオプションを使用してパーミッションを付与する必要があります。

$ sudo -u redash bin/run ./manage.py groups change_permissions --permissions <付与パーミッション> <グループ名ID>
$ sudo -u redash bin/run ./manage.py groups change_permissions --help
Usage: manage.py groups change_permissions [OPTIONS] GROUP_ID

Options:
  --permissions TEXT  Comma separated list of permissions ('create_dashboard',
                      'create_query', 'edit_dashboard', 'edit_query',
                      'view_query', 'view_source', 'execute_query',
                      'list_users', 'schedule_query', 'list_dashboards',
                      'list_alerts', 'list_data_sources') (leave blank for
                      default).
  --help              Show this message and exit.
$ sudo -u redash bin/run ./manage.py groups change_permissions --permissions list_dashboards 4
Change permissions of group 4 ...
current permissions [create_dashboard,create_query,edit_dashboard,edit_query,view_query,view_source,execute_query,list_users,schedule_query,list_dashboards,list_alerts,list_data_sources] will be modify to [list_dashboards]

権限設定を投入したグループにユーザーを所属させる

  • Administrator権限を持ったユーザーでre:dashへログインします。
  • 右上の歯車を選択します
  • GROUPタブを選択し、defaultを選択します

screenshot 2017-09-29 1.22.14

  • 限定した権限を付与したいユーザーをdefaultから削除するため、Removeを押下してグループからユーザーを外します

screenshot 2017-09-29 1.25.35

  • 次に権限設定を行ったグループを選択します

screenshot 2017-09-29 1.22.14

  • Add New Memberを選択、グループへ追加したいユーザーを入力して追加します

screenshot 2017-09-29 1.26.51

以上でユーザーの権限が先程設定したグループのみとなりました。
本当に権限が付与されているか確認してみます。

defaultグループに所属しているユーザー

screenshot 2017-09-29 1.37.23

dashboard_view_onlyグループに所属しているユーザー(list_dashboardsのみ付与)

screenshot 2017-09-29 1.31.59

New Alertについては外れませんでしたが、新しくクエリやダッシュボード作成が出来なくなりました。

最後に

前回のコマンドラインによるユーザー追加と合わせて今回の作業を実施することで最低限のユーザー管理は出来るようになったかと思います。
適切な権限を設定することで管理者の方への負担は減ると考えているので、積極的に使っていけると幸せになれると思います。