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

Airflow:如何加密通过Extra配置创建的连接?

Airflow中加密连接Extra字段凭据的方法

以下是几种解决Extra字段凭据未加密问题的方案:

1. 配置Airflow Fernet加密

Airflow 1.10及以上版本支持用Fernet加密连接中的敏感数据,包括Extra字段。如果你的实例未启用加密,按以下步骤操作:

  • 生成Fernet密钥:执行命令 python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  • 在airflow.cfg文件中找到fernet_key配置项,将生成的密钥填入
  • 重启Airflow所有服务(Webserver、Scheduler、Worker等)
  • 已有的连接需要重新保存一次,触发加密;新创建的连接会自动加密Extra中的敏感值

2. 改用AWS连接专用字段

Airflow的AWS/S3连接类型提供了专门的凭据输入字段,无需将aws_access_key_id和aws_secret_access_key放在Extra中:

  • 创建或编辑连接时,选择连接类型为AWS或S3
  • 在界面上的Access Key ID和Secret Access Key输入框直接填写凭据
  • 这些字段会被自动加密,Airflow UI中不会显示明文

3. 集成外部 Secrets 管理器

避免在Airflow连接中存储明文凭据,改用外部 secrets 管理器存储,让Airflow动态拉取:

  • 支持的管理器包括AWS Secrets Manager、HashiCorp Vault等
  • 以AWS Secrets Manager为例,修改airflow.cfg配置:
    [secrets]
    backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
    backend_kwargs = {"connections_prefix": "airflow/connections"}
    
  • 在AWS Secrets Manager中创建路径为airflow/connections/<你的连接ID>的秘密,存储包含凭据的JSON(比如{"aws_access_key_id": "xxx", "aws_secret_access_key": "yyy"})
  • Airflow会自动从Secrets Manager读取连接信息,UI中不会显示实际凭据

4. 限制UI访问权限

通过Airflow的RBAC权限系统,仅授予必要用户连接的查看/编辑权限:

  • 将连接的访问权限限制给Admin角色或特定的权限组
  • 普通用户无法查看连接的敏感内容,降低暴露风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:05:18