跳到主要内容

旋转主密钥

以下是旋转主密钥的推荐步骤。

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"
}
],
}'