Airflow 配置
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
配置文件
Apache Airflow 在所有 airflow 机器上生成一个名为 airflow.cfg 的 配置文件,该文件位于 airflow 用户的主目录中。此配置文件包含配置信息,并且 可能包含有趣和敏感的信息。
访问此文件有两种方式:通过攻陷某个 airflow 机器,或访问 web 控制台。
请注意,配置文件中的值 可能不是实际使用的值,因为您可以通过设置环境变量如 AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true' 来覆盖它们。
如果您可以访问 web 服务器中的配置文件,您可以在同一页面上检查 实际运行的配置。
如果您可以访问 airflow 环境中的某台机器,请检查 环境。
在阅读配置文件时,一些有趣的值:
[api]
access_control_allow_headers: 这表示 CORS 的 允许 头部access_control_allow_methods: 这表示 CORS 的 允许方法access_control_allow_origins: 这表示 CORS 的 允许来源auth_backend: 根据文档 可以配置一些选项来控制谁可以访问 API:airflow.api.auth.backend.deny_all: 默认情况下没有人可以访问 APIairflow.api.auth.backend.default: 每个人都可以在没有认证的情况下访问airflow.api.auth.backend.kerberos_auth: 配置 kerberos 认证airflow.api.auth.backend.basic_auth: 用于 基本认证airflow.composer.api.backend.composer_auth: 使用 composer 认证 (GCP) (来自 这里)。composer_auth_user_registration_role: 这表示 composer 用户 在 airflow 中将获得的 角色(默认是 Op)。- 您还可以使用 Python 创建您自己的认证 方法。
google_key_path: GCP 服务账户密钥的路径
[atlas]
password: Atlas 密码username: Atlas 用户名
[celery]
flower_basic_auth: 凭据 (user1:password1,user2:password2)result_backend: 可能包含 凭据 的 Postgres URL。ssl_cacert: cacert 的路径ssl_cert: 证书的路径ssl_key: 密钥的路径
[core]
dag_discovery_safe_mode: 默认启用。在发现 DAG 时,忽略任何不包含字符串DAG和airflow的文件。fernet_key: 用于存储加密变量的密钥(对称)hide_sensitive_var_conn_fields: 默认启用,隐藏连接的敏感信息。security: 使用哪个安全模块(例如 kerberos)
[dask]
tls_ca: ca 的路径tls_cert: 证书的路径tls_key: tls 密钥的路径
[kerberos]
ccache: ccache 文件的路径forwardable: 默认启用
[logging]
google_key_path: GCP JSON 凭据的路径。
[secrets]
backend: 要启用的秘密后端的完整类名backend_kwargs: backend_kwargs 参数被加载到字典中并传递给秘密后端类的 init。
[smtp]
smtp_password: SMTP 密码smtp_user: SMTP 用户
[webserver]
cookie_samesite: 默认是 Lax,因此它已经是最弱的可能值cookie_secure: 在会话 cookie 上设置 安全标志expose_config: 默认是 False,如果为 true,配置 可以从 web 控制台 读取expose_stacktrace: 默认是 True,它将显示 python 回溯(对攻击者可能有用)secret_key: 这是 flask 用于签名 cookie 的密钥(如果您拥有此密钥,您可以 冒充 Airflow 中的任何用户)web_server_ssl_cert: SSL 证书 的 路径web_server_ssl_key: SSL 密钥 的 路径x_frame_enabled: 默认是 True,因此默认情况下不可能发生点击劫持
Web 认证
默认情况下,web 认证 在文件 webserver_config.py 中指定并配置为
AUTH_TYPE = AUTH_DB
这意味着身份验证是针对数据库进行检查的。然而,还有其他配置是可能的,例如
AUTH_TYPE = AUTH_OAUTH
将身份验证留给第三方服务。
然而,还有一个选项可以允许匿名用户访问,将以下参数设置为所需角色:
AUTH_ROLE_PUBLIC = 'Admin'
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

