Skip to content

Commit 99b1339

Browse files
committed
refactor: [#246] organize manual testing documentation
- Move manual-grafana-testing-results.md to docs/e2e-testing/manual/ directory - Rename to grafana-testing-results.md for consistency - Organize manual E2E testing documentation in dedicated directory
1 parent 8323def commit 99b1339

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

docs/e2e-testing/manual-grafana-testing-results.md renamed to docs/e2e-testing/manual/grafana-testing-results.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,33 @@ The complete deployment workflow works correctly:
189189
3.**Step-level conditionals** - Grafana firewall step only runs when Grafana is enabled
190190
4.**Enabled-by-default pattern** - Grafana included in default templates (can be removed)
191191

192+
### Security Issue Discovered & Fixed
193+
194+
**Issue**: During manual testing, Prometheus was discovered to be accessible at `http://10.140.190.35:9090` despite UFW firewall being configured with default deny incoming policy.
195+
196+
**Root Cause**: Docker bypasses UFW firewall rules when publishing ports with `0.0.0.0:9090:9090` binding. Docker manipulates iptables directly, taking precedence over UFW rules.
197+
198+
**Fix Applied** (commit 8323def):
199+
200+
- **Removed** Prometheus port mapping (`ports: - "9090:9090"`) from docker-compose template
201+
- Prometheus is now truly internal-only (not accessible from external network)
202+
- Grafana continues to access Prometheus via Docker internal network (`http://prometheus:9090`)
203+
- Updated tests to verify port is NOT exposed (security expectation)
204+
205+
**Security Impact**:
206+
207+
-**Before**: Prometheus UI accessible externally (security vulnerability)
208+
-**After**: Prometheus UI NOT accessible externally (internal-only as intended)
209+
-**Grafana**: Unchanged (uses Docker network, not host ports)
210+
211+
**Verification Method**:
212+
213+
- Before fix: `curl http://10.140.190.35:9090` → HTTP 405 (accessible)
214+
- After fix: `curl http://10.140.190.35:9090` → Connection refused (not accessible)
215+
- Grafana still works: Accesses Prometheus via Docker network name resolution
216+
217+
This issue existed since Prometheus slice implementation but was not detected until Grafana integration revealed the exposure during manual testing.
218+
192219
### Next Steps
193220

194221
**For Complete Phase 3 Verification**:

0 commit comments

Comments
 (0)