【发布时间】:2021-01-27 20:52:28
【问题描述】:
我正在 AWS ECS 上运行 Airflow 实例。效果很好。然而,最近出现了对多租户的需求。我激活了webserver:filter_by_owner,我的不同团队现在按预期无法看到彼此的 DAG。太棒了!
但是,我偶然注意到,没有什么能阻止 A 团队使用打算由 B 团队使用的 connectionId。
在我的示例中,我正在运行 Airflow 以在 Snowflake 中编排一些 SQL。示例:
with DAG("TEST_Dag", default_args=config.default.args, schedule_interval=None) as dag:
t_create_table = SnowflakeOperator(
task_id="CreateTable",
snowflake_conn_id="CONNECTION_ID_FOR_TEAM_A",
sql="CREATE TABLE IF NOT EXISTS TEST_TABLE (C1 INT)",
dag=dag
)
在这个例子中,我设置了一个指向雪花的连接,我称之为 CONNECTION_ID_FOR_TEAM_A。每个团队都有自己的连接 ID。因此 TEAM B 将有一个 CONNECTION_ID_FOR_TEAM_B。
然而,问题在于没有什么可以阻止 B 组使用 A 组的连接,这在这种多租户 Airflow 设置中是一个很大的安全漏洞。
这可以解决吗?
【问题讨论】: