Improve AI logic

This commit is contained in:
Urtzi Alfaro
2025-11-05 13:34:56 +01:00
parent 5c87fbcf48
commit 394ad3aea4
218 changed files with 30627 additions and 7658 deletions

258
docs/06-security/README.md Normal file
View File

@@ -0,0 +1,258 @@
# Security Documentation
**Bakery IA Platform - Consolidated Security Guides**
---
## Overview
This directory contains comprehensive, production-ready security documentation for the Bakery IA platform. Our infrastructure has been hardened from a **D- security grade to an A- grade** through systematic implementation of industry best practices.
### Security Achievement Summary
- **15 databases secured** (14 PostgreSQL + 1 Redis)
- **100% TLS encryption** for all database connections
- **Strong authentication** with 32-character cryptographic passwords
- **Data persistence** with PersistentVolumeClaims preventing data loss
- **Audit logging** enabled for all database operations
- **Compliance ready** for GDPR, PCI-DSS, and SOC 2
### Security Grade Improvement
| Metric | Before | After |
|--------|--------|-------|
| Overall Grade | D- | A- |
| Critical Issues | 4 | 0 |
| High-Risk Issues | 3 | 0 |
| Medium-Risk Issues | 4 | 0 |
---
## Documentation Guides
### 1. [Database Security Guide](./database-security.md)
**Complete guide to database security implementation**
Covers database inventory, authentication, encryption (transit & rest), data persistence, backups, audit logging, compliance status, and troubleshooting.
**Best for:** Understanding overall database security, troubleshooting database issues, backup procedures
### 2. [RBAC Implementation Guide](./rbac-implementation.md)
**Role-Based Access Control across all microservices**
Covers role hierarchy (4 roles), subscription tiers (3 tiers), service-by-service access matrix (250+ endpoints), implementation code examples, and testing strategies.
**Best for:** Implementing access control, understanding subscription limits, securing API endpoints
### 3. [TLS Configuration Guide](./tls-configuration.md)
**Detailed TLS/SSL setup and configuration**
Covers certificate infrastructure, PostgreSQL TLS setup, Redis TLS setup, client configuration, deployment procedures, verification, and certificate rotation.
**Best for:** Setting up TLS encryption, certificate management, diagnosing TLS connection issues
### 4. [Security Checklist](./security-checklist.md)
**Production deployment and verification checklist**
Covers pre-deployment prep, phased deployment (weeks 1-6), verification procedures, post-deployment tasks, maintenance schedules, and emergency procedures.
**Best for:** Production deployment, security audits, ongoing maintenance planning
## Quick Start
### For Developers
1. **Authentication**: All services use JWT tokens
2. **Authorization**: Use role decorators from `shared/auth/access_control.py`
3. **Database**: Connections automatically use TLS
4. **Secrets**: Never commit credentials - use Kubernetes secrets
### For Operations
1. **TLS Certificates**: Stored in `infrastructure/tls/`
2. **Backup Script**: `scripts/encrypted-backup.sh`
3. **Password Rotation**: `scripts/generate-passwords.sh`
4. **Monitoring**: Check audit logs regularly
## Compliance Status
| Requirement | Status |
|-------------|--------|
| GDPR Article 32 (Encryption) | ✅ COMPLIANT |
| PCI-DSS Req 3.4 (Transit Encryption) | ✅ COMPLIANT |
| PCI-DSS Req 3.5 (At-Rest Encryption) | ✅ COMPLIANT |
| PCI-DSS Req 10 (Audit Logging) | ✅ COMPLIANT |
| SOC 2 CC6.1 (Access Control) | ✅ COMPLIANT |
| SOC 2 CC6.6 (Transit Encryption) | ✅ COMPLIANT |
| SOC 2 CC6.7 (Rest Encryption) | ✅ COMPLIANT |
## Security Architecture
```
┌─────────────────────────────────────────────────────────────┐
│ API GATEWAY │
│ - JWT validation │
│ - Rate limiting │
│ - TLS termination │
└──────────────────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ SERVICE LAYER │
│ - Role-based access control (RBAC) │
│ - Tenant isolation │
│ - Permission validation │
│ - Audit logging │
└──────────────────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ DATA LAYER │
│ - TLS encrypted connections │
│ - Strong authentication (scram-sha-256) │
│ - Encrypted secrets at rest │
│ - Column-level encryption (pgcrypto) │
│ - Persistent volumes with backups │
└─────────────────────────────────────────────────────────────┘
```
## Critical Security Features
### Authentication
- JWT-based authentication across all services
- Service-to-service authentication with tokens
- Refresh token rotation
- Password hashing with bcrypt
### Authorization
- Hierarchical role system (Viewer → Member → Admin → Owner)
- Subscription tier-based feature gating
- Resource-level permissions
- Tenant isolation
### Data Protection
- TLS 1.2+ for all connections
- AES-256 encryption for secrets at rest
- pgcrypto for sensitive column encryption
- Encrypted backups with GPG
### Monitoring & Auditing
- Comprehensive PostgreSQL audit logging
- Connection/disconnection tracking
- SQL statement logging
- Failed authentication attempts
## Common Security Tasks
### Rotate Database Passwords
```bash
# Generate new passwords
./scripts/generate-passwords.sh
# Update environment files
./scripts/update-env-passwords.sh
# Update Kubernetes secrets
./scripts/update-k8s-secrets.sh
```
### Create Encrypted Backup
```bash
# Backup all databases
./scripts/encrypted-backup.sh
# Restore specific database
gpg --decrypt backup_file.sql.gz.gpg | gunzip | psql -U user -d database
```
### Regenerate TLS Certificates
```bash
# Regenerate all certificates (before expiry)
cd infrastructure/tls
./generate-certificates.sh
# Update Kubernetes secrets
./scripts/create-tls-secrets.sh
```
## Security Best Practices
### For Developers
1. **Never hardcode credentials** - Use environment variables
2. **Always use role decorators** on sensitive endpoints
3. **Validate input** - Prevent SQL injection and XSS
4. **Log security events** - Failed auth, permission denied
5. **Use parameterized queries** - Never concatenate SQL
6. **Implement rate limiting** - Prevent brute force attacks
### For Operations
1. **Rotate passwords regularly** - Every 90 days
2. **Monitor audit logs** - Check for suspicious activity
3. **Keep certificates current** - Renew before expiry
4. **Test backups** - Verify restoration procedures
5. **Update dependencies** - Apply security patches
6. **Review access** - Remove unused accounts
## Incident Response
### Security Incident Checklist
1. **Identify** the scope and impact
2. **Contain** the threat (disable compromised accounts)
3. **Eradicate** the vulnerability
4. **Recover** affected systems
5. **Document** the incident
6. **Review** and improve security measures
### Emergency Contacts
- Security incidents should be reported immediately
- Check audit logs: `/var/log/postgresql/` in database pods
- Review application logs for suspicious patterns
## Additional Resources
### Consolidated Security Guides
- [Database Security Guide](./database-security.md) - Complete database security
- [RBAC Implementation Guide](./rbac-implementation.md) - Access control
- [TLS Configuration Guide](./tls-configuration.md) - TLS/SSL setup
- [Security Checklist](./security-checklist.md) - Deployment verification
### Source Analysis Reports
These detailed reports were used to create the consolidated guides above:
- [Database Security Analysis Report](../archive/DATABASE_SECURITY_ANALYSIS_REPORT.md) - Original security analysis
- [Security Implementation Complete](../archive/SECURITY_IMPLEMENTATION_COMPLETE.md) - Implementation summary
- [RBAC Analysis Report](../archive/RBAC_ANALYSIS_REPORT.md) - Access control analysis
- [TLS Implementation Complete](../archive/TLS_IMPLEMENTATION_COMPLETE.md) - TLS implementation
### Platform Documentation
- [System Overview](../02-architecture/system-overview.md) - Platform architecture
- [AI Insights API](../08-api-reference/ai-insights-api.md) - Technical API details
- [Testing Guide](../04-development/testing-guide.md) - Testing strategies
---
## Document Maintenance
**Last Updated**: November 2025
**Version**: 1.0
**Next Review**: May 2026
**Review Cycle**: Every 6 months
**Maintained by**: Security Team
---
## Support
For security questions or issues:
1. **First**: Check the relevant guide in this directory
2. **Then**: Review source reports in the `docs/` directory
3. **Finally**: Contact Security Team or DevOps Team
**For security incidents**: Follow incident response procedures immediately.