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