API Key 安全管理最佳实践

API Key 是访问 AI 服务的凭证,一旦泄露可能导致巨额费用和数据安全问题。本文介绍 API Key 安全管理的最佳实践,包括安全存储、访问控制、密钥轮换和泄露应急处理。

API Key 泄露的风险

安全存储

环境变量(基础方案)

# .env 文件(必须加入 .gitignore)
OPENAI_API_KEY=sk-xxx
ANTHROPIC_API_KEY=sk-ant-xxx

# Python 中读取
import os
api_key = os.environ.get("OPENAI_API_KEY")
注意:绝对不要将 API Key 硬编码在源代码中!以下都是危险做法:
# 错误示范 - 永远不要这样做!
client = OpenAI(api_key="sk-xxxxxxxxxxxx")  # 硬编码
API_KEY = "sk-xxxxxxxxxxxx"  # 常量定义

密钥管理服务(推荐)

生产环境应使用专业的密钥管理服务:

# AWS Secrets Manager 示例
import boto3
import json

def get_api_key(secret_name):
    client = boto3.client('secretsmanager')
    response = client.get_secret_value(SecretId=secret_name)
    secret = json.loads(response['SecretString'])
    return secret['api_key']

api_key = get_api_key("prod/openai-api-key")

.gitignore 配置

# .gitignore - 必须包含以下内容
.env
.env.local
.env.production
*.key
*.pem
config/secrets.*
credentials.json

访问控制

最小权限原则

API Key 权限管理

# API Key 管理表设计
"""
api_keys 表:
- id: 唯一标识
- key_hash: Key 的 SHA-256 哈希(不存明文!)
- name: Key 名称/用途
- owner: 所有者
- permissions: 允许的操作
- rate_limit: 速率限制
- monthly_budget: 月度预算上限
- expires_at: 过期时间
- created_at: 创建时间
- last_used_at: 最后使用时间
"""
提示:claude4u.com(轻舟 AI)中转服务内置了完善的 API Key 管理功能,包括用量限制、模型权限控制、使用统计等。你只需管理一个中转 Key,由平台统一管理上游 API Key,大幅降低密钥管理复杂度。

密钥轮换

定期轮换 API Key 是安全运营的基本要求:

  1. 生成新 Key:在平台上创建新的 API Key
  2. 灰度切换:逐步将流量切换到新 Key
  3. 验证新 Key:确认新 Key 工作正常
  4. 废弃旧 Key:删除/禁用旧 Key
#!/bin/bash
# 自动化密钥轮换脚本示例
echo "开始 API Key 轮换..."

# 1. 从密钥管理服务获取新 Key
NEW_KEY=$(aws secretsmanager get-secret-value \
  --secret-id prod/openai-api-key-new \
  --query SecretString --output text | jq -r '.api_key')

# 2. 更新应用配置
kubectl set env deployment/my-app OPENAI_API_KEY="$NEW_KEY"

# 3. 等待滚动更新完成
kubectl rollout status deployment/my-app

# 4. 验证新 Key 可用
curl -s https://claude4u.com/v1/models \
  -H "Authorization: Bearer $NEW_KEY" | jq '.data | length'

echo "轮换完成"

推荐轮换周期

泄露应急处理

发现 API Key 泄露后的应急步骤:

  1. 立即撤销:在平台上删除/禁用泄露的 Key
  2. 生成新 Key:创建新的 API Key 并更新到所有服务
  3. 审计日志:检查泄露期间的 API 调用记录
  4. 评估影响:计算产生的费用和数据风险
  5. 修复漏洞:找到泄露原因并修复
  6. 通知相关方:如果涉及客户数据,需要通知受影响的用户

常见泄露途径

自动化安全检查

# 使用 git-secrets 防止意外提交
# 安装
brew install git-secrets

# 配置规则
git secrets --register-aws
git secrets --add 'sk-[a-zA-Z0-9]{48}'  # OpenAI Key 格式
git secrets --add 'sk-ant-[a-zA-Z0-9-]{95}'  # Anthropic Key 格式

# 扫描历史提交
git secrets --scan-history
注意:如果你的 API Key 已经被提交到 Git 历史中,即使删除文件也不安全。需要使用 git filter-branch 或 BFG Repo-Cleaner 清理历史记录,并立即轮换 Key。

总结

API Key 安全管理不能掉以轻心。推荐使用 claude4u.com(轻舟 AI)中转服务简化密钥管理,平台内置 Key 加密存储、用量监控和权限控制,让你专注于业务开发而非安全基础设施。

Start Using 轻舟 AI

Stable, fast AI API relay — supports Claude, OpenAI, Gemini and more

Sign Up Now