This project is a Proof of Concept (POC) demonstrating how an Istio service mesh can provide zero-trust security and decoupled identity passing.
Walkthrough of the Istio security POC (login, persona-based access, Cerbos + RLS).
The architecture enforces strict service-to-service authentication (mTLS & AuthZ) and utilizes a sidecar EnvoyFilter to securely translate a platform-standard identity header (x-mesh-identity) into custom application-specific headers.
For an in-depth explanation of the design, see the Architecture Document.
To run the tests for the currently implemented services:
-
Run Python Tests
This script runs thepytestsuites for all existing Python applications../scripts/test-python.sh
-
Run Cerbos Policy Tests
This script runs the Cerbos policy tests../scripts/test-cerbos.sh
-
Run the UI (after cluster is up)
The Streamlit UI runs locally on the host (outside the cluster). Requiresmkcert(brew install mkcert nss)../scripts/create-local-certs.sh # one-time: generates trusted certs ./scripts/run-ui.sh # starts UI at https://app.localtest.me:8501
-
Run the security attack suite (after cluster is up)
Manual negative-path tests across 12 attack categories. See security-tests/ATTACKS.md.pip install -r security-tests/requirements.txt ./security-tests/run-attacks.sh
For full local cluster setup and end-to-end validation, see the Setup and Run Guide.
After the cluster and UI are running (setup guide), open https://app.localtest.me:8501, click Login, and use these Keycloak accounts:
| Persona | Username | Password | What to check |
|---|---|---|---|
| Employee | alice.employee |
alice-password |
Own profile shows full PII/salary; other employees are limited |
| Manager | mary.manager |
mary-password |
Direct report (Alice) shows salary band, not exact salary |
| HR Admin | henry.hradmin |
henry-password |
HR fields on employees; no IT asset serials |
| IT Admin | ivan.itadmin |
ivan-password |
Minimal employee fields; full IT asset access |
apps/- FastAPI microservices, Streamlit UI, auth-service, and database seedercerbos/- Cerbos policies and testsdb/- PostgreSQL initialization scripts and migrationsdeployment/- Kubernetes manifests (base, apps, data, identity, networking, security)docs/- Architecture and setup documentationkind/- Kind cluster configurationscripts/- Automation scripts for cluster management and testingsecurity-tests/- Security attack suite (12 categories; see ATTACKS.md)
