FAB 认证管理器 UI 安全选项¶
注意
本指南仅适用于 FAB 认证管理器 UI 页面。这些页面可在菜单的“安全”类别下访问。
在其他网站的 Web 框架中渲染 Airflow UI¶
默认情况下,可以在 Web 框架中使用 Airflow。要禁用此功能(并防止点击劫持攻击),请进行如下设置
[webserver]
x_frame_enabled = False
禁用部署暴露警告¶
当最近有请求访问 /robots.txt
时,Airflow 会发出警告。要禁用此警告,请按如下设置 warn_deployment_exposure
为 False
[webserver]
warn_deployment_exposure = False
敏感变量字段¶
根据变量名被视为“敏感”的变量值将自动在 UI 中被屏蔽。有关更多详情,请参阅 屏蔽敏感数据。
SSL¶
可以通过提供证书和密钥来启用 SSL。启用后,请务必在浏览器中使用“https://”。
[webserver]
web_server_ssl_cert = <path to cert>
web_server_ssl_key = <path to key>
启用 SSL 不会自动更改 Web 服务器端口。如果您想使用标准端口 443,也需要进行配置。请注意,监听端口 443 需要超级用户权限(或 Linux 上的 cap_net_bind_service)。
# Optionally, set the server to listen on the standard SSL port.
web_server_port = 443
base_url = http://<hostname or IP>:443
使用 SSL 启用 CeleryExecutor。确保您正确生成客户端和服务器证书及密钥。
[celery]
ssl_active = True
ssl_key = <path to key>
ssl_cert = <path to cert>
ssl_cacert = <path to cacert>
速率限制¶
Airflow 可以配置为限制在给定时间窗口内的认证请求数量。我们使用 Flask-Limiter 来实现此功能,默认情况下,Airflow 使用每 Web 服务器默认限制为每 40 秒固定窗口 5 个请求。默认情况下,您运行的 gunicorn 进程之间不使用共同的速率限制存储,因此速率限制分别应用于每个进程,假设 gunicorn 在单个 Web 服务器实例和默认 4 个 gunicorn 工作进程下随机分发请求,则有效速率限制约为每 40 秒窗口 5 x 4 = 20 个请求。但是,您可以通过在 webserver_config.py
中设置 RATELIMIT_*
配置来使用速率限制存储,从而配置在进程之间共享速率限制。例如,要使用 Redis 作为速率限制存储,您可以使用以下配置(您需要将 redis_host
设置为您的 Redis 实例)
RATELIMIT_STORAGE_URI = "redis://redis_host:6379/0"
您还可以在 webserver_config.py
中配置其他速率限制设置 - 有关更多详情,请参阅 Flask Limiter 速率限制配置。