Airflow Configuration
配置文件
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
中指定,并配置为
这意味着身份验证是针对数据库进行检查的。然而,还有其他可能的配置,例如
保留第三方服务认证。
但是,也有一个选项可以允许匿名用户访问,将以下参数设置为所需角色:
Last updated