The Zero Trust Mental Model
The Architecture
Cloudflare vs Tailscale
Access Policies
Adding a New Service
- Create a DNS CNAME record: newservice.mccarn.tech → <tunnel-id>.cfargotunnel.com
- Add an ingress rule to the tunnel via the Cloudflare API, mapping newservice.mccarn.tech to the internal origin (for example, http://10.0.1.50:8080)
The Auth Mode Incident
QUIC and Outbound-Only Connectivity
What Doesn't Run Behind Cloudflare Access
Tech Stack
- Cloudflare Tunnel with multiple cloudflared connectors for HA (QUIC protocol, outbound-only)
- Cloudflare Access for identity-aware per-service authentication
- Google OAuth as the interactive identity provider, with service tokens for automation
- Wildcard Access policy covering *.mccarn.tech with 24-hour session duration
- Cloudflare API for direct-origin DNS and tunnel ingress management
- Envoy Gateway + HTTPRoutes for newer Kubernetes-hosted services behind the same tunnel
- 32 original HTTP services, now expanded by Kubernetes-hosted apps using the same hostname pattern