Back to controls

Ensure that the cluster-admin role is only used where required

The RBAC role `cluster-admin` provides wide-ranging powers over the environment and should be used only where and when needed.

Category

Controls

High

Applies to

Kubernetes

Coverage

null controls, 2 queries

Asset types

2 covered

Overview

The RBAC role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed.

Rationale

Kubernetes provides a set of default roles where RBAC is used. Some of these roles such as cluster-admin provide wide-ranging privileges which should only be applied where necessary. Roles such as cluster-admin allow super-user access to perform any action on any resource. When used in a ClusterRoleBinding, it gives full control over every resource in the cluster and in all namespaces. When used in a RoleBinding, it gives full control over every resource in the rolebinding's namespace, including the namespace itself.

Impact

Care should be taken before removing any ClusterRoleBindings from the environment to ensure they were not required for the operation of the cluster. Specifically, modifications should not be made to ClusterRoleBindings with the system: prefix as they are required for the operation of system components.

Remediation guidance

Check each principal for the RoleBindings and ClusterRoleBindings that are attached to the cluster-admin role. Check if they need this role or if they could use a role with fewer privileges. Where possible, first bind users to a lower privileged role and then remove the ClusterRoleBinding to the cluster-admin role.

Default Value

By default, a single ClusterRoleBinding called cluster-admin is provided with the system:masters group as its principal.

References

  1. https://workbench.cisecurity.org/sections/1126661/recommendations/1838588

  2. https://kubernetes.io/docs/admin/authorization/rbac/#user-facing-roles

Multiple Remediation Paths

SERVICE-WIDE (RECOMMENDED when many resources are affected): Apply organization/tenant-level guardrails and baseline policies for the entire platform.

ASSET-LEVEL: Fix only the affected resources identified by this control.

PREVENTIVE: Add preventive policy checks to CI/CD and periodic posture scans.

References for Service-Wide Patterns

  • Platform policy/governance and preventive control patterns should be applied tenant-wide where supported.

Query logic

These are the stored checks tied to this control.

Kubernetes RoleBindings that use cluster-admin role

Connectors

Kubernetes

Covered asset types

RoleBinding

Expected check: eq []

{
  clusterRoles(where: {internalName: "cluster-admin"}) {
    roleBindings(where: {subjects_SOME: {name_NOT: ""}}) {
      ...AssetFragment
    }
  }
}
Kubernetes ClusterRoleBindings that use cluster-admin role

Connectors

Kubernetes

Covered asset types

ClusterRoleBinding

Expected check: eq []

{
  clusterRoles(where: {internalName: "cluster-admin"}) {
    clusterRoleBindings(where: {subjects_SOME: {name_NOT: "system:masters"}}) {
      ...AssetFragment
    }
  }
}
Cyscale Logo
Cyscale is an agentless cloud-native application protection platform (CNAPP) that automates the contextual analysis of cloud misconfigurations, vulnerabilities, access, and data, to provide an accurate and actionable assessment of risk.

Stay connected

Receive new blog posts and product updates from Cyscale

By clicking Subscribe, I agree to Cyscale’s Privacy Policy


© 2026 Cyscale Limited

LinkedIn icon
Twitter icon
Facebook icon
crunch base icon
angel icon