HOW TO SECURE RENDER - SECURITY GUIDE | VIBEEVAL

Render Security Context

Render is a Heroku-style PaaS — push code, get an app. The platform handles TLS, basic DDoS, and OS patching. Your residual surface lives in: env vars and Environment Groups (the secrets store), Private Services (which you have to opt into for internal-only services), and the managed Postgres / Redis (which use connection strings you must keep out of code). The recurring incident shape is “I made my backend a Web Service instead of a Private Service, anyone can hit it directly.”

Security Checklist

1. Use Environment Groups for shared secrets

Dashboard → Environment Groups: create a group per environment (prod-secrets, staging-secrets). Reference from each service. Never hardcode secrets in render.yaml or Dockerfile. The group is read by the service at deploy and at runtime; the values never enter git.

2. Configure Private Services for internal-only services

For backend APIs that only your other Render services should reach: deploy as Private Service, not Web Service. Private Services are reachable only from inside your Render private network at <service>.<region>.private. Web Services have a public *.onrender.com URL — fine for the frontend, wrong for the internal API.

3. Secure managed Postgres

For Render Postgres: enable the encrypted connection (?sslmode=require in the connection string). Use the Internal Database URL (private network) instead of the External Database URL (public, IP-allowlisted) wherever possible. Rotate the password after any team-member departure: Database → Settings → Reset Password.

4. Enforce HTTPS

Service → Settings → Custom Domain: confirm cert is provisioned. Settings → Auto-Redirect HTTP → HTTPS: on. Test by hitting http://yourdomain.com and confirming the redirect.

5. Configure health checks

Service → Settings → Health Check Path: set to /health (or your equivalent endpoint that returns 200 only when the app is functional). Failed health checks trigger restarts — limits the lifespan of a wedged or compromised process.

6. Configure team permissions

Team → Members: review quarterly. Owner / Admin / Member / Viewer. Admin can deploy and read env vars — keep the list small. Remove ex-team members same-day; rotate sensitive secrets after departure.

7. Audit build logs for leaked secrets

Service → Events → [deploy] → Logs: search for known secret prefixes. A common bug ships when a build script console.logs the env, dumping secrets into logs that team members can read.

8. Configure auto-scaling limits

Service → Settings → Scaling: set explicit min and max instances. Auto-scaling unbounded is a DoS amplifier — an attacker triggers growth, you pay.

9. Verify DDoS / WAF

Render provides basic DDoS protection. For larger sites, front with Cloudflare or another CDN/WAF. Confirm origin IPs aren’t reachable directly (otherwise the WAF is bypassable).

10. Audit cron jobs

Cron Jobs → [job] → Settings: review what each job does and what env vars it has access to. Jobs run without a user context — they should be system-level operations, not “log in as user X and do things.”

11. Configure disk encryption

For services with persistent disks: encryption at rest is on by default — verify in the disk’s settings. For sensitive data, layer additional client-side encryption.

12. Set up backups

Render Postgres has automated backups; for free tier, daily; for paid, also point-in-time recovery. Database → Backups: confirm retention matches your requirement. Test restore once before you need it.

13. Review network policies

For Private Services to reach external services (Stripe, OpenAI, etc.): outbound goes through Render’s egress IPs. For inbound: pin to known IPs where possible (admin endpoints, health-check probes).

14. Enable audit logging

Team Settings → Audit Logs: track deploys, env-var changes, member additions, OAuth integrations. Useful for incident response.

15. Configure monitoring

Render’s built-in metrics show CPU / memory / response time. For deeper observability, integrate Datadog or your platform of choice. Alert on: 5xx error rate spikes, sustained high CPU, unusual outbound traffic.

16. Run a security scan

The full VibeEval scan probes your deployed Render app for missing auth, BOLA, and webhook trust.

Free Self-Audit Suite

Five free scanners.

Vibe Coding Security Risk Guide

Full risk catalogue.

PostgreSQL Guide

Secure your Render Postgres deployment.

Automate Your Security Checks

VibeEval scans applications hosted on Render for missing auth, BOLA, and exposed admin endpoints.

SCAN YOUR APP

14-day trial. No card. Results in under 60 seconds.

START FREE SCAN