You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow 2.5.2(Docker部署)非RBAC模式下按所有者配置DAG角色权限

非RBAC模式下Airflow 2.5.2用户DAG权限配置方案

前提确认

当前环境为Docker Compose部署的Airflow 2.5.2,已通过配置AIRFLOW__WEBSERVER__RBAC = False禁用RBAC模式,需为用户abc配置仅能管理自身所属DAG的权限。

操作步骤

1. 创建自定义专属角色

在Airflow容器内执行命令,创建一个仅用于管理abc所属DAG的角色(示例命名为abc_dag_manager):

docker-compose exec airflow-webserver airflow roles create abc_dag_manager

2. 为角色分配目标DAG的具体权限

针对abc拥有的每个DAG(假设DAG ID为dag_abc_01、dag_abc_02),分配查看、暂停、恢复、触发运行所需的权限动作:

# 为单个DAG分配权限
docker-compose exec airflow-webserver airflow roles add-perms -r DAG -a can_read can_pause can_resume can_trigger -d dag_abc_01 abc_dag_manager

# 为多个DAG批量分配权限
docker-compose exec airflow-webserver airflow roles add-perms -r DAG -a can_read can_pause can_resume can_trigger -d dag_abc_01 dag_abc_02 abc_dag_manager

3. 移除角色的全局DAG权限(关键)

默认情况下角色可能带有对所有DAG的访问权限,需移除这些全局权限,确保用户仅能看到指定的DAG:

docker-compose exec airflow-webserver airflow roles del-perms -r DAG -a can_read can_pause can_resume can_trigger abc_dag_manager

注:此命令会移除角色对*(所有)DAG的对应权限,仅保留步骤2中指定的单个/多个DAG的权限。

4. 绑定用户与自定义角色

将用户abc关联到刚创建的自定义角色:

docker-compose exec airflow-webserver airflow users add-role abc abc_dag_manager

若用户abc之前绑定过其他角色,可按需移除旧角色:

docker-compose exec airflow-webserver airflow users remove-role abc [旧角色名称]

命令中文翻译及参数说明

原命令:

[RESOURCE [RESOURCE ...]] [-v]
                    [role [role ...]]```

中文翻译及参数解释:
```airflow roles del-perms [-h] [-a [动作 [动作 ...]]] -r
                    [资源 [资源 ...]] [-v]
                    [角色 [角色 ...]]```
- `-h`:显示命令帮助信息
- `-a`:指定要移除的权限动作(如`can_read`、`can_pause`等)
- `-r`:指定权限对应的资源类型(此处需填`DAG`)
- `-v`:开启详细输出模式
- 末尾指定要移除权限的角色名称

## 配置验证
完成操作后,用用户`abc`登录Airflow GUI,验证以下内容:
- 仅能看到自身所属的DAG(如`dag_abc_01`、`dag_abc_02`)
- 可对这些DAG执行暂停、恢复、触发运行操作
- 无法查看或操作其他用户的DAG

内容的提问来源于stack exchange,提问作者Usman_Ahmed
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 23:30:15