把 Gemini API Key 当作生产凭证进行保护。
Gemini API Key 泄露后可能消耗项目配额,并带来费用和滥用风险。密钥不应出现在浏览器、移动端安装包、代码仓库、日志或截图中;生产使用前还应配置适用限制、隔离环境并准备可验证的轮换与泄露响应流程。
API Key 四层防护
仅服务端
通过可信后端调用 Gemini,不把底层凭证发送给最终用户。
密钥存储
本地使用环境变量,生产使用托管密钥服务。
访问限制
按当前密钥类型配置 Gemini API 和应用限制。
轮换响应
无停机更换密钥,停用泄露凭证并检查异常用量。
不要在客户端暴露密钥
写入 JavaScript、浏览器扩展、桌面程序或移动应用的密钥都可能被提取。请求应经过能够验证用户和执行业务策略的后端。
- 不要使用公开构建变量,也不要从接口返回密钥。
- 混淆、压缩和隐藏源码映射无法真正保护凭证。
- 后端调用 Gemini 前必须验证并授权每个用户请求。
在源码之外保存密钥
开发时可读取本地环境变量;生产环境应使用平台加密密钥功能或 Google Cloud Secret Manager 等托管服务。
- 忽略本地密钥文件,并扫描提交记录和构建产物。
- 限制能够读取生产密钥的人员和服务身份。
- 调试时不要打印环境变量、请求头或完整配置。
限制密钥并隔离环境
根据 Google AI Studio 对当前密钥类型的指引,配置支持的 API 或应用限制,并为本地、测试和生产使用不同凭证。
- 不要让一个无限制密钥跨多个产品或 Google 服务复用。
- 只授予创建、管理或使用凭证所需的最小项目权限。
- 生产修改限制前先在测试环境验证,避免意外中断。
轮换密钥并处理泄露
密钥轮换应成为演练过的发布流程:生成新密钥、部署验证,再按照当前平台流程停用或删除旧密钥。
- 怀疑泄露时立即更换,不要等待确认已产生滥用。
- 检查配额、费用、日志、仓库、发布包、工单和截图。
- 记录事件,并修复导致密钥外泄的流程问题。
监控用量但不记录秘密
从应用和项目层观察流量与成本。可记录环境、端点、用户或租户、延迟、token、响应状态和安全请求标识。
- 配置费用提醒、配额、用户限速和异常通知。
- 从日志中清除授权值、敏感提示、上传内容和个人信息。
- 关注异常地区、流量、错误峰值和不合常理的持续请求。
Python
示例在 GEMINI_API_KEY 缺失时安全退出,且不会打印密钥;密钥与模型均保留在服务端运行环境。
import os
from google import genai
api_key = os.environ.get("GEMINI_API_KEY")
if not api_key:
raise RuntimeError("GEMINI_API_KEY is not configured")
client = genai.Client(api_key=api_key)
model = os.environ["GEMINI_MODEL"]
response = client.models.generate_content(
model=model,
contents="Return a one-line health-check response.",
)
print(response.text)