Airflow Configuration

从零到英雄学习 AWS 黑客技术 htARTE (HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

配置文件

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: 默认情况下没有人可以访问 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 服务账户密钥的路径

[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 时,忽略任何不包含字符串 DAGairflow 的文件。

  • 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'
从零到英雄学习AWS黑客技术,通过 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式:

Last updated