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

Google Cloud平台/API项目凭证疑似泄露,如何合规上传GitHub供用户使用?

解决Google Sheets API凭证泄露问题并让用户正常使用应用

绝对别把JSON凭证文件上传到GitHub——这玩意儿里藏着GCP服务账号的敏感密钥,一旦公开轻则API配额被滥用,重则关联的数据遭泄露,这就是你收到提醒的原因。先立刻从仓库删除这个文件,再去GCP控制台旋转该凭证的密钥,避免已经被爬取的密钥继续被恶意使用。

下面分场景给你正确的实现方案:

  • 面向公开用户的应用:让用户自行生成凭证(推荐)
    引导用户自己走流程获取专属凭证,步骤清晰易懂:

    1. 登录Google Cloud Console,新建一个项目
    2. 在项目内启用Google Sheets API
    3. 根据应用类型创建凭证:桌面/移动端选OAuth客户端ID,后端服务选服务账号(提醒用户自行保管好这个凭证)
    4. 让用户下载凭证文件后,在你的应用内提示他们将文件放到指定路径,或手动输入凭证里的关键信息
      你的代码要做的是读取用户提供的凭证,而非硬编码你自己的凭证。
  • 服务端应用:用环境变量存储凭证信息
    不要上传整个JSON文件,把里面的敏感字段(比如private_key、client_email、project_id)拆分出来,设置为环境变量。代码里直接读取环境变量构建凭证,举个Python的示例:

    import os
    from google.oauth2.service_account import Credentials
    
    creds = Credentials.from_service_account_info({
        "type": "service_account",
        "project_id": os.getenv("GCP_PROJECT_ID"),
        "private_key_id": os.getenv("GCP_PRIVATE_KEY_ID"),
        "private_key": os.getenv("GCP_PRIVATE_KEY").replace("\\n", "\n"),
        "client_email": os.getenv("GCP_CLIENT_EMAIL"),
        # 其他必要字段照着原JSON里的内容补充
    })
    

    同时在仓库里放置一个.env.example文件,列出需要的环境变量名,方便用户参考配置自己的环境变量。

  • 必须添加.gitignore规则
    在仓库根目录创建.gitignore文件,加入以下内容,防止后续误传敏感文件:

    # GCP凭证文件
    *.json
    # 环境变量配置文件
    .env
    

    确保所有敏感配置都被排除在版本控制之外。

  • 桌面应用的更优方案:采用OAuth 2.0授权流程
    如果是桌面端应用,别用服务账号凭证了,改用OAuth 2.0授权。用户通过浏览器登录自己的Google账号完成授权,应用获取临时访问令牌,无需用户下载和保管JSON文件,安全性更高,用户体验也更流畅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:03:22