Geheimnisverwaltung
✨ Dies ist eine Enterprise-Funktion
LiteLLM unterstützt das Lesen von Geheimnissen (z. B. OPENAI_API_KEY) und das Schreiben von Geheimnissen (z. B. Virtuelle Schlüssel) aus Azure Key Vault, Google Secret Manager, Hashicorp Vault und AWS Secret Manager.
Unterstützte Geheimnisverwaltungen
- AWS Key Management Service
- AWS Secret Manager
- Azure Key Vault
- Google Secret Manager
- Google Key Management Service
- Hashicorp Vault
AWS Secret Manager
Speichern Sie Ihre Proxy-Schlüssel in AWS Secret Manager.
| Feature | Unterstützung | Beschreibung |
|---|---|---|
| Geheimnisse lesen | ✅ | Geheimnisse lesen, z. B. OPENAI_API_KEY |
| Geheimnisse schreiben | ✅ | Geheimnisse speichern, z. B. Virtuelle Schlüssel |
Proxy-Nutzung
- AWS-Anmeldeinformationen in Ihrer Umgebung speichern
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
- AWS Secret Manager in der Konfiguration aktivieren.
- Schlüssel von AWS Secret Manager lesen
- Virtuelle Schlüssel an AWS Secret Manager schreiben
- Schlüssel mit AWS Secret Manager lesen + schreiben
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
Dies speichert nur virtuelle Schlüssel in AWS Secret Manager. Es werden keine Schlüssel aus AWS Secret Manager gelesen.
general_settings:
key_management_system: "aws_secret_manager" # 👈 KEY CHANGE
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: "write_only" # Literal["read_only", "write_only", "read_and_write"]
general_settings:
master_key: os.environ/litellm_master_key
key_management_system: "aws_secret_manager" # 👈 KEY CHANGE
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"]
hosted_keys: ["litellm_master_key"] # OPTIONAL. Specify which env keys you stored on AWS
- Proxy ausführen
litellm --config /path/to/config.yaml
Verwendung von K/V-Paaren in 1 AWS-Geheimnis
Sie können mehrere Schlüssel aus einem einzigen AWS-Geheimnis mit dem Parameter primary_secret_name lesen
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
Der primary_secret_name ermöglicht es Ihnen, mehrere Schlüssel aus einem einzigen AWS-Geheimnis als JSON-Objekt zu lesen. Zum Beispiel würde "litellm_secrets" Folgendes enthalten:
{
"OPENAI_API_KEY_MODEL_1": "sk-key1...",
"OPENAI_API_KEY_MODEL_2": "sk-key2..."
}
Dies reduziert die Anzahl der AWS-Geheimnisse, die Sie verwalten müssen.
Hashicorp Vault
| Feature | Unterstützung | Beschreibung |
|---|---|---|
| Geheimnisse lesen | ✅ | Geheimnisse lesen, z. B. OPENAI_API_KEY |
| Geheimnisse schreiben | ✅ | Geheimnisse speichern, z. B. Virtuelle Schlüssel |
Geheimnisse aus dem Hashicorp Vault lesen
Schritt 1. Hashicorp Vault-Details in Ihrer Umgebung hinzufügen
LiteLLM unterstützt zwei Authentifizierungsmethoden
- TLS-Zertifikatsauthentifizierung -
HCP_VAULT_CLIENT_CERTundHCP_VAULT_CLIENT_KEY - Token-Authentifizierung -
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
Schritt 2. Zur Proxy-Konfigurationsdatei hinzufügen.
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"]
Schritt 3. Proxy starten und testen
$ litellm --config /path/to/config.yaml
Wie es funktioniert
Geheimnisse lesen LiteLLM liest Geheimnisse aus Hashicorp Vaults KV v2-Engine unter Verwendung des folgenden URL-Formats
{VAULT_ADDR}/v1/{NAMESPACE}/secret/data/{SECRET_NAME}
Zum Beispiel, wenn Sie haben
HCP_VAULT_ADDR="https://vault.example.com:8200"HCP_VAULT_NAMESPACE="admin"- Geheimnisname:
AZURE_API_KEY
LiteLLM wird suchen nach
https://vault.example.com:8200/v1/admin/secret/data/AZURE_API_KEY
Erwartetes Geheimnisformat
LiteLLM erwartet, dass alle Geheimnisse als JSON-Objekt mit einem Feld key, das den Geheimniswert enthält, gespeichert werden.
Zum Beispiel, für AZURE_API_KEY, sollte das Geheimnis gespeichert werden als
{
"key": "sk-1234"
}
Geheimnisse schreiben
Wenn ein virtueller Schlüssel auf LiteLLM erstellt / gelöscht wird, erstellt / löscht LiteLLM automatisch das Geheimnis in Hashicorp Vault.
- Virtuellen Schlüssel auf LiteLLM erstellen, entweder über die LiteLLM Admin-Benutzeroberfläche oder die API
- Hashicorp Vault auf geheimes Objekt prüfen
LiteLLM speichert Geheimnisse unter dem Pfad prefix_for_stored_virtual_keys (Standard: litellm/)
Azure Key Vault
Verwendung mit LiteLLM Proxy Server
- Proxy-Abhängigkeiten installieren
pip install 'litellm[proxy]' 'litellm[extra_proxy]'
- Azure-Details in Ihrer Umgebung speichern
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"
- Zur Proxy-Konfigurationsdatei hinzufügen.
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"
Sie können dies jetzt testen, indem Sie Ihren Proxy starten
litellm --config /path/to/config.yaml
Google Secret Manager
Unterstützung für Google Secret Manager
- Google Secret Manager-Details in Ihrer Umgebung speichern
GOOGLE_SECRET_MANAGER_PROJECT_ID="your-project-id-on-gcp" # example: adroit-crow-413218
Optionale Parameter
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
- Zur Proxy-Konfigurationsdatei hinzufügen.
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"
Sie können dies jetzt testen, indem Sie Ihren Proxy starten
litellm --config /path/to/config.yaml
Google Key Management Service
Verschlüsselte Schlüssel von Google KMS auf dem Proxy verwenden
Schritt 1. Schlüssel zur Umgebung hinzufügen
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...'
Schritt 2: Konfiguration aktualisieren
general_settings:
key_management_system: "google_kms"
database_url: "os.environ/PROXY_DATABASE_URL_ENCRYPTED"
master_key: sk-1234
Schritt 3: Proxy starten und testen
$ litellm --config /path/to/config.yaml
Und in einem anderen Terminal
$ litellm --test
AWS Key Management V1
[BETA]AWS Key Management v2 ist in der Enterprise-Edition enthalten. Lesen Sie hier die Dokumentation
Verwenden Sie AWS KMS zum Speichern einer gehashten Kopie Ihres Proxy-Master-Schlüssels in der Umgebung.
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
Alle Einstellungen für die Geheimnisverwaltung
Alle Einstellungen im Zusammenhang mit der Geheimnisverwaltung
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