Skip to main content

More Info:

Verifies that —use-service-account-credentials is set to true so each controller uses its own service account, enabling least-privilege RBAC for control loops.

Risk Level

High

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, back up the existing manifest:
  2. Open the controller manager manifest for editing:
  3. In the spec.containers[0].command section, ensure the following flag is present and set to true (add it if missing):
    Example snippet:
  4. Save and exit the editor. The kube-controller-manager static pod will be automatically restarted by the kubelet because the manifest under /etc/kubernetes/manifests was modified.
  5. Wait 30–60 seconds, then confirm the controller manager process is running with the correct flag:
  6. Verify that the output includes --use-service-account-credentials=true in the kube-controller-manager command line.
kubectl cannot modify the kube-controller-manager static pod manifest or its process flags, so this setting cannot be fixed via the Kubernetes API. To remediate, edit /etc/kubernetes/manifests/kube-controller-manager.yaml directly on every control plane node as described in the Manual Steps section.