旋转主密钥
以下是旋转主密钥的推荐步骤。
1. 备份数据库 在加密/解密过程中发生任何错误时,这能让您在不受影响的情况下恢复到当前状态。
2. 使用新的主密钥调用 /key/regenerate
curl -L -X POST 'http://localhost:4000/key/regenerate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"key": "sk-1234",
"new_master_key": "sk-PIp1h0RekR"
}'
这将使用新的主密钥重新加密 Proxy_ModelTable 中的所有模型。
您的旧主密钥将无法解密新值,预计会在日志中开始看到解密错误。
raise Exception("Unable to decrypt value={}".format(v))
Exception: Unable to decrypt value=<new-encrypted-value>
3. 更新 LITELLM_MASTER_KEY
在您的环境变量中,将 LITELLM_MASTER_KEY 的值更新为步骤 2 中的 new_master_key。
这确保了从数据库解密使用的密钥是新的密钥。
4. 测试
使用 litellm 密钥(新主密钥或虚拟密钥)对存储在代理上的模型发起测试请求,查看是否成功。
curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-d '{
"model": "gpt-4o-mini", # 👈 REPLACE with 'public model name' for any db-model
"messages": [
{
"content": "Hey, how's it going",
"role": "user"
}
],
}'