More Info:
The ability to create Pods can be abused to run privileged workloads and escalate access. Limit pod-create rights to the minimum required.Risk Level
HighAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
List who can create pods and through which roles
- Run on: any machine with kubectl access
Then more precisely: -
Inspect a specific role/clusterrole that grants pod create
- Run on: any machine with kubectl access
Replace<KIND>withroleorclusterrole,<NAME>with the name from step 1, and<NAMESPACE>for Roles (omit for ClusterRoles):
- Run on: any machine with kubectl access
-
Decide whether each “create pods” permission is truly required (manual review)
- For each role/clusterrole from step 1:
- Identify what workload or team uses it by checking its rolebindings:
- Confirm whether those subjects actually need to create pods. If not clearly required (for example, they only need to read or list pods), plan to remove the
createverb forpodsfrom that role.
- Identify what workload or team uses it by checking its rolebindings:
- For each role/clusterrole from step 1:
-
Edit the role/clusterrole to remove pod create rights
- Run on: any machine with kubectl access
- For each role/clusterrole where
createonpodsis not strictly needed:
In the editor, locate anyrulesentry whereresourcesincludespodsandverbsincludescreate, and removecreatefrom that list (or remove the whole rule if it only existed for pod creation). Save and exit. -
If authorization is managed via manifests/IaC, update the source files
- Run on: any machine with access to your Git/IaC repo
- Locate the YAML defining the same
Role/ClusterRoleobjects (matching names from step 4) and removecreatefromverbsforpodsthere as well, then apply:
-
Verify that unauthenticated users cannot create pods cluster-wide
- Run on: any machine with kubectl access
Ensure the output is:
canCreatePodsAsSystemAuthenticated: no
Using kubectl
Using kubectl
create from the pods rule.Example: editing an over‑permissive ClusterRole named dev-users:dev-users-clusterrole.yaml in an editor and, in any rule with resources: ["pods"] (or including pods), remove create from verbs:dev-namespace:dev-role:dev-role.yaml similarly, removing create from any rule that lists pods in resources, then:Automation
Automation

