【问题标题】:Apache Airflow Multi TenantApache Airflow 多租户
【发布时间】:2018-02-18 17:42:10
【问题描述】:
我正在尝试弄清楚 Airflow 如何在多租户环境中工作。具体来说,要求应如下所示:
- TeamA 和 TeamB 两个团队正在使用一个 Airflow 实例。
- 团队的 A 和 B 各有自己的服务用户帐户:serviceUserA 和 ServiceUserB,他们应该在这些帐户下运行他们的工作。
- 出于安全原因,团队 A 不应创建在 ServiceUserB 下运行的作业,反之亦然。
在这一点上,我不清楚要求 3. 是否可以通过 Airflow 来满足,除非给每个团队一个单独的 Airflow 实例。有什么方法可以实现吗?
【问题讨论】:
标签:
airflow
airflow-scheduler
【解决方案1】:
这取决于您对 气流实例 的含义。
您可以通过 systemctl 启动 2 组 Airflow 服务(webserver、scheduler、worker),每组都依赖于不同的 airflow.cfg。
在airflow.cfg 中,您可以将2 个组分开。
【解决方案2】:
直到 Airflow 版本 1.9.0:
用户仍然能够访问所有 dag 的原因是默认情况下它是 superuser。除非您使用 LDAP 进行身份验证,否则创建的所有用户都是超级用户,并且 Airflow 没有其他角色。
但是,如果您使用 LDAP,您可以拥有超级用户和数据分析器角色。
这应该会在即将发布的 Airflow 版本中有所改变。
正如文档所述 here:只有在使用 LDAP 身份验证时才能使用 webserver:filter_by_owner。因此,要实现多租户,您可以使用 LDAP 并将 superuser 权限仅授予管理员,而将 user 或 data_profiler 角色授予其他用户。