Redashのユーザー削除について考える

前提知識

kakakakakku.hatenablog.com

github.com

現状のRedashにおけるユーザー削除のTL;DR

  • FK使ってるのでユーザーだけ削除するのはRedashでは難しい
  • ユーザーを無効にするPRとかも出てるけど動きが止まってて今は使えない

考えたこと

前置き

Redashでユーザーを削除したい理由を「該当ユーザーをRedashにアクセスできなくしたい」に絞って考える。

気持ち悪いからきれいにしたい、クエリ作成者などに退職者の名前が出ているのを変えたい。というのも気持ちはとてもわかるけど、ビジネスに与える影響はほとんどないものと考えられるので考慮しないでおく。

「社内ルールで必ずユーザー情報を削除しないといけない」などの事情も考えられるけど、そういう会社はたぶんRedashの導入を許可しないと思うので、これも考慮しない。

オフィスからのアクセスのみに制限する

一番下のレイヤーでアクセスさせなくする方法として各社で取られているであろうアクセス制限のひとつ。

よくあるユーザーを削除したくなるシーンの一つは退職者がでたときだと思うけど、その場合も例外はあれど大抵はオフィスからのIPで制限しておけば心配が減ると思う。

パスワード認証を使わず、Google認証だけを使う

Googleのアカウントを失った時点でアクセスできなくなるので、悪くない対応だと思う。

これも退職のケースで考えると、退職後に同じ会社のメールアドレスを使い続けるのはそれなりのレアケース。

LDAPは使ったことがないけど似たようなことができると思う。

しかし、G Suiteを導入していない会社だったりすると選べない。

パスワード認証を使わないようにするには .env あたりで以下の環境変数を設定する。

REDASH_PASSWORD_LOGIN_ENABLED=false

これを書いてて、LDAPが触ってみたいと思って触ってないものの一つだということを思い出した。

Basic認証のID/PWを変える

この辺から泥臭い系の対応になってくる。

退職者がでたときにBasic認証を変えましょうという対応。

これは退職者だけでなく、利用者全員に影響するのでそれなりに面倒な対応になる。

そういえば各社認証情報ってどうやって管理してるのか、勉強会とかでいつも聞こうと思って忘れてることのひとつだったりする。

Redashユーザーのパスワードを変える

ユーザーを無効にする機能はなくてもユーザーのパスワードを書き換える機能はある。

といっても、admin画面からは変えられないので、以下のコマンドで変える。

$ sudo -u redash ./bin/run ./manage.py users password [メールアドレス] [新しいパスワード]

redash ユーザーじゃないとPostgreSQLに接続できなくてエラーになる。というのはRedashあるあるのひとつ。

新しいパスワードを pwgen などで適当に作ってあげれば事実上ログインできない状態にできるはず。

Redashの所属グループをなくす

仮にログインできても何も見えなければいいよね。という対応。

雑ではあるけど、データを見せたくないということが目的であればこれでもよい。

試してみたところ、クエリやダッシュボードは見えなくなりそうだけど、アラートやスニペットは見えてしまうようだった。

該当ユーザーのメールアドレスをを変える

Twitterでいただいたご意見。

メールアドレスが残ってて、かつ、そのメールアドレスが生きているとパスワードリマインダーが使えてしまうので、これも有用。

メールアドレスは admin であれば他人のメールアドレスも変更できるためお手軽でもある。

まとめ

他にも方法はあるかもしれないけど、ぱっと思いついたのは全部書いた。

現実的には上記に列挙したような対応を各社のRedash利用スタイルやインフラ・情シス事情によって組み合わることになると思う。

ちょうど使用しなくなったユーザーをどうしようか考えていて、この記事を書くに至ったけれど、ユーザーを無効にすることができればだいぶ楽になりそうだなと改めて思った。

すっかりこのブログはRedashブログになってしまったので、「Redash User's blog」に改名したほうがいいのだろうか。

記事公開後のはなし

Twitterでメールアドレスを変えるというアイディアをいただいたので追加しました。

「名前を変える」のくだりは「該当ユーザーをRedashにアクセスできなくしたい」とはちょっとずれるので追記しなかったけど、やりたくなりますよね。