-
-
Couldn't load subscription status.
- Fork 4.5k
[Feat] Add AWS <-> Vertex Federated Auth #15663
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
💡 Enable Vercel Agent with $100 free credit for automated AI reviews |
| verbose_logger.debug( | ||
| "Using explicit AWS authentication for GCP federation (no metadata endpoints)" | ||
| ) | ||
| verbose_logger.debug(f"AWS parameters provided: {list(aws_params.keys())}") |
Check failure
Code scanning / CodeQL
Clear-text logging of sensitive information High
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 10 days ago
To fix this issue, we should avoid logging the keys of the aws_params dictionary entirely, as they may indicate which sensitive credential types are present and potentially misconfigured. The best fix is to log only a static message indicating "AWS parameters provided" without listing their names, or simply remove this log line. If the log is genuinely useful for debugging, consider whitelisting allowed safe keys to display, or strictly redact any secret-bearing names.
Specifically:
- Locate line 203 in
litellm/llms/vertex_ai/vertex_llm_base.py. - Replace the line
verbose_logger.debug(f"AWS parameters provided: {list(aws_params.keys())}")with a less revealing message such asverbose_logger.debug("AWS parameters provided").
No additional methods or imports are needed.
-
Copy modified line R203
| @@ -200,7 +200,7 @@ | ||
| verbose_logger.debug( | ||
| "Using explicit AWS authentication for GCP federation (no metadata endpoints)" | ||
| ) | ||
| verbose_logger.debug(f"AWS parameters provided: {list(aws_params.keys())}") | ||
| verbose_logger.debug("AWS parameters provided") | ||
|
|
||
| # Use BaseAWSLLM to get AWS credentials (handles all auth flows) | ||
| aws_llm = BaseAWSLLM() |
[Feat] Add AWS <-> Vertex Federated Auth
Adds support for AWS to GCP Workload Identity Federation when EC2 metadata endpoints (
http://169.254.169.254) are blocked. This is pretty common in security-hardened environments.The Problem
Organizations blocking metadata service access couldn't use AWS credentials to authenticate to Vertex AI. The default Workload Identity Federation flow requires hitting an endpoint to get AWS credentials, which fails when that endpoint is restricted.
Proposed flow
BaseAWSLLM(from Bedrock integration) to get AWS credentials via STSBoto3AwsSecurityCredentialsSupplieraws.Credentialsclass for token exchangeRelevant issues
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
tests/litellm/directory, Adding at least 1 test is a hard requirement - see detailsmake test-unitType
🆕 New Feature
🐛 Bug Fix
🧹 Refactoring
📖 Documentation
🚄 Infrastructure
✅ Test
Changes