Free — no signup required

Pod Security Standards (PSS) Levels

2 min read

Three Profiles, Clearly Defined

The Kubernetes project defines exactly three security profiles. Every field they restrict is documented in the official specification, making them auditable and predictable.

1. Privileged — Unrestricted

No restrictions whatsoever. A Pod in a Privileged namespace can run as root, mount host paths, use hostNetwork, and run in privileged mode.

Use case: System-level components that genuinely need host access — CNI plugins (Calico, Cilium), CSI storage drivers, node monitoring agents (Datadog, Prometheus node-exporter). These components are trusted infrastructure, not application workloads.

2. Baseline — Minimally Restrictive

Prevents the most dangerous known privilege escalation vectors while remaining compatible with most standard container images. Key restrictions include:

  • No privileged: true containers.
  • No hostPID, hostIPC, or hostNetwork.
  • No host path mounts.
  • Restricted securityContext.capabilities (no adding dangerous capabilities like NET_ADMIN or SYS_ADMIN).

Use case: General application workloads where you want a safety net but don't want to rewrite every Deployment. A good default for most namespaces.

3. Restricted — Heavily Restricted

Implements current security best practices. Requires explicit secure configuration. Key requirements include:

  • Must run as a non-root user (runAsNonRoot: true).
  • Must drop all Linux capabilities (capabilities.drop: ["ALL"]).
  • No privilege escalation allowed (allowPrivilegeEscalation: false).
  • Must use a restricted set of volume types (no hostPath).
  • Seccomp profile must be set to RuntimeDefault or a custom profile.

Use case: Internet-facing applications, services handling sensitive data, any workload where a container compromise would be high-impact. This is the security gold standard for application containers. A Pod that satisfies this profile sets runAsNonRoot: true and a fixed non-root runAsUser at the Pod level, a RuntimeDefault seccomp profile, and per-container settings disabling privilege escalation while dropping all Linux capabilities.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free