如何在Apache Airflow中仅启用TLSv1.2

时间:2019-09-11 06:51:52

标签: airflow

如何仅在Apache Airflow Service中启用TLSv1.2。根据组织的安全策略,要求使用TLSv1.2进行支持SSL / TLS流量的连接。我在文档中找不到任何建议,可以配置安全连接使用的基础SSL协议并禁用3DES套件密码(SWEET 32漏洞)。请分享对我有帮助的文档?

2 个答案:

答案 0 :(得分:1)

为Gunicorn设置环境变量(Airflow使用Gunicorn作为Web服务器):

对于 TLS 1.2

GUNICORN_CMD_ARGS="--ssl-version=5"

如果您也想更改密码,则可以将其添加到上述环境变量中。

示例:

GUNICORN_CMD_ARGS="--ssl-version=5 --ciphers=TLSv1.2"

文档:https://docs.gunicorn.org/en/stable/settings.html

我们在一个项目中使用了--ciphers=EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:DHE+RSA+AES

答案 1 :(得分:0)

在systemd单元服务的环境文件中设置GUNICORN变量也很方便。

气流环境文件/opt/airflow/airflow_env

的示例

PATH=/opt/airflow/.local/bin:/usr/bin:/usr/local/bin:/bin:$PATH AIRFLOW_HOME=/opt/airflow/airflow 
PYTHONPATH=/opt/rh/rh-python36 
AIRFLOW_GPL_UNIDECODE=yes 
GUNICORN_CMD_ARGS="--ssl-version=5 --ciphers=TLSv1.2"

systemd单元服务的示例,这里我们使用在/etc/systemd/system/multi-user.target.wants/airflow-webserver.service创建的airflow-webserver单元服务:-

[Unit]
Description=Airflow webserver daemon
After=network.target mysqld.service redis.service
Wants=mysqld.service redis.service

[Service]
EnvironmentFile=/opt/airflow/airflow_env
User=airflow
Group=airflow
Type=simple
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /run/airflow/
ExecStartPre=/bin/chown -R airflow:airflow /run/airflow/
ExecStart=/opt/airflow/.local/bin/airflow webserver --pid /run/airflow/webserver.pid -l /var/log/airflow
Restart=on-failure
RestartSec=10s
PrivateTmp=true

[Install]
WantedBy=multi-user.target