From cf60444916f1314ce397ee1c430376e1e9c301f9 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Wed, 1 Jan 2025 18:35:05 -0800 Subject: [PATCH] (Feat) Add support for reading secrets from Hashicorp vault (#7497) * HashicorpSecretManager * test_hashicorp_secret_managerv * use 1 helper initialize_secret_manager * add HASHICORP_VAULT * working config * hcorp read_secret * HashicorpSecretManager * add secret_manager_testing * use 1 folder for secret manager testing * test_hashicorp_secret_manager_get_secret * HashicorpSecretManager * docs HCP secrets * update folder name * docs hcorp secret manager * remove unused imports * add conftest.py * fix tests * docs document env vars --- .circleci/config.yml | 53 +++++++ docs/my-website/docs/proxy/config_settings.md | 3 + docs/my-website/docs/secret.md | 71 ++++++++- docs/my-website/img/hcorp.png | Bin 0 -> 162344 bytes litellm/proxy/_types.py | 1 + litellm/proxy/proxy_cli.py | 48 +----- litellm/proxy/proxy_config.yaml | 6 +- litellm/proxy/proxy_server.py | 71 +++++---- .../hashicorp_secret_manager.py | 138 ++++++++++++++++++ litellm/secret_managers/main.py | 13 ++ tests/secret_manager_tests/conftest.py | 54 +++++++ .../test_aws_secret_manager.py | 0 .../test_get_secret.py | 0 tests/secret_manager_tests/test_hashicorp.py | 67 +++++++++ .../test_secret_manager.py | 44 +++++- tests/secret_manager_tests/vertex_key.json | 13 ++ 16 files changed, 496 insertions(+), 86 deletions(-) create mode 100644 docs/my-website/img/hcorp.png create mode 100644 litellm/secret_managers/hashicorp_secret_manager.py create mode 100644 tests/secret_manager_tests/conftest.py rename tests/{local_testing => secret_manager_tests}/test_aws_secret_manager.py (100%) rename tests/{local_testing => secret_manager_tests}/test_get_secret.py (100%) create mode 100644 tests/secret_manager_tests/test_hashicorp.py rename tests/{local_testing => secret_manager_tests}/test_secret_manager.py (85%) create mode 100644 tests/secret_manager_tests/vertex_key.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 032f697c78..f59cbef5a5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -671,6 +671,51 @@ jobs: paths: - batches_coverage.xml - batches_coverage + secret_manager_testing: + docker: + - image: cimg/python:3.11 + auth: + username: ${DOCKERHUB_USERNAME} + password: ${DOCKERHUB_PASSWORD} + working_directory: ~/project + + steps: + - checkout + - run: + name: Install Dependencies + command: | + python -m pip install --upgrade pip + python -m pip install -r requirements.txt + pip install "respx==0.21.1" + pip install "pytest==7.3.1" + pip install "pytest-retry==1.6.3" + pip install "pytest-asyncio==0.21.1" + pip install "pytest-cov==5.0.0" + pip install "google-generativeai==0.3.2" + pip install "google-cloud-aiplatform==1.43.0" + # Run pytest and generate JUnit XML report + - run: + name: Run tests + command: | + pwd + ls + python -m pytest -vv tests/secret_manager_tests --cov=litellm --cov-report=xml -x -s -v --junitxml=test-results/junit.xml --durations=5 + no_output_timeout: 120m + - run: + name: Rename the coverage files + command: | + mv coverage.xml secret_manager_coverage.xml + mv .coverage secret_manager_coverage + + # Store test results + - store_test_results: + path: test-results + - persist_to_workspace: + root: . + paths: + - secret_manager_coverage.xml + - secret_manager_coverage + pass_through_unit_testing: docker: - image: cimg/python:3.11 @@ -1767,6 +1812,12 @@ workflows: only: - main - /litellm_.*/ + - secret_manager_testing: + filters: + branches: + only: + - main + - /litellm_.*/ - pass_through_unit_testing: filters: branches: @@ -1789,6 +1840,7 @@ workflows: requires: - llm_translation_testing - batches_testing + - secret_manager_testing - pass_through_unit_testing - image_gen_testing - logging_testing @@ -1838,6 +1890,7 @@ workflows: - test_bad_database_url - llm_translation_testing - batches_testing + - secret_manager_testing - pass_through_unit_testing - image_gen_testing - logging_testing diff --git a/docs/my-website/docs/proxy/config_settings.md b/docs/my-website/docs/proxy/config_settings.md index 4c54aebc66..4b323602a6 100644 --- a/docs/my-website/docs/proxy/config_settings.md +++ b/docs/my-website/docs/proxy/config_settings.md @@ -390,6 +390,9 @@ router_settings: | GOOGLE_CLIENT_SECRET | Client secret for Google OAuth | GOOGLE_KMS_RESOURCE_NAME | Name of the resource in Google KMS | HF_API_BASE | Base URL for Hugging Face API +| HCP_VAULT_ADDR | Address for [Hashicorp Vault Secret Manager](../secret.md#hashicorp-vault) +| HCP_VAULT_NAMESPACE | Namespace for [Hashicorp Vault Secret Manager](../secret.md#hashicorp-vault) +| HCP_VAULT_TOKEN | Token for [Hashicorp Vault Secret Manager](../secret.md#hashicorp-vault) | HELICONE_API_KEY | API key for Helicone service | HOSTNAME | Hostname for the server, this will be [emitted to `datadog` logs](https://docs.litellm.ai/docs/proxy/logging#datadog) | HUGGINGFACE_API_BASE | Base URL for Hugging Face API diff --git a/docs/my-website/docs/secret.md b/docs/my-website/docs/secret.md index 113a11750b..3317c320eb 100644 --- a/docs/my-website/docs/secret.md +++ b/docs/my-website/docs/secret.md @@ -1,5 +1,6 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import Image from '@theme/IdealImage'; # Secret Manager LiteLLM supports reading secrets from Azure Key Vault, Google Secret Manager @@ -21,6 +22,7 @@ LiteLLM supports reading secrets from Azure Key Vault, Google Secret Manager - [Azure Key Vault](#azure-key-vault) - [Google Secret Manager](#google-secret-manager) - Google Key Management Service +- [Hashicorp Vault](#hashicorp-vault) - [Infisical Secret Manager](#infisical-secret-manager) - [.env Files](#env-files) @@ -52,7 +54,7 @@ general_settings: Store your proxy keys in AWS Secret Manager. -### Proxy Usage +#### Proxy Usage 1. Save AWS Credentials in your environment ```bash @@ -128,7 +130,7 @@ litellm.secret_manager = client litellm.get_secret("your-test-key") ``` --> -### Usage with LiteLLM Proxy Server +#### Usage with LiteLLM Proxy Server 1. Install Proxy dependencies ```bash @@ -233,12 +235,73 @@ And in another terminal $ litellm --test ``` -[Quick Test Proxy](./proxy/quick_start#using-litellm-proxy---curl-request-openai-package-langchain-langchain-js) - +[Quick Test Proxy](./proxy/user_keys) +## Hashicorp Vault + +Read secrets from [Hashicorp Vault](https://developer.hashicorp.com/vault/docs/secrets/kv/kv-v2) + +Step 1. Add Hashicorp Vault details in your environment + +```bash +HCP_VAULT_ADDR="https://test-cluster-public-vault-0f98180c.e98296b2.z1.hashicorp.cloud:8200" +HCP_VAULT_NAMESPACE="admin" +HCP_VAULT_TOKEN="hvs.CAESIG52gL6ljBSdmq*****" + +# OPTIONAL +HCP_VAULT_REFRESH_INTERVAL="86400" # defaults to 86400, frequency of cache refresh for Hashicorp Vault +``` + +Step 2. Add to proxy config.yaml + +```yaml +general_settings: + key_management_system: "hashicorp_vault" +``` + +Step 3. Start + test proxy + +``` +$ litellm --config /path/to/config.yaml +``` + +[Quick Test Proxy](./proxy/user_keys) + + +#### How it works + +LiteLLM reads secrets from Hashicorp Vault's KV v2 engine using the following URL format: +``` +{VAULT_ADDR}/v1/{NAMESPACE}/secret/data/{SECRET_NAME} +``` + +For example, if you have: +- `HCP_VAULT_ADDR="https://vault.example.com:8200"` +- `HCP_VAULT_NAMESPACE="admin"` +- Secret name: `AZURE_API_KEY` + + +LiteLLM will look up: +``` +https://vault.example.com:8200/v1/admin/secret/data/AZURE_API_KEY +``` + +#### Expected Secret Format +LiteLLM expects all secrets to be stored as a JSON object with a `key` field containing the secret value. + +For example, for `AZURE_API_KEY`, the secret should be stored as: + +```json +{ + "key": "sk-1234" +} +``` + + + ## All Secret Manager Settings diff --git a/docs/my-website/img/hcorp.png b/docs/my-website/img/hcorp.png new file mode 100644 index 0000000000000000000000000000000000000000..6d8b309d75a94bc52b6e1902c79e1b2526a407c9 GIT binary patch literal 162344 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

vH=AMQ1RnE;;s5zYnPieSPWX3!VMd=q#fTW94=; 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 RouterModelInfo: """ Common logic across add + delete router models diff --git a/litellm/secret_managers/hashicorp_secret_manager.py b/litellm/secret_managers/hashicorp_secret_manager.py new file mode 100644 index 0000000000..d97752da29 --- /dev/null +++ b/litellm/secret_managers/hashicorp_secret_manager.py @@ -0,0 +1,138 @@ +import os +from typing import Optional + +import litellm +from litellm._logging import verbose_logger +from litellm.caching import InMemoryCache +from litellm.llms.custom_httpx.http_handler import ( + _get_httpx_client, + get_async_httpx_client, + httpxSpecialProvider, +) +from litellm.proxy._types import KeyManagementSystem + + +class HashicorpSecretManager: + def __init__(self): + from litellm.proxy.proxy_server import CommonProxyErrors, premium_user + + # Vault-specific config + self.vault_addr = os.getenv("HCP_VAULT_ADDR", "http://127.0.0.1:8200") + self.vault_token = os.getenv("HCP_VAULT_TOKEN", "") + # If your KV engine is mounted somewhere other than "secret", adjust here: + self.vault_namespace = os.getenv("HCP_VAULT_NAMESPACE", None) + + # Validate environment + if not self.vault_token: + raise ValueError( + "Missing Vault token. Please set VAULT_TOKEN in your environment." + ) + + litellm.secret_manager_client = self + litellm._key_management_system = KeyManagementSystem.HASHICORP_VAULT + _refresh_interval = os.environ.get("HCP_VAULT_REFRESH_INTERVAL", 86400) + _refresh_interval = int(_refresh_interval) if _refresh_interval else 86400 + self.cache = InMemoryCache( + default_ttl=_refresh_interval + ) # store in memory for 1 day + + if premium_user is not True: + raise ValueError( + f"Hashicorp secret manager is only available for premium users. {CommonProxyErrors.not_premium_user.value}" + ) + + def get_url(self, secret_name: str) -> str: + _url = f"{self.vault_addr}/v1/" + if self.vault_namespace: + _url += f"{self.vault_namespace}/" + _url += f"secret/data/{secret_name}" + return _url + + async def async_read_secret(self, secret_name: str) -> Optional[str]: + """ + Reads a secret from Vault KV v2 using an async HTTPX client. + secret_name is just the path inside the KV mount (e.g., 'myapp/config'). + Returns the entire data dict from data.data, or None on failure. + """ + if self.cache.get_cache(secret_name) is not None: + return self.cache.get_cache(secret_name) + async_client = get_async_httpx_client( + llm_provider=httpxSpecialProvider.SecretManager, + ) + try: + # For KV v2: /v1//data/ + # Example: http://127.0.0.1:8200/v1/secret/data/myapp/config + _url = self.get_url(secret_name) + url = _url + + response = await async_client.get( + url, headers={"X-Vault-Token": self.vault_token} + ) + response.raise_for_status() + + # For KV v2, the secret is in response.json()["data"]["data"] + json_resp = response.json() + _value = self._get_secret_value_from_json_response(json_resp) + self.cache.set_cache(secret_name, _value) + return _value + + except Exception as e: + verbose_logger.exception(f"Error reading secret from Hashicorp Vault: {e}") + return None + + def read_secret(self, secret_name: str) -> Optional[str]: + """ + Reads a secret from Vault KV v2 using a sync HTTPX client. + secret_name is just the path inside the KV mount (e.g., 'myapp/config'). + Returns the entire data dict from data.data, or None on failure. + """ + if self.cache.get_cache(secret_name) is not None: + return self.cache.get_cache(secret_name) + sync_client = _get_httpx_client() + try: + # For KV v2: /v1//data/ + url = self.get_url(secret_name) + + response = sync_client.get(url, headers={"X-Vault-Token": self.vault_token}) + response.raise_for_status() + + # For KV v2, the secret is in response.json()["data"]["data"] + json_resp = response.json() + verbose_logger.debug(f"Hashicorp secret manager response: {json_resp}") + _value = self._get_secret_value_from_json_response(json_resp) + self.cache.set_cache(secret_name, _value) + return _value + + except Exception as e: + verbose_logger.exception(f"Error reading secret from Hashicorp Vault: {e}") + return None + + def _get_secret_value_from_json_response( + self, json_resp: Optional[dict] + ) -> Optional[str]: + """ + Get the secret value from the JSON response + + Json response from hashicorp vault is of the form: + + { + "request_id":"036ba77c-018b-31dd-047b-323bcd0cd332", + "lease_id":"", + "renewable":false, + "lease_duration":0, + "data": + {"data": + {"key":"Vault Is The Way"}, + "metadata":{"created_time":"2025-01-01T22:13:50.93942388Z","custom_metadata":null,"deletion_time":"","destroyed":false,"version":1} + }, + "wrap_info":null, + "warnings":null, + "auth":null, + "mount_type":"kv" + } + + Note: LiteLLM assumes that all secrets are stored as under the key "key" + """ + if json_resp is None: + return None + return json_resp.get("data", {}).get("data", {}).get("key", None) diff --git a/litellm/secret_managers/main.py b/litellm/secret_managers/main.py index 2b89aedadd..738332209a 100644 --- a/litellm/secret_managers/main.py +++ b/litellm/secret_managers/main.py @@ -289,6 +289,19 @@ def get_secret( # noqa: PLR0915 except Exception as e: print_verbose(f"An error occurred - {str(e)}") raise e + elif key_manager == KeyManagementSystem.HASHICORP_VAULT.value: + try: + secret = client.read_secret(secret_name) + print_verbose( + f"secret from hashicorp secret manager: {secret}" + ) + if secret is None: + raise ValueError( + f"No secret found in Hashicorp Secret Manager for {secret_name}" + ) + except Exception as e: + print_verbose(f"An error occurred - {str(e)}") + raise e elif key_manager == "local": secret = os.getenv(secret_name) else: # assume the default is infisicial client diff --git a/tests/secret_manager_tests/conftest.py b/tests/secret_manager_tests/conftest.py new file mode 100644 index 0000000000..eca0bc431a --- /dev/null +++ b/tests/secret_manager_tests/conftest.py @@ -0,0 +1,54 @@ +# conftest.py + +import importlib +import os +import sys + +import pytest + +sys.path.insert( + 0, os.path.abspath("../..") +) # Adds the parent directory to the system path +import litellm + + +@pytest.fixture(scope="function", autouse=True) +def setup_and_teardown(): + """ + This fixture reloads litellm before every function. To speed up testing by removing callbacks being chained. + """ + curr_dir = os.getcwd() # Get the current working directory + sys.path.insert( + 0, os.path.abspath("../..") + ) # Adds the project directory to the system path + + import litellm + from litellm import Router + + importlib.reload(litellm) + import asyncio + + loop = asyncio.get_event_loop_policy().new_event_loop() + asyncio.set_event_loop(loop) + print(litellm) + # from litellm import Router, completion, aembedding, acompletion, embedding + yield + + # Teardown code (executes after the yield point) + loop.close() # Close the loop created earlier + asyncio.set_event_loop(None) # Remove the reference to the loop + + +def pytest_collection_modifyitems(config, items): + # Separate tests in 'test_amazing_proxy_custom_logger.py' and other tests + custom_logger_tests = [ + item for item in items if "custom_logger" in item.parent.name + ] + other_tests = [item for item in items if "custom_logger" not in item.parent.name] + + # Sort tests based on their names + custom_logger_tests.sort(key=lambda x: x.name) + other_tests.sort(key=lambda x: x.name) + + # Reorder the items list + items[:] = custom_logger_tests + other_tests diff --git a/tests/local_testing/test_aws_secret_manager.py b/tests/secret_manager_tests/test_aws_secret_manager.py similarity index 100% rename from tests/local_testing/test_aws_secret_manager.py rename to tests/secret_manager_tests/test_aws_secret_manager.py diff --git a/tests/local_testing/test_get_secret.py b/tests/secret_manager_tests/test_get_secret.py similarity index 100% rename from tests/local_testing/test_get_secret.py rename to tests/secret_manager_tests/test_get_secret.py diff --git a/tests/secret_manager_tests/test_hashicorp.py b/tests/secret_manager_tests/test_hashicorp.py new file mode 100644 index 0000000000..3d3f96bd2f --- /dev/null +++ b/tests/secret_manager_tests/test_hashicorp.py @@ -0,0 +1,67 @@ +import os +import sys +import pytest +from dotenv import load_dotenv + +load_dotenv() +import os +import httpx + +sys.path.insert( + 0, os.path.abspath("../..") +) # Adds the parent directory to the system path +from unittest.mock import patch, MagicMock +import logging +from litellm._logging import verbose_logger + +verbose_logger.setLevel(logging.DEBUG) + +from litellm.secret_managers.hashicorp_secret_manager import HashicorpSecretManager + +hashicorp_secret_manager = HashicorpSecretManager() + + +mock_vault_response = { + "request_id": "80fafb6a-e96a-4c5b-29fa-ff505ac72201", + "lease_id": "", + "renewable": False, + "lease_duration": 0, + "data": { + "data": {"key": "value-mock"}, + "metadata": { + "created_time": "2025-01-01T22:13:50.93942388Z", + "custom_metadata": None, + "deletion_time": "", + "destroyed": False, + "version": 1, + }, + }, + "wrap_info": None, + "warnings": None, + "auth": None, + "mount_type": "kv", +} + + +def test_hashicorp_secret_manager_get_secret(): + with patch("litellm.llms.custom_httpx.http_handler.HTTPHandler.get") as mock_get: + # Configure the mock response using MagicMock + mock_response = MagicMock() + mock_response.json.return_value = mock_vault_response + mock_response.raise_for_status.return_value = None + mock_get.return_value = mock_response + + # Test the secret manager + secret = hashicorp_secret_manager.read_secret("sample-secret-mock") + assert secret == "value-mock" + + # Verify the request was made with correct parameters + mock_get.assert_called_once() + called_url = mock_get.call_args[0][0] + assert "sample-secret-mock" in called_url + + assert ( + called_url + == "https://test-cluster-public-vault-0f98180c.e98296b2.z1.hashicorp.cloud:8200/v1/admin/secret/data/sample-secret-mock" + ) + assert "X-Vault-Token" in mock_get.call_args.kwargs["headers"] diff --git a/tests/local_testing/test_secret_manager.py b/tests/secret_manager_tests/test_secret_manager.py similarity index 85% rename from tests/local_testing/test_secret_manager.py rename to tests/secret_manager_tests/test_secret_manager.py index f4fb1b450a..6d5e3a1aff 100644 --- a/tests/local_testing/test_secret_manager.py +++ b/tests/secret_manager_tests/test_secret_manager.py @@ -5,6 +5,7 @@ import traceback import uuid from dotenv import load_dotenv +import json load_dotenv() import os @@ -25,6 +26,46 @@ from litellm.secret_managers.main import ( ) +def load_vertex_ai_credentials(): + # Define the path to the vertex_key.json file + print("loading vertex ai credentials") + filepath = os.path.dirname(os.path.abspath(__file__)) + vertex_key_path = filepath + "/vertex_key.json" + + # Read the existing content of the file or create an empty dictionary + try: + with open(vertex_key_path, "r") as file: + # Read the file content + print("Read vertexai file path") + content = file.read() + + # If the file is empty or not valid JSON, create an empty dictionary + if not content or not content.strip(): + service_account_key_data = {} + else: + # Attempt to load the existing JSON content + file.seek(0) + service_account_key_data = json.load(file) + except FileNotFoundError: + # If the file doesn't exist, create an empty dictionary + service_account_key_data = {} + + # Update the service_account_key_data with environment variables + private_key_id = os.environ.get("VERTEX_AI_PRIVATE_KEY_ID", "") + private_key = os.environ.get("VERTEX_AI_PRIVATE_KEY", "") + private_key = private_key.replace("\\n", "\n") + service_account_key_data["private_key_id"] = private_key_id + service_account_key_data["private_key"] = private_key + + # Create a temporary file + with tempfile.NamedTemporaryFile(mode="w+", delete=False) as temp_file: + # Write the updated content to the temporary files + json.dump(service_account_key_data, temp_file, indent=2) + + # Export the temporary file as GOOGLE_APPLICATION_CREDENTIALS + os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = os.path.abspath(temp_file.name) + + def test_aws_secret_manager(): import json @@ -204,7 +245,6 @@ def test_google_secret_manager(): Test that we can get a secret from Google Secret Manager """ os.environ["GOOGLE_SECRET_MANAGER_PROJECT_ID"] = "adroit-crow-413218" - from test_amazing_vertex_completion import load_vertex_ai_credentials from litellm.secret_managers.google_secret_manager import GoogleSecretManager @@ -227,8 +267,6 @@ def test_google_secret_manager_read_in_memory(): """ Test that Google Secret manager returs in memory value when it exists """ - from test_amazing_vertex_completion import load_vertex_ai_credentials - from litellm.secret_managers.google_secret_manager import GoogleSecretManager load_vertex_ai_credentials() diff --git a/tests/secret_manager_tests/vertex_key.json b/tests/secret_manager_tests/vertex_key.json new file mode 100644 index 0000000000..e2fd8512b1 --- /dev/null +++ b/tests/secret_manager_tests/vertex_key.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "adroit-crow-413218", + "private_key_id": "", + "private_key": "", + "client_email": "test-adroit-crow@adroit-crow-413218.iam.gserviceaccount.com", + "client_id": "104886546564708740969", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-adroit-crow%40adroit-crow-413218.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +}