More Info:
Protect tuned kernel parameters from overriding kubelet default kernel parameter values.Risk Level
HighAddress
SecurityCompliance 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)
- 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, check whether kubelet uses a config file and locate it (you already know
/var/lib/kubelet/config.yaml, but confirm it exists):If this file does not exist, skip to step 3 (flag-based configuration). -
On every worker node using the kubelet config file, edit it and set
protectKernelDefaults: truein the top-level kubelet configuration: -
On every worker node, if kubelet is configured via systemd flags, edit the kubelet drop-in to add the flag:
-
On every worker node, reload systemd and restart kubelet (note: this restarts the kubelet and may briefly disrupt workloads on that node):
-
On every worker node, verify kubelet is running with
--protect-kernel-defaults=true:Confirm in the output that either the kubelet command line includes--protect-kernel-defaults=trueor that it is known to be loaded from/var/lib/kubelet/config.yamlwithprotectKernelDefaults: true.
Using kubectl
Using kubectl
kubectl cannot configure kubelet process flags or its local config file, so it cannot be used to set
protectKernelDefaults: true on worker nodes. To remediate this finding, make the change directly on each node’s /var/lib/kubelet/config.yaml or kubelet systemd unit as described in the Manual Steps section.Automation
Automation

