AI Agent密钥管理:API Key不要写在代码里
🩺 摘要
API Key硬编码在代码里→不小心传到GitHub→被人偷去调用→下个月收到5万账单。这不是假设,是真实发生过的事。
📝 详情
2025年一起著名的安全事故:某公司的API Key泄露在GitHub公开仓库里,被人薅了200万次API调用,账单$47,000。
密钥管理的三个原则
1. 不要硬编码 API Key、数据库密码、Token——永远不要写在代码里。
# ❌ 错误
api_key = "sk-xxxxx"
# ✅ 正确
import os
api_key = os.getenv("OPENAI_API_KEY")
2. 最小权限 Agent只需要读权限的不要给写权限。只需要调用一个API的不要给所有API的Key。
3. 定期轮换 每90天换一次Key。即使泄露了,影响范围也有限。
存储方案
| 环境 | 方案 |
|---|---|
| 开发 | .env文件(不进Git) |
| 生产 | 环境变量 / Vault / AWS Secrets Manager |
总结
密钥管理的第一条规则:永远不要信任代码里写的东西。 环境变量、密钥管理服务、定期轮换——这三件事做到,密码泄露的风险就降低90%。
多环境配置
# config.yaml
development:
openai_key: ${DEV_OPENAI_KEY}
redis_url: localhost:6379
production:
openai_key: ${PROD_OPENAI_KEY}
redis_url: ${REDIS_URL}
不要在代码里判断环境。用配置管理工具(比如python-decouple或pydantic-settings)自动注入。
密钥轮换脚本
#!/bin/bash
# 每90天执行一次
NEW_KEY=$(openssl rand -hex 32)
export API_KEY=$NEW_KEY
echo "Key rotated at $(date)" >> /var/log/key-rotation.log
💬 评论 (0)