Skip to main content

More Info:

Do not allow all requests. Enable explicit authorization.

Risk Level

Medium

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. On every worker node, SSH in and confirm how kubelet is started and where its config lives:
    If you see a --config=/var/lib/kubelet/config.yaml (or similar) argument, proceed with Method 1 below. If you instead see explicit flags like --authorization-mode=AlwaysAllow, use Method 2.
  2. Method 1 – kubelet config file (/var/lib/kubelet/config.yaml):
    a. Back up and edit the config:
    b. In the YAML, ensure these sections exist and are set correctly (add or adjust as needed):
    c. Save the file.
  3. Method 2 – kubelet executable arguments (systemd):
    a. Back up and edit the kubelet systemd drop‑in:
    b. In the KUBELET_ARGS (or equivalent) line, remove any --authorization-mode=AlwaysAllow and ensure these flags are present:
    c. Save the file.
  4. On every worker node, reload systemd and restart kubelet (both methods):
    Ensure the service is active (running) and no errors are reported related to the new flags/config.
  5. Verification on every worker node (derived from the audit command):
    Confirm that:
    • There is no --authorization-mode=AlwaysAllow in the kubelet command line, and
    • Either the kubelet is using /var/lib/kubelet/config.yaml where authorization.mode: Webhook is set, or the process flags include --authorization-mode=Webhook and --authentication-token-webhook.
kubectl cannot modify kubelet host-level configuration such as /var/lib/kubelet/config.yaml or the kubelet systemd unit and flags on worker nodes. To remediate this finding, you must make the changes directly on each node’s OS (kubelet config file or systemd unit) as described in the Manual Steps section.

Additional Reading: