Skip to main content

More Info:

Verifies that the AlwaysAdmit admission plugin is not enabled. AlwaysAdmit accepts every request and bypasses all other admission controls.

Risk Level

High

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, open the API server static pod manifest in an editor:
  2. In the command: (or args:) list of the kube-apiserver container, locate any entry that starts with --enable-admission-plugins= and remove AlwaysAdmit from the comma-separated list. For example, change:
    to:
    If AlwaysAdmit is the only value, you may delete the whole --enable-admission-plugins=... line.
  3. Still in the same file, check for any explicit use of the deprecated --admission-control= flag and remove AlwaysAdmit from that list as well, or remove the flag line entirely if appropriate.
  4. Save the file and exit the editor. The kubelet will detect the manifest change and automatically restart the kube-apiserver static pod; expect a brief API server interruption.
  5. After the pod restarts, verify that AlwaysAdmit is no longer configured in the running process on that control plane node:
  6. Repeat steps 1–5 on every control plane node in the cluster.
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 every control plane node in /etc/kubernetes/manifests/kube-apiserver.yaml; see the Manual Steps section for the exact procedure.