Redashのユーザー削除について考える
前提知識
現状の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でメールアドレスを変えるというアイディアをいただいたので追加しました。
凍結。みたいなのを名前に含めるの、すごく時代を感じますが、やりたくなりますよねー。私はそういうファイルを社内ファイルサーバーでいくつも見てきた世代ですw
— Takuya Arita (@ariarijp) 2018年2月28日
確かにメールアドレスも変えちゃってよさそうですね。
このやり取り踏まえ、メールアドレス変えるパターンとユーザー名変えるパターンも記事に追記しようと思います😉
— Takuya Arita (@ariarijp) 2018年2月28日
「名前を変える」のくだりは「該当ユーザーをRedashにアクセスできなくしたい」とはちょっとずれるので追記しなかったけど、やりたくなりますよね。