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

能否从Google Cloud普通用户生成JSON密钥文件用于Airflow认证?

解决办法

方法1:用用户账号的OAuth2刷新令牌替代ServiceAccount密钥

  • 针对Google Cloud场景,你可以生成test@gmail.com账号的刷新令牌来完成认证:
    1. 去Google Cloud控制台创建一个桌面应用类型的OAuth客户端ID。
    2. 在本地或Airflow服务器上执行gcloud auth application-default login,用test@gmail.com账号登录,完成后会生成application_default_credentials.json文件,里面包含长期有效的刷新令牌。
    3. 在Airflow的Google Cloud连接配置里,指定这个JSON文件的路径,或者直接把文件内容粘贴到对应的字段中,Airflow会自动用这个令牌完成认证。
  • 注意:只要你不主动撤销账号权限,刷新令牌一直有效,但要保证Airflow环境能正常访问Google的认证服务器。

方法2:利用工作负载身份(Airflow跑在Google Cloud上时可用)

  • 如果你的Airflow部署在GKE、GCE这类Google Cloud资源上,可以直接给运行Airflow的资源绑定IAM权限,不用额外密钥:
    1. 给Airflow所在的GCE实例或者GKE节点的服务账号,授予目标存储桶的访问角色(比如roles/storage.objectAdmin)。
    2. 在Airflow连接配置里选择自动检测认证方式,Airflow会自动继承所在资源的身份去访问存储桶。

方法3:申请使用现有ServiceAccount的密钥

  • 如果团队里已经有具备存储桶访问权限的ServiceAccount,不用自己创建,直接找管理员申请它的JSON密钥文件,然后在Airflow连接里配置这个密钥就行。

方法4:直接配置用户账号的OAuth2信息(部分场景支持)

  • 有些版本的Airflow Google Cloud连接支持直接用OAuth2信息认证:
    1. 在连接配置里选择OAuth2认证类型。
    2. 填入之前生成的OAuth客户端ID、客户端密钥,还有用gcloud命令生成的刷新令牌,也能完成认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:03:09