AI Agent密钥管理:API Key不要写在代码里

📘 AI教程 💬 🔥 Trending

🩺 摘要

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