Skip to main content

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

High

Address

Security

Compliance Standards

  • CIS EKS

Triage and Remediation

Remediation

Manual Steps

  1. 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-port in the arguments, you are using executable arguments.
  2. If using the kubelet config file, edit it to disable the read-only port (on every worker node):
    If readOnlyPort is not present, add this line under the top-level config (YAML aligned appropriately):
  3. If using executable arguments instead, edit the kubelet systemd drop-in to set the flag (on every worker node):
  4. Reload systemd and restart kubelet (on every worker node):
  5. Confirm kubelet is healthy (on every worker node):
  6. 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-port flag appears.
    • For argument usage, ensure you see --read-only-port=0 and no non‑zero value.
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.