API Key 术语解释:智能体安全中的密钥风险
API Key 是验证智能体访问外部服务的凭据。了解它是什么、泄露的危险,以及如何保护它。
API Key
**一句话定义:**API Key 是用来验证你的智能体(或应用)访问外部服务身份的密钥凭据。
为什么对智能体特别重要
工具型智能体经常需要 API Key 来访问外部服务:数据库、AI 模型、支付处理器、邮件服务商。
API Key 泄露意味着:
| 风险 | 影响 |
|---|---|
| 未授权访问 | 攻击者使用你的服务配额 |
| 经济损失 | 账单记在你头上 |
| 数据泄露 | 访问密钥可触及的所有数据 |
| 声誉损害 | 以你的名义执行操作 |
真实案例
API Key 泄露很常见,代价也很高:
- GitHub 扫描每天能发现数千个暴露的密钥
- 云服务商密钥曾导致六位数的挖矿账单
- AI API 密钥几分钟就能耗尽额度
如何保护 API Key
步骤 1:永远不要硬编码
❌ API_KEY = "sk-abc123..." // 写在代码里
✅ API_KEY = process.env.API_KEY // 从环境变量读取步骤 2:使用密钥管理
- 本地开发用环境变量
- 生产环境用密钥管理器(AWS Secrets Manager、HashiCorp Vault)
- 永远不要把
.env文件提交到版本控制
步骤 3:限制权限范围
很多服务允许创建受限密钥:
- 只读 vs 读写
- 仅限特定资源
- 速率限制和配额
步骤 4:定期轮换
- 设置轮换计划(30-90 天)
- 怀疑泄露时立即吊销
- 监控异常使用
步骤 5:监控使用情况
- 启用 API Key 的日志记录
- 设置异常模式告警
- 定期审查访问日志
常见错误
| 错误 | 更好的做法 |
|---|---|
| 把密钥提交到 git | 使用 .gitignore 和环境变量 |
| 在聊天中分享密钥 | 使用安全的密钥分享工具 |
| 到处用同一个密钥 | 每个环境/服务创建单独的密钥 |
| 从不轮换密钥 | 安排定期轮换 |
智能体特有的风险
智能体带来了独特的 API Key 风险:
- 提示词注入可能诱骗智能体泄露密钥
- 日志暴露可能在调试输出中捕获密钥
- 权限过大的密钥给智能体超出需要的访问权限
对智能体的 API Key 应用最小权限原则。