Zum Hauptinhalt springen

Geheimnisverwaltung

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 Secret Manager

Speichern Sie Ihre Proxy-Schlüssel in AWS Secret Manager.

FeatureUnterstützungBeschreibung
Geheimnisse lesenGeheimnisse lesen, z. B. OPENAI_API_KEY
Geheimnisse schreibenGeheimnisse speichern, z. B. Virtuelle Schlüssel

Proxy-Nutzung

  1. 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
  1. AWS Secret Manager in der Konfiguration aktivieren.
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. 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

FeatureUnterstützungBeschreibung
Geheimnisse lesenGeheimnisse lesen, z. B. OPENAI_API_KEY
Geheimnisse schreibenGeheimnisse 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

  1. TLS-Zertifikatsauthentifizierung - HCP_VAULT_CLIENT_CERT und HCP_VAULT_CLIENT_KEY
  2. 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

Schnelltest-Proxy

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

  1. Proxy-Abhängigkeiten installieren
pip install 'litellm[proxy]' 'litellm[extra_proxy]'
  1. 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"
  1. 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

Schnelltest-Proxy

Google Secret Manager

Unterstützung für Google Secret Manager

  1. 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
  1. 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

Schnelltest-Proxy

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 

Schnelltest-Proxy

AWS Key Management V1

Tipp

[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

Entschlüsselungscode anzeigen

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