GAミント至上主義

Web Monomaniacal Developer.

AirflowでGoogleアカウント認証を使う。RBAC使うのは諦めた

Airflowでは通常のメールアドレス+パスワード認証以外にOAuthが使えます。
会社でG Suiteを使っているのでGoogleアカウント認証が良さげ。

パッケージのインストールが必要なのと、airflow.cfgの変更が必要。
Security — Airflow Documentation


基本的に上記の設定でいいんですが、以前画面上の時間がUTCの表示を変えようと、RBAC(Role-Based Access Control)を有効化していたため、そのままではダメでした。

RBACを使うとユーザーごとにいろんな設定ができるので、タイムゾーンの設定もできるようになります。

RBACを使いつつ、Google Authも有効にする方法は、ググって見つけた下記のやり方を試しました。

しかし、ログインできるものの権限不足でDAG見れたと思ったら、一覧に戻ると「Access is Denied」されてリダイレクトされるなど挙動が意味わからなくて使えませんでした。

Airflow Google Authentication does not work as expected - Stack Overflow

RBACが無いとユーザーごとの識別はないですが、下記のようにdomainにG Suiteのアドレスを指定することでざっくりG Suite単位のドメイン単位で認証できますので、一旦大丈夫かな。


airflow.cfg

[google]
client_id = <your client id>
client_secret = <your secret>
oauth_callback_route = /oauth2callback
domain = example.co.jp