services / Google Cloud / Kubernetes Engine Nodes

Nodes are physical or virtual machines that serve as a worker in the cluster. Nodes provide the underlying pool of CPU, memory, storage, and network connectivity resources for running containers and other tasks assigned by the control plane.

Kubernetes Engine can be configured in multiple ways, and the configuration has a significant impact on Node security. In general, nodes should not be publicly accessible, block ssh access if possible (already enforced in AutoPilot mode), isolation between containers running on the same node, isolation between the host operating system on the node and the workload running inside a container, performing timely upgrades of the node OS, Kubernetes, and the container runtime.


container.​nodes.​update

The things that you can typically update are the metadata labels and annotations, and fields in the `spec` section of the node manifest: taints, which prevent certain pods to be scheduled on the node, and the `unschedulable` property, which effectively cordons the node. With enough nodes cordoned or tainted the cluster may become "paralyzed" because workloads cannot be scheduled efficiently or not at all.

Risks

Scope: CRITICAL

This privilege may grant access to sensitive data from a significant fraction of organizational functions, allow interruption of critical organizational services, or its exploit could lead to significant privilege escalation.

Links

  • https:​/​/​kubernetes.​io/​docs/​concepts/​architecture/​nodes/​
  • https:​/​/​cloud.​google.​com/​kubernetes-​engine/​docs/​concepts/​security-​overview
  • https:​/​/​kubernetes.​io/​docs/​reference/​generated/​kubernetes-​api/​v1.​26/​#​nodespec-​v1-​core
  • Contributed by P0 Security

    © 2023–present P0 Security and contributors to the IAM Privilege Catalog