关于 airflow.security.permissions 的弃用通知

自 Airflow 3 发布以来,Flask AppBuilder(又称 “FAB”)提供者已不再是核心 Airflow 依赖。然而,某些专为Flask AppBuilder (FAB) 认证管理器设计的模块仍然保留在核心 Airflow 分发中,作为向后兼容的便利。为向后兼容而保留在核心分发中的其中一个模块是 airflow.security.permissions

如果你的部署依赖 airflow.security.permissions 来定义任何自定义角色,或用于任何自定义 Auth Manager 逻辑——无论你使用的是 FAB Auth Manager 还是其他 Auth Manager——都应迁移到针对资源和操作的新授权标准定义。已弃用的 airflow.security.permissions 将在 Airflow 4 中移除。

此弃用会影响我的 Airflow 系统吗?

一般而言,此弃用警告适用于满足以下任意一种情况的 Airflow 系统

  • Airflow 部署依赖 airflow.security.permissions 来定义自定义 RBAC 角色。

  • Airflow 部署还有其他自定义逻辑依赖 airflow.security.permissions,包括任何自定义 Auth manager 的依赖。

然而,如果你依赖未修改的 Flask AppBuilder (FAB) 认证管理器,且使用任何自定义角色定义,那么本文档的其余部分不适用于你。同样地,如果你依赖Simple auth manager或其他提供者的 Auth Manager,且没有使用 airflow.security.permissions 的自定义代码,那么本文档的其余部分也不适用于你。

注意

每个定制的 Airflow RBAC 设置因情况而异。因此,本文件只能提供关于迁移到新的 Airflow 授权标准的一般指导,而不会过于规定细节。

如何迁移到新的授权标准定义

请参阅下表,了解已弃用的 permissions 模块组件以及 Airflow 核心提供的相应支持替代方案

  • airflow.security.permissions.ACTION_* –> airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod

  • airflow.security.permissions.RESOURCE_* –> airflow.api_fastapi.auth.managers.models.resource_details

  • DAG.access_control –> DAG 级别的权限应由所选 Auth Manager 的 filter_authorized_dag_ids 方法处理。

如果你维护一个依赖已弃用模块的自定义 Auth manager,建议参考 SimpleAuthManager源码,作为如何使用 ResourceMethodresource_details 组件的示例。

如果你基于已弃用模块使用自定义角色定义,请参考系统所使用的认证管理器文档。

此条目是否有帮助?