Airflow Configuration
Configuration File
Apache Airflow 在所有 Airflow 机器上生成一个 config file,称为 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 上设置 secure flagexpose_config
:默认是 False,如果为 true,配置可以从 Web 控制台 读取expose_stacktrace
:默认是 True,它将显示 python tracebacks(对攻击者可能有用)secret_key
:这是 flask 用于签名 cookie 的密钥(如果您拥有此密钥,可以 冒充 Airflow 中的任何用户)web_server_ssl_cert
:指向 SSL 证书 的 路径web_server_ssl_key
:指向 SSL 密钥 的 路径x_frame_enabled
:默认是 True,因此默认情况下不可能发生点击劫持
Web Authentication
默认情况下,Web 身份验证 在文件 webserver_config.py
中指定,并配置为
这意味着身份验证是针对数据库进行检查的。然而,还有其他配置是可能的,例如
将身份验证委托给第三方服务。
然而,还有一个选项可以允许匿名用户访问,将以下参数设置为所需角色:
Last updated