More Info:
Disable anonymous requests to the Kubelet server.Risk Level
HighAddress
SecurityCompliance Standards
- APRA CPS 234 (Australia)
- BSI C5 (Germany)
- Brazil LGPD
- CCPA / CPRA (California)
- CIS Critical Security Controls v8
- CIS EKS
- CMMC 2.0
- CSA Cloud Controls Matrix v4
- DPDPA
- Digital Operational Resilience Act (EU)
- Essential 8
- ISO/IEC 27017
- ISO/IEC 27018
- ISO/IEC 27701
- KSA PDPL
- MAS Technology Risk Management (Singapore)
- MITRE ATT&CK (Cloud)
- NIS2 Directive
- NIST SP 800-171
- NYDFS 23 NYCRR 500
- SWIFT Customer Security Controls Framework
- Sarbanes-Oxley IT General Controls
- UK NCSC Cyber Assessment Framework
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
- On every worker node, open the kubelet config file and ensure anonymous auth is disabled:
authentication:- If the node also uses a systemd drop-in with kubelet flags, ensure there is no conflicting
--anonymous-authflag. Open the file:
KUBELET_KUBEADM_ARGS (or similar) line, remove any --anonymous-auth=true flag. If you must specify it, set:- Reload systemd configuration on the worker node:
- Restart the kubelet on the worker node (this will temporarily impact node status and pod scheduling on this node):
- Verify the kubelet process no longer allows anonymous auth by inspecting its arguments:
- there is no
--anonymous-auth=trueflag present, and/or - if
--anonymous-authappears, it is--anonymous-auth=false.
Using kubectl
Using kubectl
kubectl cannot change the kubelet’s
--anonymous-auth setting because it is configured on each worker node’s host (in /var/lib/kubelet/config.yaml or the kubelet systemd unit). To remediate this finding, follow the host-level instructions in the Manual Steps section on every worker node.Automation
Automation

