More Info:
The kubelet read-only port serves cluster and workload data without authentication or authorization. Setting it to 0 disables this unauthenticated endpoint.Risk Level
HighAddress
SecurityCompliance Standards
- CIS EKS
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every worker node, check how the kubelet is configured:
- If you see
--config=/var/lib/kubelet/config.yaml(or similar), you are using a config file. - If you see
--read-only-portin the arguments, you are using executable arguments.
- If you see
-
If using the kubelet config file, edit it to disable the read-only port (on every worker node):
If
readOnlyPortis not present, add this line under the top-level config (YAML aligned appropriately): -
If using executable arguments instead, edit the kubelet systemd drop-in to set the flag (on every worker node):
-
Reload systemd and restart kubelet (on every worker node):
-
Confirm kubelet is healthy (on every worker node):
-
Verify that the kubelet is running with the read-only port disabled (on every worker node):
- For config-file usage, ensure no conflicting
--read-only-portflag appears. - For argument usage, ensure you see
--read-only-port=0and no non‑zero value.
- For config-file usage, ensure no conflicting
Using kubectl
Using kubectl
kubectl cannot modify kubelet host-level configuration or process flags, so this finding cannot be remediated via the Kubernetes API. The change must be made directly on each worker node’s kubelet configuration and systemd unit as described in the Manual Steps section.
Automation
Automation

