You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Work in progress. Feedback welcome.

Introduction

JIRA:  AIRFLOW-85 - Getting issue details... STATUS

Several Airflow users have a need for more rigorous security in Airflow. Part of this involves authentication (authn) and authorization (authz) in Airflow's UI. The current security problems with Airflow's UI are:

  1. Everything is under /admin
  2. There is very limited authorization (authz) functionality
  3. There is no auditing about who is triggering an action via the UI

The goal of this document is to address these issues.

Design

UI

The idea is to add a new endpoint called /dags, which is parallel to the /admin UI. This UI will use the same template as the existing DAGs UI in /admin. It will not, however, have any other tabs (Data Profiling, Browse, Admin).

We will need to lock down several pages in the Airflow view class. The pages that are exposed would be:

  • /admin
  • /admin/airflow/refresh
  • /admin/airflow/tree
  • /admin/airflow/graph
  • /admin/airflow/duration
  • /admin/airflow/landing_times
  • /admin/airflow/gantt
  • /admin/airflow/code
  • /admin/airflow/task
  • /admin/airflow/rendered
  • /admin/airflow/log
  • /admin/airflow/run
  • /admin/airflow/xcom
  • /admin/airflow/clear

Roles

We will introduce two levels of access:

  • dag_viewer: Can see everything associated with a given DAG.
  • dag_editor: Can edit the status of tasks in a DAG.
  • dag_executor: Can click the 'Run' button on a task to have it triggered immediately. Only works for CeleryExecutor.

Implementation

  • No labels