Check ID: rbac_minimize_csr_approval_access
Provider: Kubernetes
Service: rbac
Severity: HIGH
Categories: identity-access, cluster-security
Resource type: ClusterRoleBinding

What this check verifies

RBAC assignments that grant update or patch on the certificatesigningrequests/approval subresource to users or groups via cluster-wide roles and bindings. This highlights principals allowed to approve CSRs based on permissions defined in referenced ClusterRoles.

Risk

Excess CSR approval rights enable privilege escalation. A malicious user can approve CSRs to mint client certificates for arbitrary identities, gaining unauthorized API access, impersonating system components, and enabling data exfiltration and tampering, harming confidentiality and integrity.

Recommendation

Apply least privilege: allow CSR approval only to a small, trusted approver role.
  • Enforce separation of duties between CSR creation and approval
  • Prefer automated approver controllers over manual grants
  • Regularly review RBAC and remove broad ClusterRoleBindings
  • Use defense in depth with auditing and short-lived credentials

Remediation

kubectl delete clusterrolebinding <example_resource_name>

References

Where this check fires

This check runs on every scheduled scan against your Kubernetes account. Findings appear at Cloud Security → Findings filterable by Check ID = rbac_minimize_csr_approval_access. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Kubernetes checks