
Kubernetes makes it easy to deploy applications at scale, and just as easy to deploy insecure configurations at scale. Many Kubernetes components are permissive by default, and a single over-privileged pod or service account can be enough for an attacker to take over an entire cluster and the cloud account behind it.
This guide covers the Kubernetes security best practices that matter most, organized by layer, with a checklist at the end.
Understanding the typical attack path helps prioritize defenses:
MITRE ATT&CK for Containers documents these techniques in detail.
Managed services such as EKS, AKS and GKE handle much of the control plane, but API access, authentication settings and logging remain your responsibility.
Role-based access control is where many cluster takeovers start.
cluster-admin to users, CI systems or applicationsescalate and bind verbs, and wildcards on resources or verbsautomountServiceAccountToken: false) for pods that do not call the Kubernetes APIKubernetes defines three Pod Security Standards: Privileged, Baseline and Restricted. Pod Security Admission, which replaced the removed PodSecurityPolicy, enforces them per namespace. Aim for Restricted for application workloads:
hostPath volumes, which can expose the node’s file systemRuntimeDefault)By default, every pod can talk to every other pod in the cluster.
Kubernetes Secrets are only Base64-encoded, not encrypted, unless encryption at rest is configured.
get and list on secrets are powerful permissionslatestAdmission controllers check every resource before it is created. Beyond Pod Security Admission, policy engines such as OPA Gatekeeper or Kyverno can enforce rules like “only signed images from our registry”, “every deployment needs resource limits” or “no public load balancers in this namespace”. Policies can also be checked earlier, in CI, by scanning manifests and Helm charts, as part of IaC security analysis.
cluster-admin bindings; RBAC reviewedKubernetes security is about limiting blast radius: least-privilege access to the API, hardened pods, restricted networks, protected secrets and trusted images. Each layer makes it harder for one compromised container to become a compromised cluster.
Want to see what an attacker could do inside your cluster? Our Kubernetes Penetration Testing service tests your clusters from the outside and from a compromised pod, and our Kubernetes Security Training teaches your team to harden them. Talk to our team to get started.

Subscribe to our cyber security newsletter