Per-app egress allowlists via Cilium FQDN policies (tighten the interim 443/80 default) #13
Labels
No labels
bug
discussion
duplicate
enhancement
goal
help wanted
horizon:backlog
horizon:governance
horizon:mvp
invalid
operator-decision
question
roadmap
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-platform/mitosis#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Apps need to call external APIs (the core "build an app with an external API" use case). The app netpol historically blocked ALL external egress. Interim fix (mcp v0.23.13, PR plat/mcp#2): the default
allow-egressnow permits 443/80 to any external host, excluding RFC1918 — so external-API apps work, and internal ranges (other tenants, platform services) stay unreachable.That interim default is broad: an app may reach any external host on 443/80. The desired end-state is least-privilege per-app egress.
Proposal — Cilium FQDN egress allowlists
Adopt Cilium as the CNI and express app egress as
CiliumNetworkPolicywithtoFQDNs, so each app declares the exact external hosts it needs and egress is denied to everything else.plat.sh/egressannotation):api.openweathermap.org,api.stripe.com, …create_app/overlayManifestsrenders aCiliumNetworkPolicy:Benefits
Notes / work
--k3s-arg "--flannel-backend=none"+--disable-network-policy, install Cilium with the DNS proxy /toFQDNsenabled).Surfaced live: a weather app with a synced
OPENWEATHER_API_KEYcould not reach OpenWeather until egress was opened; the interim default now lets it through.Interim is LIVE and merged: apps now default to 443/80 external egress excluding RFC1918 (mcp overlayManifests), so external-API apps work out of the box — that unblocked the core use case. This issue remains for the TIGHTENING: per-app FQDN allowlists via Cilium (the owner runs Cilium elsewhere and prefers it). Not built. Design in the issue body.