More Info:
Restrict assignment of powerful Kubernetes RBAC roles such as cluster-admin, which confers super-user privileges across all namespaces. Grant privileged roles only to users who genuinely require them.Risk Level
MediumAddress
SecurityCompliance Standards
- CIS OKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
List all subjects bound to
cluster-adminand other powerful roles- Run on: any machine with
kubectlaccess to the cluster - Command:
- Also identify other highly privileged bindings (if you use them by convention):
- Run on: any machine with
-
Correlate Kubernetes subjects with OCI identities and roles
- In OCI Console, for each
User,Group, orServiceAccountfrom step 1:- Locate the corresponding OCI User/Group/Dynamic Group.
- Review IAM policies granting them access to the cluster (e.g.,
OKEaccess policies,manage cluster-family,manage cluster-node-pools, etc.).
- Using OCI CLI (run on any machine with OCI CLI configured) to list policies for a compartment:
- In OCI Console, for each
-
Decide who truly requires cluster-wide super-user privileges
- For each subject bound to
cluster-adminor an equivalent highly privileged role, answer:- Is this a break-glass / platform admin account used only for cluster operations?
- Is this an application/team account that could be scoped to specific namespaces or to less-privileged roles?
- Is this an OCI tenancy administrator (who already has sufficient privileges without
cluster-admin)?
- Flag any subject that is:
- Non-operational (e.g., developer, CI/CD, app service account) and
- Not strictly required to manage the whole cluster.
- For each subject bound to
-
Replace unnecessary
cluster-adminbindings with narrower roles- Design or select existing least-privilege
ClusterRole/Role(via your IaC/cluster platform templates) that matches the actual operational need (e.g., namespace-scoped admin, read-only, or limited maintenance role). - Update your cloud/IaC definitions (Terraform/Resource Manager/other) so that:
- Only a minimal set of platform operators retain
cluster-admin. - Other users/groups/service accounts are granted scoped roles instead.
- Only a minimal set of platform operators retain
- Apply the IaC changes through your standard deployment pipeline so that RBAC is reconciled from code rather than ad hoc changes.
- Design or select existing least-privilege
-
Remove or tighten existing over-privileged bindings
- Once replacement access is defined in cloud/IaC and deployed, remove or edit the excessive bindings (run on any machine with
kubectlaccess): - For bindings that must remain, ensure their subjects are restricted to:
- A very small, auditable set of admin accounts.
- No generic/shared or application identities.
- Once replacement access is defined in cloud/IaC and deployed, remove or edit the excessive bindings (run on any machine with
-
Verify the final state and document the justification
- Re-run evidence commands (run on any machine with
kubectlaccess): - Confirm:
- Only explicitly justified admin identities retain
cluster-admin. - All other users/groups/service accounts are mapped (via OCI IAM + RBAC) to least-privilege roles.
- Only explicitly justified admin identities retain
- Record in your security documentation which identities have
cluster-admin, why they need it, and who approved it.
- Re-run evidence commands (run on any machine with
Using kubectl
Using kubectl
kubectl cannot fix this finding because the over-privileged access is granted through Oracle Cloud Infrastructure IAM / Container Engine for Kubernetes (managed control plane configuration), not via in-cluster objects. Use the cloud console, OCI CLI, or IaC to review and adjust which identities are mapped to cluster-admin, following the guidance in the Manual Steps section.
Automation
Automation
- Any human user or broad group listed as a subject of:
cluster-adminviaClusterRoleBindingorRoleBindingin any namespace.- Custom/high-privilege
ClusterRole(wildcard*verbs,impersonate, or full control of roles/clusterroles).
- RoleBindings to
cluster-adminor such high-privilege ClusterRoles in regular (non-kube-system/ non-control-plane) namespaces.

