如何阻止AWS托管Airflow(MWAA)默认生成AIRFLOW_CONN_AWS_DEFAULT环境变量
MWAA 自定义
aws_default连接的可行方案 MWAA 默认会自动注入值为aws://的AIRFLOW_CONN_AWS_DEFAULT环境变量,优先级高于元数据库中存储的连接配置,有三种方案可以解决这个问题:
- 方案1:直接覆盖自动注入的环境变量
在MWAA环境的自定义环境变量配置页,新增名为AIRFLOW_CONN_AWS_DEFAULT的变量,值填写你自定义的完整AWS连接串,格式为aws://<access-key-id>:<secret-access-key>@,手动添加的环境变量优先级高于平台默认注入的变量,会直接生效。 - 方案2:调整连接搜索优先级,优先读取元数据库配置
在MWAA的Airflow自定义配置项中添加如下配置:
配置类别:core
配置项:connection_store_search_order
值:secrets.backend,metastore,env
该配置会修改Airflow读取连接的优先级,先读取机密后端、再读取元数据库存储的连接配置,最后才会读取环境变量中的连接,你在Airflow连接页面配置的aws_default会优先生效。 - 方案3:使用自定义名称的AWS连接
你可以不使用默认的aws_default作为连接名,新建一个自定义名称的AWS连接(例如custom_aws_conn),MWAA不会为自定义名称的连接自动生成对应的环境变量,在DAG中直接使用该自定义连接名即可,完全不会被平台默认配置覆盖。
注意:出于安全考虑,不建议将AK/SK明文写在环境变量或DAG代码中,你可以将自定义连接存储在AWS Secrets Manager中,MWAA默认支持对接Secrets Manager作为机密后端,读取优先级更高且安全性更好。
内容的提问来源于stack exchange,提问作者JamesD
相关产品推荐
相关产品推荐

