|
| 1 | +# ☁️ Cloud Storage Lens |
| 2 | + |
| 3 | +**Multi-cloud audit toolkit to scan AWS, Azure, and GCP storage services for public exposure and cost visibility.** |
| 4 | +Supports secure scanning, mockfill lifecycle, containerized CLI, and cross-cloud infrastructure provisioning. |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## 🔍 Overview |
| 12 | + |
| 13 | +Cloud Storage Lens analyzes cloud buckets, containers, and blobs for: |
| 14 | + |
| 15 | +- **Public access flags** |
| 16 | +- **Mock data visibility** |
| 17 | +- **Cost estimation based on volume** |
| 18 | +- **CI lifecycle automation** |
| 19 | +- **Secure infrastructure provisioning** |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## 🚀 Quickstart |
| 24 | + |
| 25 | +```bash |
| 26 | +git clone https://github.com/vooradis/cloud-storage-lens.git |
| 27 | +cd cloud-storage-lens |
| 28 | + |
| 29 | +# Install dependencies |
| 30 | +pip install -r requirements.txt |
| 31 | + |
| 32 | +# Fill buckets with mock data |
| 33 | +make mockfill |
| 34 | + |
| 35 | +# Run audit |
| 36 | +make scan |
| 37 | + |
| 38 | +# Clean up objects |
| 39 | +make cleanup |
| 40 | +``` |
| 41 | + |
| 42 | +--- |
| 43 | + |
| 44 | +## 🧰 CLI Commands |
| 45 | + |
| 46 | +Powered by `click` for modular subcommands: |
| 47 | + |
| 48 | +```bash |
| 49 | +python main.py audit --config config/config.dev.yaml |
| 50 | +python main.py fill |
| 51 | +python main.py clean |
| 52 | +``` |
| 53 | + |
| 54 | +Supports AWS profile and Azure connection override: |
| 55 | + |
| 56 | +```bash |
| 57 | +python main.py fill --profile auditor --connection_string UseDevelopmentStorage=true |
| 58 | +``` |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## 🐳 Container Support |
| 63 | + |
| 64 | +```bash |
| 65 | +# Local dev container |
| 66 | +docker-compose up --build |
| 67 | + |
| 68 | +# Full audit lifecycle |
| 69 | +docker-compose run lens bash audit-entrypoint.sh |
| 70 | +``` |
| 71 | + |
| 72 | +Includes `Dockerfile.dev`, `audit-entrypoint.sh`, and mounted `report.csv`, `audit.log`. |
| 73 | + |
| 74 | +--- |
| 75 | + |
| 76 | +## ☁️ Infrastructure Provisioning |
| 77 | + |
| 78 | +Audit-ready resources defined in multi-cloud IaC: |
| 79 | + |
| 80 | +| Cloud | Tool | Folder | Resources | |
| 81 | +| ----- | --------- | ------------------- | ---------------------------- | |
| 82 | +| AWS | CDK | infra/aws-cdk | S3 bucket + audit IAM | |
| 83 | +| Azure | Bicep | infra/azure-bicep | Blob container (public) | |
| 84 | +| GCP | Terraform | infra/gcp-terraform | GCS bucket + lifecycle rules | |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## 🧪 Testing & CI |
| 89 | + |
| 90 | +```bash |
| 91 | +make test # Run unit tests |
| 92 | +flake8 . # Lint audit + tools |
| 93 | +``` |
| 94 | + |
| 95 | +GitHub Actions runs: |
| 96 | + |
| 97 | +- `pytest tests` |
| 98 | +- `flake8 lint` |
| 99 | +- Docker builds |
| 100 | +- Full audit lifecycle |
| 101 | +- Uploads `report.csv` as artifact |
| 102 | + |
| 103 | +--- |
| 104 | + |
| 105 | +## 📂 Project Structure |
| 106 | + |
| 107 | +```plaintext |
| 108 | +auditor/ → access check, cost, report logic |
| 109 | +clients/ → SDK wrappers for AWS, Azure, GCP |
| 110 | +tools/ → mockfill + cleanup scripts |
| 111 | +infra/ → CDK, Bicep, Terraform templates |
| 112 | +scripts/ → shell wrappers for scan lifecycle |
| 113 | +tests/ → pytest mocks for all providers |
| 114 | +config/ → YAML audit config presets |
| 115 | +``` |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## 📸 Screenshots |
| 120 | + |
| 121 | +| Cloud | Preview | |
| 122 | +| ----- | ------- | |
| 123 | +| AWS | | |
| 124 | +| Azure | | |
| 125 | +| GCP | | |
| 126 | + |
| 127 | +(Insert screenshots in `docs/images/` or embed links) |
| 128 | + |
| 129 | +--- |
| 130 | + |
| 131 | +## 📜 License |
| 132 | + |
| 133 | +MIT — built for learning, enterprise demos, and open-source contributions. |
0 commit comments