π Your real-time cloud security guardian that never sleeps
CloudSentry provides enterprise-grade, real-time security auditing for multi-cloud environments. Using an event-driven architecture, it immediately assesses the security impact of changes in your cloud infrastructure, providing instant visibility into security posture across AWS, Azure, and GCP.
- Real-time Detection: Sub-second security assessment as changes happen
- Event-driven Architecture: Optimized for high-volume cloud environments
- Scalable Processing: Handle thousands of events per second
- Multi-cloud Support: AWS, Azure, and GCP integration
- Multi-account Management: Centralized security across organizations
- Cross-service Auditing: Complete visibility across all cloud services
- Prioritized Findings: Severity-based security recommendations
- Context-rich Insights: Detailed impact analysis and remediation steps
- Custom Rules Engine: Tailor security policies to your needs
- Real-time Dashboard: Modern, responsive interface with live updates
- Interactive Visualizations: Rich charts and graphs for security metrics
- Mobile-responsive: Monitor security on any device
- AWS CloudTrail: EventBridge/SQS ingestion for real-time events
- Azure Monitor: Activity Logs and Resource Changes via Event Hubs
- GCP Cloud Logging: Pub/Sub integration for audit logs
- Multi-account Support: AWS Organizations and Azure Management Groups
- Event Ingestor: High-performance event normalization and processing
- Rule Engine: Extensible security rule evaluation framework
- Findings Store: Optimized storage for security findings
- API Gateway: RESTful and WebSocket APIs for real-time access
- PostgreSQL: Primary database for findings and configuration
- Redis: High-speed caching and session management
- Time-series Storage: Historical security metrics and trends
- Prometheus: Metrics collection and alerting
- Grafana: Advanced dashboards and visualization
- Loki: Centralized log aggregation and analysis
| Rule ID | Description | Severity | Cloud | Resource |
|---|---|---|---|---|
| S3-001 | S3 bucket allows public read access | CRITICAL | AWS | S3 Buckets |
| EC2-001 | Security group allows SSH from 0.0.0.0/0 | CRITICAL | AWS | EC2 SG |
| AZ-001 | Storage account allows public access | CRITICAL | Azure | Storage |
| GCP-001 | Cloud Storage bucket is public | CRITICAL | GCP | GCS |
| Rule ID | Description | Severity | Cloud | Resource |
|---|---|---|---|---|
| IAM-002 | IAM policy allows full administrative privileges | HIGH | AWS | IAM Policies |
| AZ-002 | VM allows RDP from internet | HIGH | Azure | Virtual Machines |
| GCP-002 | Compute Engine has open SSH to world | HIGH | GCP | Compute Engine |
| Rule ID | Description | Severity | Cloud | Resource |
|---|---|---|---|---|
| S3-002 | S3 bucket has no encryption enabled | MEDIUM | AWS | S3 Buckets |
| IAM-001 | IAM user has no MFA enabled | MEDIUM | AWS | IAM Users |
| AZ-003 | Key Vault lacks soft delete | MEDIUM | Azure | Key Vault |
- Docker & Docker Compose (v20.10+)
- Cloud Account (AWS/Azure/GCP) with appropriate permissions
- Python 3.9+ (for development)
- Node.js 16+ (for dashboard development)
# 1. Clone the repository
git clone https://github.com/your-org/cloudsentry.git
cd cloudsentry
# 2. Set up environment
cp .env.example .env
# Edit .env with your cloud credentials
# 3. Start all services
docker-compose up -d
# 4. Access the application
# Dashboard: http://localhost:3000
# API Docs: http://localhost:8000/docs
# WebSocket Test: http://localhost:8000/ws-test# Check service status
docker-compose ps
# View logs
docker-compose logs -f
# Test API
curl http://localhost:8000/health/detailedBase URL: https://your-domain.com/api/v1
GET /findings # List all findings with filtering
GET /findings/{id} # Get specific finding details
PATCH /findings/{id}/resolve # Mark finding as resolved
POST /findings/{id}/acknowledge # Acknowledge findingGET /findings/stats/summary # Overall security summary
GET /findings/stats/trends # Historical trends
GET /findings/stats/by-severity # Findings by severity
GET /findings/stats/by-account # Findings by cloud accountGET /rules # List all security rules
GET /rules/{id} # Get rule details
POST /rules # Create custom rule
PUT /rules/{id} # Update existing ruleGET /health/detailed # Comprehensive health check
POST /audits/trigger # Trigger manual audit
GET /audits/status/{id} # Check audit statusConnect to: wss://your-domain.com/ws
{
"type": "finding",
"rule_id": "S3-001",
"resource_id": "arn:aws:s3:::public-bucket",
"severity": "CRITICAL",
"timestamp": "2024-01-15T12:00:00Z",
"account": "123456789012",
"region": "us-east-1",
"description": "S3 bucket allows public read access",
"remediation": "Remove public access policy and enable bucket ACL restrictions"
}| Variable | Description | Default | Required |
|---|---|---|---|
| Cloud Provider Settings | |||
AWS_REGION |
AWS region for auditing | us-east-1 |
Yes |
AWS_ACCESS_KEY_ID |
AWS access key ID | - | Yes |
AWS_SECRET_ACCESS_KEY |
AWS secret access key | - | Yes |
AZURE_SUBSCRIPTION_ID |
Azure subscription ID | - | Yes |
AZURE_CLIENT_ID |
Azure service principal ID | - | Yes |
AZURE_CLIENT_SECRET |
Azure service principal secret | - | Yes |
GCP_PROJECT_ID |
Google Cloud project ID | - | Yes |
GCP_CREDENTIALS_PATH |
Path to GCP service account key | - | Yes |
| Multi-account Settings | |||
ENABLE_MULTI_ACCOUNT |
Enable multi-account support | false |
No |
MEMBER_ACCOUNT_ROLE_NAME |
IAM role for member accounts | CloudSentryAuditRole |
No |
| Database Settings | |||
DATABASE_URL |
PostgreSQL connection string | - | Yes |
REDIS_URL |
Redis connection string | - | Yes |
| Notification Settings | |||
SLACK_WEBHOOK_URL |
Slack webhook for notifications | - | No |
SMTP_HOST |
SMTP server for email notifications | - | No |
SMTP_PORT |
SMTP port | 587 |
No |
SMTP_USERNAME |
SMTP username | - | No |
SMTP_PASSWORD |
SMTP password | - | No |
# Run all tests with coverage
pytest --cov=app --cov-report=html --cov-report=term
# Run specific test categories
pytest tests/unit/ -v # Unit tests
pytest tests/integration/ -v # Integration tests
pytest tests/security/ -v # Security tests
pytest tests/performance/ -v # Performance tests
pytest tests/multi_cloud/ -v # Multi-cloud tests
# Run with specific markers
pytest -m "not slow" # Skip slow tests
pytest -m "security" # Security tests only| Dashboard | Description | Key Metrics |
|---|---|---|
| CloudSentry Overview | Main operational dashboard | Event rate, findings count, system health |
| Security Posture | Security metrics and trends | Risk score, compliance status, threat landscape |
| API Performance | API monitoring | Request rate, latency, error rates |
| Database Health | Database performance | Connection pool, query performance, storage |
| Multi-cloud Overview | Cross-cloud metrics | Account coverage, service distribution |
- System downtime > 30 seconds
- Critical security findings detected
- Data breach indicators identified
- Authentication failures > 100/min
- API error rate > 5% for 2 minutes
- Database connections > 80% capacity
- Memory usage > 85%
- Disk space < 15% available
# Development environment
docker-compose up -d
# Production with optimizations
docker-compose -f docker-compose.yml -f docker-compose.production.yml up -d
# Scale services
docker-compose up -d --scale api=3 --scale worker=5# Install using Helm
helm repo add cloudsentry https://charts.cloudsentry.io
helm install cloudsentry cloudsentry/cloudsentry \
--set cloudProvider.aws.enabled=true \
--set monitoring.grafana.enabled=true \
--set notifications.slack.webhookUrl=$SLACK_WEBHOOK
# Upgrade deployment
helm upgrade cloudsentry cloudsentry/cloudsentry -f values.yaml
# Rollback if needed
helm rollback cloudsentry 1- Rate Limiting: Configurable API rate limits per endpoint
- Input Validation: Comprehensive input sanitization and validation
- SQL Injection Prevention: Parameterized queries and ORM protection
- XSS Protection: Content Security Policy and output encoding
- CSRF Protection: Token-based CSRF validation
- Security Headers: HSTS, X-Frame-Options, X-Content-Type-Options
We welcome contributions from the community! Here's how to get started:
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/amazing-feature) - βοΈ Commit your changes (
git commit -m 'Add amazing feature') - π¦ Push to branch (
git push origin feature/amazing-feature) - π Open a Pull Request
- β Write comprehensive tests for new features
- β Update documentation (README, API docs, code comments)
- β Follow PEP 8 style guide with Black formatting
- β Use type hints throughout the codebase
- β Add security considerations for new features
- β Include performance implications in documentation
License: MIT License - see the LICENSE file for details.
Copyright: Β© 2024 CloudSentry Contributors
Trademark: CloudSentryβ’ is a trademark of CloudSentry Inc.
- AWS - CloudTrail, EventBridge, and security services
- Microsoft Azure - Monitor, Activity Logs, and security tools
- Google Cloud Platform - Cloud Logging, Pub/Sub, and security APIs
- FastAPI - Modern, fast web framework for building APIs
- React - JavaScript library for building user interfaces
- PostgreSQL - Powerful open source database
- Redis - In-memory data structure store
- Grafana - The open observability platform
- Prometheus - Monitoring system and time series database
| Channel | Link | Response Time |
|---|---|---|
| π GitHub Issues | Report a Bug | 24-48 hours |
| π¬ GitHub Discussions | Community Forum | Community response |
| π§ Email Support | support@cloudsentry.io | 24 hours |
| π¬ Slack Community | Join our Slack | Real-time |
| π Documentation | docs.cloudsentry.io | Self-service |
Built with β€οΈ for the cloud security community
π Get Started β’ π Documentation β’ π€ Contributing β’ π Support
β Star us on GitHub | π¦ Follow us on Twitter | π§ Subscribe to our newsletter