More Info:
Anonymous authentication allows unauthenticated requests to the kubelet API. Disabling it ensures every request is authenticated, preventing anonymous access to node and workload data.Risk Level
CriticalAddress
SecurityCompliance Standards
- CIS EKS
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every worker node, SSH in and confirm how kubelet is configured and where its config file is:
If you see a
--config=argument, note the full path (for example,/var/lib/kubelet/config.yamlor/etc/kubernetes/kubelet.conf). If there is no--configargument, you will use the systemd unit/args file instead. -
If kubelet uses a config file (Method 1), edit it to disable anonymous auth (example uses
/var/lib/kubelet/config.yaml; replace with the actual path you found):Under theauthentication:section, ensure it contains:If theauthenticationoranonymoussections are missing, add them as above, respecting YAML indentation. -
If kubelet instead uses executable arguments (Method 2), edit the systemd drop‑in on each worker node (EKS-optimized and similar systems):
In the line defining kubelet arguments (often
KUBELET_ARGS=or insideExecStart=), ensure--anonymous-auth=falseis present. For example:or inExecStart=: -
On every worker node, reload systemd configuration and restart kubelet (this restarts the kubelet and may briefly impact node status/workload reporting):
-
Verify on every worker node that the kubelet is running and the change is active:
Inspect the output:
- If using args, confirm
--anonymous-auth=falseappears. - If using a config file, confirm the
--config=argument points to the file you edited.
- If using args, confirm
Using kubectl
Using kubectl
kubectl cannot change kubelet process flags or its on-node configuration file at
/var/lib/kubelet/config.yaml, so this finding cannot be remediated via the Kubernetes API. Apply the fix directly on every worker node’s host OS as described in the Manual Steps section.Automation
Automation

