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

如何安全地向他人提供谷歌云应用的访问凭证?

谷歌云凭证分发与使用官方推荐方案

核心禁止操作

绝对不要将服务账户密钥打包进JAR包,也不要上传至任何代码仓库。服务账户密钥属于高敏感凭据,一旦泄露,持有者可直接调用对应谷歌云账号下的资源,产生超额费用甚至引发安全风险,该操作完全不符合谷歌云安全最佳实践。
同时也不建议直接共享你个人正在使用的服务账户凭证,避免个人权限关联的资源被误用。

适配你场景的可行方案

方案1:分发最小权限专用服务账户密钥(适合内部小范围可信用户)

这是小范围内部分发应用的最简单实现方式,操作步骤如下:

  • 单独创建一个全新的服务账户,仅为其分配Cloud Translation API 调用者权限,不绑定其他任何谷歌云资源权限
  • 为该专用服务账户生成JSON密钥文件,将该文件分发给需要使用应用的用户
  • 你可以在代码中优化凭证加载逻辑,无需强制用户配置环境变量:优先读取JAR包同目录下的固定名称(比如translation_cred.json)的凭证文件,用Google Cloud Java SDK的ServiceAccountCredentials.fromStream()手动加载即可。用户只需将收到的密钥文件重命名为指定名称,放到JAR同目录就能直接启动应用
  • 若不想修改代码,可告知用户启动时通过命令行传入环境变量即可,命令示例:
    GOOGLE_APPLICATION_CREDENTIALS="/本地/密钥/路径.json" java -jar 你的应用包名.jar

方案2:采用最终用户OAuth授权(无密钥分发场景)

如果不想分发任何固定密钥,可以调整应用的验证逻辑,走OAuth 2.0最终用户授权流程:引导用户在启动应用后使用自己的谷歌账号登录,授权应用调用其账号下的Cloud Translation API权限。该模式下不需要分发任何服务账户凭证,每个用户的调用配额、权限都和其个人谷歌云账号绑定。

额外安全建议

  • 为专用服务账户设置Cloud Translation API的调用配额上限,即使密钥泄露也不会产生过高的额外费用
  • 定期轮换专用服务账户的密钥,旧密钥作废后同步通知所有使用人更换
  • 严格控制专用服务账户的权限范围,不要额外添加任何无关资源的访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:57:03