跳到主内容

密钥管理器

LiteLLM 支持从 Azure Key Vault、Google Secret Manager、Hashicorp Vault 和 AWS Secret Manager 读取密钥(例如 OPENAI_API_KEY写入密钥(例如虚拟密钥)

支持的密钥管理器

AWS Secret Manager

将您的代理密钥存储在 AWS Secret Manager 中。

功能支持描述
读取密钥读取密钥,例如 OPENAI_API_KEY
写入密钥存储密钥,例如 虚拟密钥

代理用法

  1. 在您的环境中保存 AWS 凭证
os.environ["AWS_ACCESS_KEY_ID"] = ""  # Access key
os.environ["AWS_SECRET_ACCESS_KEY"] = "" # Secret access key
os.environ["AWS_REGION_NAME"] = "" # us-east-1, us-east-2, us-west-1, us-west-2
  1. 在配置中启用 AWS Secret Manager。
general_settings:
master_key: os.environ/litellm_master_key
key_management_system: "aws_secret_manager" # 👈 KEY CHANGE
key_management_settings:
hosted_keys: ["litellm_master_key"] # 👈 Specify which env keys you stored on AWS

  1. 运行代理
litellm --config /path/to/config.yaml

在单个 AWS Secret 中使用 K/V 对

您可以使用 primary_secret_name 参数从单个 AWS Secret 中读取多个密钥

general_settings:
key_management_system: "aws_secret_manager"
key_management_settings:
hosted_keys: [
"OPENAI_API_KEY_MODEL_1",
"OPENAI_API_KEY_MODEL_2",
]
primary_secret_name: "litellm_secrets" # 👈 Read multiple keys from one JSON secret

primary_secret_name 允许您将单个 AWS Secret 作为 JSON 对象读取多个密钥。例如,“litellm_secrets”将包含

{
"OPENAI_API_KEY_MODEL_1": "sk-key1...",
"OPENAI_API_KEY_MODEL_2": "sk-key2..."
}

这减少了您需要管理的 AWS Secret 数量。

Hashicorp Vault

功能支持描述
读取密钥读取密钥,例如 OPENAI_API_KEY
写入密钥存储密钥,例如 虚拟密钥

Hashicorp Vault 读取密钥

步骤 1. 在您的环境中添加 Hashicorp Vault 详细信息

LiteLLM 支持两种身份验证方法

  1. TLS 证书认证 - HCP_VAULT_CLIENT_CERTHCP_VAULT_CLIENT_KEY
  2. 令牌认证 - HCP_VAULT_TOKEN
HCP_VAULT_ADDR="https://test-cluster-public-vault-0f98180c.e98296b2.z1.hashicorp.cloud:8200"
HCP_VAULT_NAMESPACE="admin"

# Authentication via TLS cert
HCP_VAULT_CLIENT_CERT="path/to/client.pem"
HCP_VAULT_CLIENT_KEY="path/to/client.key"

# OR - Authentication via token
HCP_VAULT_TOKEN="hvs.CAESIG52gL6ljBSdmq*****"


# OPTIONAL
HCP_VAULT_REFRESH_INTERVAL="86400" # defaults to 86400, frequency of cache refresh for Hashicorp Vault

步骤 2. 添加到代理 config.yaml

general_settings:
key_management_system: "hashicorp_vault"

# [OPTIONAL SETTINGS]
key_management_settings:
store_virtual_keys: true # OPTIONAL. Defaults to False, when True will store virtual keys in secret manager
prefix_for_stored_virtual_keys: "litellm/" # OPTIONAL. If set, this prefix will be used for stored virtual keys in the secret manager
access_mode: "read_and_write" # Literal["read_only", "write_only", "read_and_write"]

步骤 3. 启动 + 测试代理

$ litellm --config /path/to/config.yaml

快速测试代理

工作原理

读取密钥 LiteLLM 使用以下 URL 格式从 Hashicorp Vault 的 KV v2 引擎读取密钥

{VAULT_ADDR}/v1/{NAMESPACE}/secret/data/{SECRET_NAME}

例如,如果您有

  • HCP_VAULT_ADDR="https://vault.example.com:8200"
  • HCP_VAULT_NAMESPACE="admin"
  • 密钥名称: AZURE_API_KEY

LiteLLM 将查找

https://vault.example.com:8200/v1/admin/secret/data/AZURE_API_KEY

期望的密钥格式

LiteLLM 要求所有密钥都存储为 JSON 对象,其中包含一个名为 key 的字段,用于存放密钥值。

例如,对于 AZURE_API_KEY,密钥应存储为

{
"key": "sk-1234"
}

写入密钥

当在 LiteLLM 上创建/删除虚拟密钥时,LiteLLM 将自动在 Hashicorp Vault 中创建/删除该密钥。

  • 通过 LiteLLM 管理界面或 API 在 LiteLLM 上创建虚拟密钥
  • 在 Hashicorp Vault 中检查密钥

LiteLLM 将密钥存储在 prefix_for_stored_virtual_keys 路径下(默认:litellm/

Azure Key Vault

与 LiteLLM 代理服务器一起使用

  1. 安装代理依赖项
pip install 'litellm[proxy]' 'litellm[extra_proxy]'
  1. 在您的环境中保存 Azure 详细信息
export["AZURE_CLIENT_ID"]="your-azure-app-client-id"
export["AZURE_CLIENT_SECRET"]="your-azure-app-client-secret"
export["AZURE_TENANT_ID"]="your-azure-tenant-id"
export["AZURE_KEY_VAULT_URI"]="your-azure-key-vault-uri"
  1. 添加到代理 config.yaml
model_list: 
- model_name: "my-azure-models" # model alias
litellm_params:
model: "azure/<your-deployment-name>"
api_key: "os.environ/AZURE-API-KEY" # reads from key vault - get_secret("AZURE_API_KEY")
api_base: "os.environ/AZURE-API-BASE" # reads from key vault - get_secret("AZURE_API_BASE")

general_settings:
key_management_system: "azure_key_vault"

您现在可以通过启动代理来测试此功能

litellm --config /path/to/config.yaml

快速测试代理

Google Secret Manager

支持 Google Secret Manager

  1. 在您的环境中保存 Google Secret Manager 详细信息
GOOGLE_SECRET_MANAGER_PROJECT_ID="your-project-id-on-gcp" # example: adroit-crow-413218

可选参数

export GOOGLE_SECRET_MANAGER_REFRESH_INTERVAL = ""            # (int) defaults to 86400
export GOOGLE_SECRET_MANAGER_ALWAYS_READ_SECRET_MANAGER = "" # (str) set to "true" if you want to always read from google secret manager without using in memory caching. NOT RECOMMENDED in PROD
  1. 添加到代理 config.yaml
model_list:
- model_name: fake-openai-endpoint
litellm_params:
model: openai/fake
api_base: https://exampleopenaiendpoint-production.up.railway.app/
api_key: os.environ/OPENAI_API_KEY # this will be read from Google Secret Manager

general_settings:
key_management_system: "google_secret_manager"

您现在可以通过启动代理来测试此功能

litellm --config /path/to/config.yaml

快速测试代理

Google Key Management Service

在代理上使用 Google KMS 加密的密钥

步骤 1. 将密钥添加到 env

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"
export GOOGLE_KMS_RESOURCE_NAME="projects/*/locations/*/keyRings/*/cryptoKeys/*"
export PROXY_DATABASE_URL_ENCRYPTED=b'\n$\x00D\xac\xb4/\x8e\xc...'

步骤 2: 更新配置

general_settings:
key_management_system: "google_kms"
database_url: "os.environ/PROXY_DATABASE_URL_ENCRYPTED"
master_key: sk-1234

步骤 3: 启动 + 测试代理

$ litellm --config /path/to/config.yaml

并在另一个终端中

$ litellm --test 

快速测试代理

AWS Key Management V1

提示

[BETA]AWS Key Management v2 在企业版层级提供。请点击此处查看文档

使用 AWS KMS 在环境中存储代理主密钥的哈希副本。

export LITELLM_MASTER_KEY="djZ9xjVaZ..." # 👈 ENCRYPTED KEY
export AWS_REGION_NAME="us-west-2"
general_settings:
key_management_system: "aws_kms"
key_management_settings:
hosted_keys: ["LITELLM_MASTER_KEY"] # 👈 WHICH KEYS ARE STORED ON KMS

查看解密代码

所有密钥管理器设置

所有与密钥管理相关的设置

general_settings:
key_management_system: "aws_secret_manager" # REQUIRED
key_management_settings:

# Storing Virtual Keys Settings
store_virtual_keys: true # OPTIONAL. Defaults to False, when True will store virtual keys in secret manager
prefix_for_stored_virtual_keys: "litellm/" # OPTIONAL.I f set, this prefix will be used for stored virtual keys in the secret manager

# Access Mode Settings
access_mode: "write_only" # OPTIONAL. Literal["read_only", "write_only", "read_and_write"]. Defaults to "read_only"

# Hosted Keys Settings
hosted_keys: ["litellm_master_key"] # OPTIONAL. Specify which env keys you stored on AWS

# K/V pairs in 1 AWS Secret Settings
primary_secret_name: "litellm_secrets" # OPTIONAL. Read multiple keys from one JSON secret on AWS Secret Manager