如何在AWS MWAA中设置GOOGLE_APPLICATION_CREDENTIALS环境变量
在AWS MWAA中配置GOOGLE_APPLICATION_CREDENTIALS以完成Google Cloud身份验证
AWS MWAA并不像GCP Composer那样支持直接在控制台添加环境变量,要配置Google Cloud身份验证,需按以下步骤操作:
1. 导出Google服务账号密钥
从GCP控制台导出服务账号的JSON格式密钥文件,保存为service-account-key.json。
2. 上传密钥到S3存储桶
将密钥文件上传至MWAA环境关联的S3存储桶,建议放在dags/google-credentials/这类专属路径下。同时确保MWAA的执行角色拥有该S3对象的s3:GetObject权限。
3. 配置MWAA的Airflow参数
登录AWS MWAA控制台,进入目标环境详情页,在Airflow configuration options中添加自定义配置:
- 新增配置项:
env_var.GOOGLE_APPLICATION_CREDENTIALS,值设为/usr/local/airflow/dags/google-credentials/service-account-key.json
MWAA会自动同步S3中的
dags目录到Airflow容器内的/usr/local/airflow/dags/路径,因此该路径需与S3上的文件路径对应。
4. 重启MWAA环境
修改配置后必须重启环境才能生效。重启完成后,Airflow中的Google Cloud相关算子(如BigQueryOperator)会自动读取该路径下的密钥文件完成身份验证,你也可以通过os.environ.get('GOOGLE_APPLICATION_CREDENTIALS')在DAG代码中获取该变量。
另外,也可以通过Airflow Variables存储密钥内容,但使用文件路径的方式更契合Google Cloud SDK的默认行为,无需处理JSON内容的转义问题。
内容的提问来源于stack exchange,提问作者pshaw20
相关产品推荐
相关产品推荐

