Skip to main content

More Info:

Do not allow all requests.

Risk Level

Low

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, open the kube-apiserver static pod manifest in an editor:
  2. In the spec.containers[0].command list, locate any line containing --enable-admission-plugins=.
    • If the value contains AlwaysAdmit, remove only AlwaysAdmit from the comma‑separated list (and any now-superfluous comma).
    • If AlwaysAdmit is the only value, remove the entire --enable-admission-plugins=AlwaysAdmit argument line.
  3. Still in the same manifest, if there is a separate --admission-control= argument and it contains AlwaysAdmit, remove only AlwaysAdmit from that comma‑separated list, or remove the whole argument if it only contains AlwaysAdmit.
  4. Save the file and exit the editor. The kubelet will automatically detect the manifest change and restart the kube-apiserver static pod; expect a brief control-plane disruption while it restarts.
  5. Wait for the new kube-apiserver process to be running:
    (If crictl is not available, use sudo docker ps | grep kube-apiserver depending on your container runtime.)
  6. Verify that AlwaysAdmit is no longer configured in the API server arguments on each control plane node:
kubectl cannot modify the kube-apiserver static pod manifest or its process flags, so this finding cannot be fixed via the Kubernetes API. The configuration must be changed directly on each control plane node at /etc/kubernetes/manifests/kube-apiserver.yaml; see the Manual Steps section for how to do this.

Additional Reading: