Airflow 2.5.3:如何限制用户仅查看自身子文件夹内的DAG
实现Airflow按文件夹隔离用户DAG查看权限(2.5.3版本)
你的需求完全可行,Airflow 2.x的RBAC系统支持通过DAG标签+自定义角色权限的方式,实现用户仅查看对应文件夹内的DAG,具体步骤如下:
1. 为对应文件夹的DAG统一添加标签
在每个用户子文件夹下的DAG代码中,统一添加专属标签,比如dag-user1下的所有DAG都添加user1_dags标签:
from airflow import DAG from datetime import datetime with DAG( dag_id="dag_a", start_date=datetime(2023, 1, 1), schedule_interval="@daily", tags=["user1_dags"], # 统一添加用户专属标签 ) as dag: # 任务定义代码
同理,dag-user2下的DAG添加user2_dags标签,dag-user3添加user3_dags标签。
2. 创建对应用户的自定义角色
进入Airflow GUI的Security -> Roles页面,创建专属角色:
- 点击Create,角色名设为
User1DAGViewer(对应user1) - 在Permissions区域,添加权限:
- 权限类型选择
can read - 资源类型选择
DAG - 资源名称填写
tag:user1_dags(格式为tag:你的标签名)
- 权限类型选择
- 重复此步骤,分别创建
User2DAGViewer、User3DAGViewer角色,对应各自标签的权限。
3. 绑定用户到自定义角色
进入Security -> Users页面,编辑目标用户:
- 在Roles列表中,添加对应的自定义角色(比如给user1添加
User1DAGViewer) - 保留用户的
User基础角色(确保用户能正常登录GUI),移除Viewer等会授予全局DAG查看权限的角色。
验证效果
完成配置后,user1登录Airflow GUI,将只能看到带有user1_dags标签的DAG(即dag-user1文件夹下的所有DAG),无法查看其他用户的DAG。
内容的提问来源于stack exchange,提问作者Krengifo
相关产品推荐
相关产品推荐

