airflowにはデフォルトのwebserverの設定だと認証機能がONになっていない。
運用的に外部からのアクセスはないとはいえ、つけておきたい!
っていう人もいると思うのでその方法。
というか基本はドキュメントに書いてあるのでこちらを見ればすべて出来る。
https://pythonhosted.org/airflow/security.html
LDAPとかGHEとかあるけど今回は一番basicなemail,pass
事前準備
まずは認証を使用する際にはflask_bcrypt
が必要なので、インストール
pip install flask_bcrypt
後は標準で入っているもので対応できるはず
airflow.cfgの変更
authenticate
は最初はFalseになっているのでコメントアウトするなりTrueにする。
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth
ユーザーの作成
ユーザーの作成にはコマンドラインから行う。
python
コマンドでコンソール開いて下記のユーザー情報変更してEnterでユーザー作成完了
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = '[任意のユーザー名]'
user.email = '[任意のEmailアドレス]'
user.password = '[任意のパスワード]'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()
これでwebserverを再起動すれば下記画面になるはず
最後に
権限周りの設定はどうやらできないっぽい??