Skip to main content

More Info:

Disable anonymous requests to the Kubelet server.

Risk Level

High

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CIS GKE
  • 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

Manual Steps

  1. Check current Kubelet configuration (every worker node)
  2. Edit the Kubelet config file to disable anonymous auth (every worker node)
    Open the file:
    In the authentication section, ensure it looks like this (add or modify as needed):
    Save and exit.
  3. If the node is using Kubelet flags, ensure the flag is set (every worker node, if applicable)
    In the KUBELET_SYSTEM_PODS_ARGS (or equivalent) line, add or ensure:
    Save and exit.
  4. Reload systemd and restart kubelet (every worker node)
  5. Verify kubelet is running with anonymous auth disabled (every worker node)
    Confirm either the config file has authentication: anonymous: enabled: false or the kubelet process includes --anonymous-auth=false.
Using kubectl cannot modify the kubelet’s --anonymous-auth setting or the /var/lib/kubelet/config.yaml file on worker nodes; this must be fixed directly on each node’s host configuration (systemd unit and/or kubelet config file). See the Manual Steps section for the required on-node changes and how to restart kubelet safely.

Additional Reading: