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

使用MWAA在Airflow运行BigQuery查询时遇Drive凭证权限拒绝问题

问题与解决方法:MWAA Airflow执行依赖Google Sheet的BigQuery查询报403权限错误

问题描述

执行依赖Google Sheet的BigQuery查询时触发权限错误:

google.api_core.exceptions.Forbidden: 403 Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials.

已完成的配置:

  • 基于管理员服务账号配置了可用的Google Cloud Airflow连接
  • 服务账号已获得目标Google Sheet的访问权限
  • Airflow连接作用域已添加https://www.googleapis.com/auth/drive
  • 重新生成并更新了服务账号JSON密钥文件

可能的操作失误及解决方法

1. 检查BigQuery服务账号的Drive权限

BigQuery读取Sheet数据时会调用自身的服务账号,需确保该账号拥有Drive访问权限:

  • 进入Google Cloud控制台IAM页面,找到service-<项目编号>@gcp-sa-bigquery.iam.gserviceaccount.com
  • 为该账号添加Drive File Reader或Drive Viewer角色

2. 确认Airflow连接配置已生效

MWAA更新连接配置后,Worker节点需重新加载配置才能生效:

  • 在MWAA控制台的"环境"页面重启Worker节点
  • 进入Airflow UI的「Admin > Connections」,查看对应Google Cloud连接的Extra字段,确认scope已包含https://www.googleapis.com/auth/drive

3. 验证Google Sheet的共享设置

即使服务账号有Drive权限,仍需确保Sheet已共享给该账号:

  • 打开目标Google Sheet,点击右上角「共享」
  • 添加服务账号邮箱(JSON密钥中client_email字段的值),授予「查看者」权限

4. 确认密钥文件已正确更新

重新生成JSON密钥后,需确保MWAA使用的是最新版本:

  • 检查Airflow连接的「Keyfile Path」或「Keyfile JSON」字段,确认内容已更新
  • 若用Secret Manager存储密钥,需确保Secret内容已更新,且MWAA服务账号有权读取该Secret

5. 检查Drive API是否启用

在Google Cloud控制台API库中,确认Drive API已启用:

  • 搜索「Drive API」,查看状态为「已启用」,若未启用则点击「启用」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:57:30