CertGrid CertGrid
Hands-on Lab·Kubernetes and Cloud Native Security Associate

Node Authorization and NodeRestriction

A kubelet authenticates to the apiserver as system:node:<name> in the group system:nodes, and what that identity may read is decided per request rather than by a role. This guide reads the certificate and then shows why the obvious way to audit it gives the wrong answer.

Cluster Component Security Guide 13 of 42 Intermediate

kubeadm issues the kubelet client certificate with a one-year lifetime and enables rotation. The Node authorizer is the first entry in the apiserver's --authorization-mode=Node,RBAC.

The cka5001 cluster: one control plane and 3 schedulable workers, on Cilium.
Server NameIP AddressOSRolesCPURAMHDD
CKA5001192.168.0.41Ubuntu 26.04 LTSControl Plane Node (tainted NoSchedule)2 Core4 GB50 GB
CKA5001-NODE01192.168.0.42Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA5001-NODE02192.168.0.43Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA5001-NODE03192.168.0.44Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

This guide includes

Use this when you need to say what a compromised node could actually reach. This matters because the obvious audit - impersonating the node identity and asking - returns an answer that is wrong, because Node authorization is not RBAC.

Before you start

  1. The certificate, and what it claims to be

  2. What the obvious audit says, and why it is wrong

Official sources