Airflow Configuration
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
Apache Airflow 在所有 Airflow 机器上生成一个名为 airflow.cfg
的 配置文件,该文件位于 Airflow 用户的主目录中。此配置文件包含配置信息,并且 可能包含有趣和敏感的信息。
访问此文件有两种方式:通过攻陷某个 Airflow 机器,或访问 Web 控制台。
请注意,配置文件中的值 可能不是实际使用的值,因为您可以通过设置环境变量(如 AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
)来覆盖它们。
如果您可以访问 Web 服务器中的配置文件,您可以在同一页面上检查 实际运行的配置。 如果您可以访问 Airflow 环境中的某台机器,请检查 环境。
在阅读配置文件时,一些有趣的值:
access_control_allow_headers
:这表示 CORS 的 允许 头部
access_control_allow_methods
:这表示 CORS 的 允许方法
access_control_allow_origins
:这表示 CORS 的 允许来源
auth_backend
:根据文档 可以配置一些选项来决定谁可以访问 API:
airflow.api.auth.backend.deny_all
:默认情况下,没人可以访问 API
airflow.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 服务账户密钥 的路径
password
:Atlas 密码
username
:Atlas 用户名
flower_basic_auth
:凭据(user1:password1,user2:password2)
result_backend
:可能包含 凭据 的 Postgres URL。
ssl_cacert
:CA 证书的路径
ssl_cert
:证书的路径
ssl_key
:密钥的路径
dag_discovery_safe_mode
:默认启用。在发现 DAG 时,忽略任何不包含字符串 DAG
和 airflow
的文件。
fernet_key
:用于存储加密变量的密钥(对称)
hide_sensitive_var_conn_fields
:默认启用,隐藏连接的敏感信息。
security
:使用哪个安全模块(例如 Kerberos)
tls_ca
:CA 的路径
tls_cert
:证书的路径
tls_key
:TLS 密钥的路径
ccache
:ccache 文件的路径
forwardable
:默认启用
google_key_path
:指向 GCP JSON 凭据的路径。
backend
:要启用的秘密后端的完整类名
backend_kwargs
:backend_kwargs 参数被加载到字典中并传递给秘密后端类的 init。
smtp_password
:SMTP 密码
smtp_user
:SMTP 用户
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 认证 在文件 webserver_config.py
中指定并配置为
这意味着身份验证是针对数据库进行检查的。然而,还有其他配置是可能的,例如
将身份验证委托给第三方服务。
然而,还有一个选项可以允许匿名用户访问,将以下参数设置为所需角色:
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)