More Info:
Verifies that —authorization-mode does not include AlwaysAllow. AlwaysAllow authorizes every request and effectively disables access control.Risk Level
CriticalAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
- On every control plane node, back up the API server manifest:
- On every control plane node, open the manifest for editing:
- In the
command:orargs:section of the kube-apiserver container, locate any--authorization-modeentry that includesAlwaysAllowand change it to excludeAlwaysAllow, for example:
--authorization-mode is missing, add a line like the above under the kube-apiserver container args. Save and exit.Note: editing this file will cause the kube-apiserver static pod to restart automatically.
- Wait 30–60 seconds and confirm the kube-apiserver pod is running and ready (from any machine with kubectl access):
- On every control plane node, verify the running process no longer uses
AlwaysAllow:
- In the output, ensure the
kube-apiservercommand line contains--authorization-modewithoutAlwaysAllow(for example--authorization-mode=Node,RBAC) and thatAlwaysAllowdoes not appear anywhere in the arguments.
Using kubectl
Using kubectl
kubectl cannot modify the API server’s static pod manifest or process flags, so this finding cannot be fixed through the Kubernetes API. To remediate, you must edit /etc/kubernetes/manifests/kube-apiserver.yaml directly on every control plane node; see the Manual Steps section for detailed guidance.Automation
Automation

