If you do not already have a k8s cluster, check the pre-requisites to setup one.
If you want to try KubeArmor directly on the host without k8s, use kubearmor in systemd mode.
curl -sfL https://raw.githubusercontent.com/kubearmor/kubearmor-client/main/install.sh | sudo sh -s -- -b /usr/local/bin
karmor install
Output of karmor install
aws@pandora:~$ karmor install
Auto Detected Environment : docker
CRD kubearmorpolicies.security.kubearmor.com ...
CRD kubearmorhostpolicies.security.kubearmor.com ...
Service Account ...
Cluster Role Bindings ...
KubeArmor Relay Service ...
KubeArmor Relay Deployment ...
KubeArmor DaemonSet ...
KubeArmor Policy Manager Service ...
KubeArmor Policy Manager Deployment ...
KubeArmor Host Policy Manager Service ...
KubeArmor Host Policy Manager Deployment ...
It is assumed that the k8s cluster is already present/reachable setup with the required prerequisites and the user has rights to create service-accounts and cluster-role-bindings.
a. Deploy sample multiubuntu app
kubectl apply -f https://raw.githubusercontent.com/kubearmor/KubeArmor/main/examples/multiubuntu/multiubuntu-deployment.yaml
b. Deploy sample policies
kubectl apply -f https://raw.githubusercontent.com/kubearmor/KubeArmor/main/examples/multiubuntu/security-policies/ksp-group-1-proc-path-block.yaml
This sample policy blocks execution of sleep
command in ubuntu-1 pods.
$ POD_NAME=$(kubectl get pods -n multiubuntu -l "group=group-1,container=ubuntu-1" -o jsonpath='{.items[0].metadata.name}') && kubectl -n multiubuntu exec -it $POD_NAME -- bash
# sleep 1
(Permission Denied)
kubectl port-forward -n kube-system svc/kubearmor 32767:32767
karmor log
Manual YAML based KubeArmor deployment
NOTE
- "docker": KubeArmor deployment for self-managed k8s with docker (v18.09 and below).
- "generic": KubeArmor deployment for self-managed k8s with containerd and docker (v18.09 and above).
- Google Kubernetes Engine (GKE) with Container Optimized OS (COS)
- GKE with Ubuntu image
- Amazon Elastic Kubernetes Service (EKS)
- Self-managed (on-prem) k8s
- Local k8s engines (k3s, microk8s, and minikube)