【发布时间】:2021-07-06 13:30:28
【问题描述】:
我正在努力在 Airflow 2.1.0 中设置 DAG 级别的访问控制。目的是让用户查看和控制单个 DAG 及其运行,但仅此而已。尝试关注 docs on access control 并且几乎没有记录 access_control parameter of DAG 我正在设置一个最小场景:
- 角色
my_role和can read on Website - 用户
my_user,角色my_role - DAG
my_dag和DAG(..., access_control: {'my_role': ['can_read', 'can_edit']})
这部分有效。我可以以my_user 登录,在DAG 列表中只看到my_dag。但是,我无法查看 DAG 单击它、触发它或查看它的运行。我尝试添加额外的全局权限,例如read on DAG Runs / Task Instances,但没有帮助。唯一有效的是能够触发具有全局 create on DAG Runs 权限的 DAG(我不确定我现在是否能够通过发出正确的请求来触发 any DAG,没有检查)。
那么这有可能实现吗?我可能错过了什么吗?
【问题讨论】:
-
嘿 Kombajn,你最终找到了在 DAG 级别使用
access_control参数的方法吗? -
我发现的最佳方法是使用 UI,复制 Op 或 User 角色(取决于您想要的整体权限级别),然后在复制的角色中,删除所有 @987654334 @烫发。分配给每个人。然后在特定 DAG 上创建具有读取/编辑权限的单独角色,例如,您可能具有可以读取/编辑每个非敏感 DAG 的“通用”角色,第一组敏感 DAG 的“敏感1”角色,“敏感2”另一个组的角色等。您可以为每个用户分配多个角色,因此有些只有“一般”,有些还有“敏感1”,等等。
-
@alete - 是的,我现在回到这个问题上,并按照下面 aleksanderacai 的回答工作(在列出 dag 运行/任务实例方面存在一些问题)。
标签: authorization airflow