Documentation Index
Fetch the complete documentation index at: https://arizeai-433a7140.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Phoenix’s Playground and evaluation features make outbound HTTP requests to AI provider APIs (OpenAI, Anthropic, Azure OpenAI, etc.) to run prompts and evaluations. When self-hosting Phoenix, it’s important to understand that these requests originate from the Phoenix server and may access resources outside your VPC or deployment environment.Security Considerations
Server-Side Request Forgery (SSRF)
The Playground allows users to configure custom base URLs for AI providers. Without proper network controls, this could allow requests to:- Internal services within your network
- Cloud provider metadata endpoints (e.g.,
169.254.169.254) - Private IP ranges (
10.x.x.x,172.16.x.x,192.168.x.x)
Restricting Outbound Access
Option 1: Network Policies (Recommended)
The most robust approach is to restrict outbound network access at the infrastructure level. Kubernetes Network PoliciesNetwork policies require a CNI plugin that supports them (e.g., Calico, Cilium, Weave Net). On GKE with Workload Identity enabled, you may also need to block
169.254.169.252/32 in addition to the 169.254.0.0/16 range.Option 2: HTTP Proxy
Phoenix respects standard HTTP proxy environment variables. You can route all outbound HTTP requests through a proxy server that enforces URL allowlists.- Allow requests only to approved AI provider domains
- Block requests to private IP ranges
- Log all outbound requests for auditing
Option 3: Restrict Available Providers
Use thePHOENIX_ALLOWED_PROVIDERS environment variable to limit which AI providers appear in the Playground UI. This prevents users from selecting providers your organization hasn’t approved.
OPENAI, ANTHROPIC, AZURE_OPENAI, GOOGLE, DEEPSEEK, XAI, OLLAMA, AWS, CEREBRAS, FIREWORKS, GROQ, MOONSHOT, PERPLEXITY, TOGETHER.
PHOENIX_ALLOWED_PROVIDERS controls which providers are shown in the UI but does not prevent API-level access. Combine this with network policies for defense in depth.Option 4: Custom Providers with Fixed Endpoints
Instead of allowing users to enter arbitrary URLs, configure Custom Providers with pre-approved endpoints. This centralizes control over which URLs Phoenix can access.- Create custom providers with your approved endpoints
- Store credentials securely in the database
- Users select from pre-configured providers rather than entering URLs
CSRF Protection
Phoenix supports Cross-Site Request Forgery (CSRF) protection for deployments accessible over the web.PHOENIX_CSRF_TRUSTED_ORIGINS is set:
- Requests must include valid
OriginorRefererheaders matching the trusted origins - This prevents malicious websites from making authenticated requests on behalf of users
Air-Gapped Deployments
For environments with no external network access:- Deploying a local LLM (e.g., Ollama) within your network
- Configuring a custom provider pointing to the local endpoint
- Ensuring network policies allow internal traffic to the LLM service
Frequently Asked Questions
Can users access internal services through the Playground?
Can users access internal services through the Playground?
Without network controls, yes. The Playground allows configuring custom base URLs, which could be pointed at internal services. Implement network policies or proxy rules to prevent this.
Does Phoenix validate URLs before making requests?
Does Phoenix validate URLs before making requests?
Phoenix does not currently validate or restrict URLs at the application level. URL restrictions should be implemented at the network layer using firewalls, network policies, or proxy servers.
How do I allow only specific AI providers?
How do I allow only specific AI providers?
Set
PHOENIX_ALLOWED_PROVIDERS to a comma-separated list of approved providers (e.g., OPENAI,ANTHROPIC). This hides other providers from the UI but should be combined with network controls for complete protection.What if I'm running Phoenix on a developer laptop?
What if I'm running Phoenix on a developer laptop?
For local development, the security risk is lower since requests originate from the developer’s machine. In production or shared environments, implement the network controls described above.
Do HTTP_PROXY settings apply to all providers?
Do HTTP_PROXY settings apply to all providers?
Yes, Phoenix’s HTTP clients respect standard proxy environment variables. All outbound requests to AI providers will route through the configured proxy.
How do I protect against CSRF attacks?
How do I protect against CSRF attacks?
Set
PHOENIX_CSRF_TRUSTED_ORIGINS to a comma-separated list of your Phoenix deployment’s origins (e.g., https://phoenix.example.com). This enables origin validation for incoming requests.What's the difference between PHOENIX_ALLOWED_PROVIDERS and network policies?
What's the difference between PHOENIX_ALLOWED_PROVIDERS and network policies?
PHOENIX_ALLOWED_PROVIDERS controls the UI—which providers users can select. Network policies control actual network access—which endpoints Phoenix can reach. Use both for defense in depth: restrict the UI to approved providers AND block unauthorized network traffic.Can I audit which external URLs Phoenix accesses?
Can I audit which external URLs Phoenix accesses?
Yes, by routing traffic through a proxy server that logs requests. For comprehensive auditing of outbound HTTP requests, use a network proxy or service mesh with logging enabled. This will capture all requests to AI provider APIs and custom URLs configured in the Playground.
Summary
| Control | Purpose | Implementation |
|---|---|---|
| Network Policies | Block unauthorized outbound traffic | Kubernetes NetworkPolicy, security groups, firewalls |
| HTTP Proxy | Route and filter outbound requests | HTTP_PROXY, HTTPS_PROXY environment variables |
| Provider Restrictions | Limit available providers in UI | PHOENIX_ALLOWED_PROVIDERS environment variable |
| Custom Providers | Pre-configure approved endpoints | Phoenix Settings → AI Providers |
| CSRF Protection | Prevent cross-site request forgery | PHOENIX_CSRF_TRUSTED_ORIGINS environment variable |

