Join our Newsletter — 33% off our NHI Course

What happens when a service account has node/proxy rights in Kubernetes?

A service account with node/proxy rights can reach the Kubelet API through the proxy path and, in some cases, contact the Kubelet directly. That can expose pod data, allow command execution in pods on the node, and reduce the effectiveness of audit and admission controls. The result is a much larger blast radius than many teams expect from a single RBAC grant.

What node/proxy rights actually unlock in Kubernetes

Node/proxy rights are more powerful than they look because they let a subject reach Kubelet endpoints through the API server proxy path, and in some deployments they can also make direct Kubelet interaction possible. That means the grant is not just about visibility into node health, it can become a path into pod execution, workload inspection, and other node-local capabilities that sit outside the usual application boundary.

The practical issue is that a service account is not being authorised for a narrow diagnostic view, it is being authorised to act through a highly trusted control plane path. In Kubernetes, that matters because the Kubelet is close to the runtime boundary, so access there can reveal more than the namespace owner expected and can make the original RBAC decision much broader than the label suggests.

For a broader Kubernetes identity and access picture, the Kubernetes NHI Security Guide is the most direct companion resource, and Ultimate Guide to NHIs gives the underlying service account and workload identity context that explains why this permission class is sensitive.

Why the blast radius is so much larger than the RBAC verb suggests

The danger is not the verb alone, it is the combination of proxying, node trust, and Kubelet proximity. Once a service account can reach the Kubelet path, it may be able to inspect pods, access node-bound metadata, and interact with container processes in ways that bypass the expectations many teams attach to namespace-scoped permissions.

That is why node/proxy rights often function as a privilege amplifier. Even if the original intent was troubleshooting, the same path can expose secrets in environment variables, reveal mounted volumes, and create an opportunity to execute commands in pods on the node where the Kubelet permits it. The control impact is therefore closer to node-adjacent administrative access than to ordinary read-only API access.

This also weakens the value of controls that were assumed to contain the exposure. Audit logs may show the API call, but not the full downstream intent of what the caller did once it reached Kubelet-adjacent functionality. Admission policies also do less to help here because the risky action is occurring through an already-authorised control path rather than through a new pod creation request.

The Kubernetes NHI Security Guide helps map these paths to service account, RBAC, and Kubelet hardening decisions, while Service Account Security Guide is useful when you need to review whether the service account itself is over-assigned, long-lived, or poorly owned.

What teams should verify before they treat node/proxy as safe

Start by confirming whether the service account truly needs node/proxy access at all, because this is usually a high-trust exception rather than a default operational entitlement. Then verify which namespaces, nodes, and workloads become reachable through that grant, and whether the same account can be reused across environments or clusters.

It is also worth checking whether the account can reach the Kubelet only through the API server proxy or whether direct node connectivity is possible from the network path. That distinction changes the blast radius materially, especially when Kubelet authentication, authorization, or network exposure is inconsistent across the cluster.

For practitioner review, pair the access check with ownership and lifecycle control. A node/proxy grant that has no explicit owner, no expiry, and no periodic review tends to survive long after the operational need has disappeared. The NHI Ownership and Accountability Guide is a useful lens for keeping that entitlement tied to a named business and technical owner.

Another useful reference point is Human vs Non-Human Identity, because it clarifies why machine and service access need their own governance rules instead of borrowing human access assumptions.

Risk and Threat Considerations

Node/proxy rights create a concentrated exposure because a single service account can gain access to node-adjacent runtime functions that are capable of revealing pod data or enabling command execution. If the account is compromised, an attacker may use that trust path to move from a limited workload position into broader node-level visibility and control.

Failure mechanism: the attacker abuses a legitimately authorised proxy route into Kubelet rather than defeating the cluster boundary directly, which makes the activity look like permitted control-plane traffic while still reaching sensitive runtime functions.

Impact: pod inspection, command execution, secret exposure, and lateral movement opportunities can all expand the incident beyond the original service account’s intended scope, especially when the permission is reusable or poorly monitored.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Non-Human Identity Top 10 addresses the attack and risk surface, while NIST SP 800-53 Rev 5, CIS Controls v8 and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.

Framework Control / Reference Relevance
NIST SP 800-53 Rev 5 IA-9 — Service Identification and Authentication Kubelet proxy access relies on authenticated service-to-service trust paths.
AC-6 — Least Privilege Node/proxy rights are a privilege-amplifying grant that should be minimized.
AU-2 — Event Logging Proxying to Kubelet can obscure how sensitive runtime access is used.
Recommendation — Apply IA-9 to authenticate and tightly scope service accounts reaching Kubelet paths. Restrict node/proxy rights to the minimum service accounts that truly need them. Log node/proxy and Kubelet-adjacent activity with enough detail to support review.
CIS Controls v8 CIS-5 — Account Management Service account rights and ownership need periodic review and removal when unused.
CIS-6 — Access Control Management The question is about limiting a powerful Kubernetes access path.
Recommendation — Review service account entitlements regularly and remove unused node/proxy access. Enforce role-based restrictions so node/proxy is granted only on explicit need.
NIST CSF 2.0 PR.AA-05 — Identity Management, Authentication, and Access Control Node/proxy rights are an access-control decision over a sensitive service identity.
DE.CM-01 — Monitoring for Unauthorized Actions Abuse of node/proxy rights requires detection on control-plane and node activity.
Recommendation — Govern and review service-account access to node and Kubelet functions. Monitor proxy and Kubelet activity for unexpected service-account use.
OWASP Non-Human Identity Top 10 NHI-05 — Overprivileged NHI A service account with node/proxy rights may have more privilege than intended.
NHI-10 — Human Use of NHI These rights are often granted for troubleshooting and then reused beyond intent.
NHI-01 — Improper Offboarding Stale service accounts can retain node/proxy access after the use case ends.
Recommendation — Reduce node/proxy entitlements until the service account has only necessary reach. Separate human troubleshooting access from standing service-account permissions. Retire service accounts and remove node/proxy rights when the workflow ends.

Practitioner Guidance

What to prioritise: treat node/proxy as a high-risk exception and review every account that has it. If the permission exists only for convenience or legacy troubleshooting, it should be the first entitlement you question, because its blast radius is usually far larger than the team granting it expects.

What to verify: confirm whether the service account can actually reach Kubelet-adjacent functionality in production, whether that access is still needed, and whether the grant is limited to a specific operational workflow. If the answer is unclear, the entitlement is already too broad.

Common mistake: assuming that a namespace-scoped service account is automatically constrained just because it is not cluster-admin. Node/proxy is a good example of a small-looking RBAC permission that can behave like a powerful runtime access path in practice.

Practitioner takeaway: the right question is not whether the account can list something useful, but whether it can reach a trust boundary that converts an ordinary service identity into an infrastructure-adjacent one.