Skip to main content

More Info:

Verifies that —etcd-certfile and —etcd-keyfile are set so the API server authenticates to etcd over mutual TLS, protecting the cluster datastore.

Risk Level

High

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, confirm the API server static pod manifest path:
    If the file is missing, locate it:
  2. On every control plane node, identify existing kubelet client cert/key files (or create them per your PKI process if they do not exist):
    If you must generate them, follow your organization’s CA process; ensure the certificate is trusted by kubelets.
  3. On every control plane node, back up the API server manifest before editing:
  4. On every control plane node, edit the API server manifest to include the kubelet client certificate and key flags (this will restart the API server when the file changes):
    Adjust the paths /etc/kubernetes/pki/kubelet-client.crt and .key to match your actual files. Ensure they appear as separate - arguments under command: in the manifest.
  5. On every control plane node, wait 30–60 seconds for the kubelet to detect the manifest change and restart the kube-apiserver container. Then verify the API server process includes the new flags:
    Confirm you see both --kubelet-client-certificate=/absolute/path/to/client-certificate-file and --kubelet-client-key=/absolute/path/to/client-key-file in the command line.
kubectl cannot modify the kube-apiserver static pod manifest or its process flags; this finding must be remediated by editing /etc/kubernetes/manifests/kube-apiserver.yaml directly on every control plane node. Refer to the Manual Steps section for the exact host-level changes and verification commands.