Lion Cipher Lab

Enforce Layer-7 network policy between pods with Cilium

Why it matters

Plain Kubernetes NetworkPolicy is an L3/L4 control: it reasons about IP addresses, protocols and port numbers, and that is the entire vocabulary it has. It can say 'the frontend may open TCP 80 to the backend.' It physically cannot say 'the frontend may call GET /public but not POST /admin,' because by the time an HTTP method and path exist, the connection they travel on was already permitted or dropped — the policy engine never sees inside the request. That gap matters enormously in a microservice world, where a single service often exposes both a harmless read API and a devastating…

What you'll learn

Steps in this lab

  1. The gap: why 'allow port 80' allows every HTTP request there is
  2. Build a throwaway cluster with kind and install Cilium as the CNI
  3. Deploy the demo microservices and confirm they can talk
  4. Apply an L3/L4 policy — and watch it fail to stop the dangerous request
  5. Apply the L7 policy — and prove the 403-at-the-proxy behaviour
  6. Watch the verdicts with Hubble
  7. The model, the costs, and the judgment call

Open the full interactive lab →