Apache Airflow Multi Tenant

Я пытаюсь понять, как Airflow может работать в многопользовательской среде. В частности, требования должны выглядеть примерно так:

  1. Две команды, TeamA и TeamB, используют один экземпляр Airflow.
  2. У команд A и B есть собственная учетная запись пользователя службы: serviceUserA и ServiceUserB, под которыми они должны запускать свои задания.
  3. По соображениям безопасности группа A не должна иметь возможность создавать задания, которые выполняются под ServiceUserB, и наоборот.

На данный момент мне неясно, может ли требование 3) быть выполнено с помощью Airflow, за исключением предоставления каждой команде отдельного экземпляра Airflow. Есть ли способ, которым этого можно достичь?

Благодарность,

Крис


person d80tb7    schedule 10.09.2017    source источник


Ответы (2)


Это зависит от того, что вы имеете в виду под экземпляром воздушного потока.

Вы можете развернуть 2 группы сервисов Airflow (веб-сервер, планировщик, рабочий) с помощью systemctl, каждая из которых полагается на свой airflow.cfg.

Затем в файле airflow.cfg вы разделите две группы.

person AlessioG    schedule 16.11.2017
comment
Означает ли это, что pythonhosted.org/airflow/security.html#web-authentication объяснение по поводу мультитенантности работает не так, как ожидалось. Я пробовал то же самое, но не работает для меня. Все созданные пользователем могут видеть все даги. (я использую воздушный поток 1.8.2) - person Anoop R; 04.01.2018

До версии Airflow 1.9.0:

Причина, по которой пользователь все еще может получить доступ ко всем дагам, заключается в том, что по умолчанию это superuser. Если вы не используете LDAP для аутентификации, все созданные пользователи являются суперпользователями, а у Airflow нет других ролей.

Однако, если вы используете LDAP, у вас могут быть роли суперпользователя и профиля данных.

Это должно измениться в следующих версиях Airflow.

Как указано в документации, здесь: вы можете используйте webserver:filter_by_owner, только если вы используете аутентификацию LDAP. Таким образом, для достижения мультитенантности вы можете использовать LDAP и давать superuser разрешения только администраторам и иметь роль user или data_profiler для других пользователей.

person kaxil    schedule 04.07.2018