如何设置 Airflow 调度程序日志文件 mode/permissions

How to set Airflow scheduler log file mode/permissions

我在 Red Hat Linux 上 运行ning airflow 1.10.3。我使用的是 LocalExecutor,网络服务器和调度程序都是通过 systemd 启动的。

调度程序生成的日志文件是全球可读的(即模式“-rw-rw-rw-”)。正在创建的日志目录是 "drwxrwxrwx".

我的组织已进行的安全扫描失败了。我需要能够限制这些文件的权限。

/etc/profile 中的 umask 是 077。我还在服务的两个 systemd 单元文件中添加了 UMask=0007。但是,尽管这似乎适用于 dags/logs/scheduler/ 目录中的日志,但它不会影响 DAG 运行 日志。

[root@server logs]# ls -la s3_dag_test/
total 4
drwxrwxrwx.  4 airflow airflow   54 Aug  7 17:35 .
drwxrwx---. 46 airflow airflow 4096 Aug  7 20:00 ..
drwxrwxrwx.  5 airflow airflow  126 Aug  7 17:37 bash_test
drwxrwxrwx.  5 airflow airflow  126 Aug  7 17:29 check_s3_for_file_in_s3
[root@server logs]# ls -la s3_dag_test/bash_test/2019-08-07T17\:29\:27.988953+00\:00/
total 12
drwxrwxrwx. 2 airflow airflow   19 Aug  7 17:35 .
drwxrwxrwx. 5 airflow airflow  126 Aug  7 17:37 ..
-rw-rw-rw-. 1 airflow airflow 8241 Aug  7 17:35 1.log

你能告诉我们如何以普通用户或 root 用户安装 airflow

这可能为时已晚,无法为您提供有用的答案,但我遇到了完全相同的问题。我的组织提高了 Airflow 日志目录的权限作为一项安全发现。我同样检查了umask,无济于事。

我确实找到了这个:

https://anoopkm.wordpress.com/2020/03/26/world-readable-airflow-dag-logs-issue/

简而言之,Airflow 似乎对用于创建文件和文件夹的权限进行了硬编码。

我编辑了这个 Python 文件:venv/lib/python3.8/site-packages/airflow/utils/log/file_task_handler.py 并更改了第 242 和 247 行以使用 0o7700o660 而不是 0o7770o666 分别用于创建文件夹和文件。然后我手动触发了一个 DAG 并检查了文件夹权限。最新的日志文件夹不再具有全局 rwx 权限。