Overview
This checklist covers all critical security areas that should be audited before and during production deployment. Use this as a systematic guide to ensure your MCP Server deployment meets security best practices.Authentication & Authorization
Keycloak Configuration
✅ Keycloak Setup
✅ Keycloak Setup
Critical:
- Admin password changed from default
- Admin console access restricted to internal network
- HTTPS enabled for all Keycloak endpoints
- Session timeout configured (max 24 hours)
- Brute force detection enabled
- Email verification required for new users
- MFA/2FA enabled for admin accounts
- Password policy enforced (min 12 characters, complexity)
- Account lockout after failed attempts
- Security headers configured
- CORS properly configured
✅ JWT Configuration
✅ JWT Configuration
Critical:
- JWT secret is cryptographically secure (>= 32 bytes)
- JWT secret rotated from default value
- JWT secret stored in secret management system
- Token expiration set appropriately (< 1 hour)
- Refresh token rotation enabled
- Algorithm set to RS256 or ES256 (not HS256)
- JWK rotation configured
- Token revocation mechanism implemented
- Audience (aud) claim validated
- Issuer (iss) claim validated
✅ OpenFGA Authorization
✅ OpenFGA Authorization
Secrets Management
Infrastructure Secrets
✅ Secret Storage
✅ Secret Storage
Critical:
- No secrets in code or git repository
- All secrets in Infisical/Vault/Cloud Secret Manager
- .env files in .gitignore
- Container images don’t contain secrets
- Kubernetes secrets encrypted at rest
- Secret rotation policy defined (90 days max)
- Automated secret rotation configured
- Secret access auditing enabled
- Secrets have expiration dates
✅ API Keys
✅ API Keys
Critical:
- LLM API keys rotated from initial values
- API keys have usage limits configured
- API keys scoped to minimum permissions
- Backup API keys available
- API key usage monitoring enabled
- Alerts on suspicious API usage
- API keys rotated every 90 days
✅ Database Credentials
✅ Database Credentials
Critical:
- Database passwords changed from defaults
- Database users have minimum required privileges
- Production database not accessible from internet
- SSL/TLS enforced for database connections
- Database password rotation configured
- Connection pooling with authentication
- Database audit logging enabled
Network Security
Network Configuration
✅ TLS/SSL
✅ TLS/SSL
Critical:
- HTTPS enabled for all public endpoints
- Valid TLS certificates (not self-signed)
- TLS 1.2+ only (1.0/1.1 disabled)
- Strong cipher suites configured
- HSTS header enabled
- Certificate auto-renewal configured
- Certificate expiry monitoring
- OCSP stapling enabled
- Perfect forward secrecy (PFS) enabled
✅ Network Policies
✅ Network Policies
Critical:
- Network policies defined for all namespaces
- Default deny ingress/egress in place
- Least privilege network access
- Pods can’t access cluster API by default
- Network policies tested
- Egress filtering configured
- Service mesh for mTLS (optional)
✅ Firewall & Load Balancer
✅ Firewall & Load Balancer
Critical:
- Only required ports exposed
- Admin interfaces not publicly accessible
- Rate limiting configured
- DDoS protection enabled
- WAF rules configured
- IP whitelisting for admin access
- Geographic restrictions (if applicable)
- Load balancer health checks configured
Application Security
Code Security
✅ Dependencies
✅ Dependencies
Critical:
- No critical vulnerabilities in dependencies
- All dependencies from trusted sources
- Lock files committed (requirements.txt, package-lock.json)
- Dependency scanning in CI/CD
- Regular dependency updates
- Automated vulnerability scanning
- SBOM (Software Bill of Materials) generated
✅ Input Validation
✅ Input Validation
Critical:
- All user input validated
- SQL injection protection
- XSS protection
- Command injection prevention
- File upload validation
- Input sanitization
- Output encoding
- CSRF protection
- Rate limiting per endpoint
✅ Logging & Monitoring
✅ Logging & Monitoring
Critical:
- Security events logged
- Sensitive data not logged (passwords, tokens)
- Logs centralized and searchable
- Log retention policy defined
- Structured logging (JSON)
- Log tampering prevention
- Alerting on security events
- SIEM integration
Container Security
Image Security
✅ Container Images
✅ Container Images
Critical:
- Images from trusted registries only
- Image vulnerability scanning enabled
- No critical vulnerabilities in images
- Images signed and verified
- Non-root user in containers
- Minimal base images (distroless, alpine)
- Multi-stage builds
- Image scanning in CI/CD
- Regular image updates
✅ Runtime Security
✅ Runtime Security
Critical:
- Read-only root filesystem
- Privilege escalation disabled
- Capabilities dropped
- seccomp profile applied
- AppArmor/SELinux enabled
- Pod Security Standards enforced
- Runtime security monitoring (Falco)
- Resource limits defined
Data Protection
Data Security
✅ Encryption
✅ Encryption
Critical:
- Data encrypted in transit (TLS)
- Data encrypted at rest (database, Redis, volumes)
- Encryption keys managed securely
- Kubernetes secrets encrypted
- Key rotation configured
- HSM or KMS for key management
- Encryption for backups
✅ Backup & Recovery
✅ Backup & Recovery
Critical:
- Automated backups configured
- Backups encrypted
- Backup restoration tested
- Backup retention policy defined
- Off-site backup storage
- Point-in-time recovery available
- Backup monitoring and alerts
- DR plan documented
✅ Data Privacy
✅ Data Privacy
Critical:
- PII handling documented
- Data retention policy enforced
- Right to deletion implemented
- Data minimization practiced
- Privacy policy published
- Consent management
- Data portability
- Privacy by design
- GDPR/CCPA compliance (if applicable)
Kubernetes Security
Cluster Security
✅ RBAC
✅ RBAC
Critical:
- RBAC enabled
- Principle of least privilege
- No cluster-admin for apps
- Service accounts for workloads
- No default service account used
- Regular RBAC audit
- Namespaced roles
- RBAC testing
✅ Pod Security
✅ Pod Security
Critical:
- Pod Security Standards enforced
- hostNetwork disabled
- hostPID disabled
- hostIPC disabled
- Privileged pods not allowed
- SecurityContext on all pods
- runAsNonRoot enforced
- allowPrivilegeEscalation: false
✅ API Server
✅ API Server
Critical:
- API server not publicly accessible
- Anonymous auth disabled
- Audit logging enabled
- Admission controllers configured
- API server TLS verified
- API rate limiting
- Webhook timeout configured
- Audit logs reviewed regularly
Compliance & Governance
Compliance
✅ Security Policies
✅ Security Policies
Critical:
- Security policy documented
- Incident response plan
- Access control policy
- Change management process
- Security training for team
- Security champions assigned
- Regular security reviews
- Penetration testing scheduled
- Bug bounty program (optional)
- Review policy documents
- Check training records
- Verify incident response tests
✅ Audit & Compliance
✅ Audit & Compliance
Critical:
- Audit logs enabled everywhere
- Compliance requirements identified
- Regular compliance audits
- Audit log retention (1 year min)
- SOC 2 / ISO 27001 certification
- GDPR/CCPA compliance
- Third-party audits
- Compliance automation
Pre-Production Checklist
Use this before deploying to production:Automated Security Scanning
Next Steps
Compliance Guide
GDPR, SOC2, HIPAA compliance
Best Practices
Security hardening guide
Security Overview
Security architecture overview
Quick Start Security
Essential security setup
Security Audit Complete: Systematic security review for production readiness!