You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何隐藏Apache Airflow连接与变量模块中的敏感数据?

解决Airflow Web界面显示敏感AWS密钥的问题

刚好处理过类似的需求,既然已经启用了身份认证,接下来可以通过以下几种方式彻底屏蔽敏感密钥的显示,同时保证Airflow正常使用这些凭证:

1. 启用Airflow内置的加密与敏感字段隐藏

Airflow自带Fernet加密功能,不仅能加密存储敏感数据,还会在Web界面自动屏蔽这些字段的明文显示:

  • 生成Fernet密钥:在终端执行以下命令生成加密密钥:
    python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
    
  • 配置Airflow:打开airflow.cfg文件,找到[core]部分,设置:
    fernet_key = 你刚才生成的密钥字符串
    hide_sensitive_variable_fields = True
    
  • 重启服务:重启Airflow Webserver和Scheduler,使配置生效:
    airflow webserver restart
    airflow scheduler restart
    
    完成后,连接模块里的Access Key、Secret Key等敏感字段会被替换为***,存储在数据库里的也是加密后的内容。

2. 使用AWS Secrets Manager托管敏感凭证

如果不想把任何敏感信息存在Airflow数据库里,可以直接用AWS Secrets Manager来存储AWS密钥,Airflow只存储凭证的引用:

  • 在AWS Secrets Manager中创建一个包含aws_access_key_id和aws_secret_access_key的秘密;
  • 在Airflow的AWS连接中,不需要填写Login和Password字段,而是在Extra里添加以下内容:
    {"aws_secret_arn": "arn:aws:secretsmanager:你的区域:账号ID:secret:你的秘密名称"}
    
    这样Airflow会自动从Secrets Manager拉取密钥,Web界面里只会显示ARN,完全看不到实际的密钥内容。

3. 验证配置效果

设置完成后,进入Airflow Webserver的连接模块,查看对应的AWS连接:

  • 敏感字段(如Password、Extra里的密钥)会显示为***;
  • 如果使用了Secrets Manager,Extra里只有ARN信息,没有明文密钥。

注意:如果你的Airflow版本低于2.0,hide_sensitive_variable_fields参数可能不存在,建议升级到稳定的2.x版本,获得更好的安全支持。

内容的提问来源于stack exchange,提问作者MJK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:27:52