This tool is a proof-of-concept tool, which profiles apps running in k8s, and issues TracingPolicies allowing only processes run under the profiles.
It parses output from Tetragon and creates Cilium TracingPolicies, which enable only, per namespace, per workloads, some whitelisted processes.
Tetragon MUST be running in the
kubernetes cluster with the tetragon.enablePolicyFilter: true
value.
Check the Quick Start guide:
$ helm repo add cilium https://helm.cilium.io
$ helm repo update
$ helm install tetragon cilium/tetragon -n kube-system --set tetragon.enablePolicyFilter=true$ git clone https://github.com/camptocamp/tetragon-policy-builder.git
$ cd tetragon-policy-builder
$ helm install -n kube-system policy-builder helm/tetragon-policy-builderThen you can open a "port-forward" to access the web UI:
kubectl port-forward -n kube-system deploy/policy-builder 5000:5000and access the interface with your wen browser: http://localhost:5000/
After uninstalling with helm:
$ helm uninstall -n kube-system policy-builderYou will need to cleanup some configmap created by the policy builder, you can list configmaps with:
$ kubectl get cm -A -l generated-by=tetragon-policy-builderand then delete configmap with:
$ kubectl delete cm -A -l generated-by=tetragon-policy-builderThe docker container will need to authenticate to the kubernetes. You will need to share the kubeconfig to the container:
$ docker run -p 5000:5000 -e KUBECONFIG=/tmp/kubeconfig -v $KUBECONFIG:/tmp/kubeconfig ghcr.io/camptocamp/tetragon-policy-builder:masterBe sure to cleanup configmap created by the policy builder with:
$ kubectl delete cm -A -l generated-by=tetragon-policy-builderUse you web browser to access the interface: http://localhost:5000/
$ git clone https://github.com/camptocamp/tetragon-policy-builder.git
$ cd tetragon-policy-builder
$ virtualenv venv
$ . venv/bin/activate
$ pip install -r /path/to/requirements.txt
$ python3 -m builderEnsure that you have access to a kubernetes cluster:
$ kubectl cluster-info
Kubernetes control plane is running at https://e07df10a-56d2-11ee-bd90-a77949f1c0d2.sks-de-fra-1.exo.io:443
CoreDNS is running at https://e07df10a-56d2-11ee-bd90-a77949f1c0d2.sks-de-fra-1.exo.io:443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.Launch the policy builder:
python3 -m builderOpen the web interface: http://localhost:5000/
Be sure to cleanup configmap created by the policy builder with:
$ kubectl delete cm -A -l generated-by=tetragon-policy-builder