RBAC permissions in catalog charts

A repository document, rendered for the site. View source markdown.

Generated at: 2026-07-30T12:38:02.000Z UTC · source: committed helm-expt evidence for this rendered repository document.

This report checks the rendered default configuration for every catalog chart and lists RBAC rules that deserve review. It reads the committed Kubernetes objects, so it does not need access to a cluster and does not run Helm again.

Broad permissions are sometimes necessary, especially for operators and platform services. The purpose of this report is to show where those permissions occur so a team can decide whether each one is appropriate for its use.

Scanned 95 default renders; 69 ship RBAC; 50 contain at least one broad/risky rule by these conservative heuristics.

Findings across the catalog:

FindingChartsMeaning
full-wildcard8a rule grants * verbs on * resources (admin-like)
secret-read46a rule can read Secrets (get/list/watch or *)
priv-escalation2a rule has escalate/bind/impersonate
all-resources8a rule targets * resources (non-wildcard verbs)

Charts to review first

ChartClusterRolesRolesRisky rulesFindings
crossplane-stable/crossplane/2.3.112022all-resources, full-wildcard, priv-escalation, secret-read
rook-release/rook-ceph/v1.19.5331416secret-read
argo-cd/argo-cd/9.5.153610all-resources, full-wildcard, secret-read
argo-cd/argo-cd/9.5.173610all-resources, full-wildcard, secret-read
jetstack/cert-manager/v1.20.21348secret-read
istio/istiod/1.30.0316all-resources, secret-read
gatekeeper/gatekeeper/3.22.2114all-resources, secret-read
kyverno/kyverno/3.8.11644secret-read
haproxytech/kubernetes-ingress/1.52.0103all-resources, secret-read
kedacore/keda/2.19.0413all-resources, secret-read
minio-operator/operator/7.1.1103full-wildcard, secret-read
prometheus-community/kube-prometheus-stack/85.3.3403secret-read
prometheus-community/kube-prometheus-stack/86.1.0403secret-read
sealed-secrets/sealed-secrets/2.18.6123secret-read
hashicorp/terraform/1.1.2012full-wildcard, secret-read
projectcalico/tigera-operator/v3.32.0202priv-escalation, secret-read
aqua/trivy-operator/0.32.1422secret-read
argo-cd/argo-workflows/1.0.14712secret-read
external-secrets/external-secrets/2.5.0512secret-read
fairwinds-stable/goldilocks/10.3.0202all-resources
ingress-nginx/ingress-nginx/4.15.1112secret-read
longhorn/longhorn/1.11.2112secret-read
strimzi/strimzi-kafka-operator/1.0.0702secret-read
argo-cd/argo-events/2.4.21101secret-read
argo-cd/argo-rollouts/2.40.9401secret-read
_… and 25 more_

What happens after a finding

A finding is a reason to inspect the rendered Role or ClusterRole. If the permission is not needed, propose a precise object change, review the diff, run the normal policy checks, and require approval before delivery.

The live RBAC review example follows that path for one namespaced service account. It removes Secret access, keeps ConfigMap access, proves that ConfigHub blocked the correction until approval, publishes the approved objects as OCI, and lets Argo CD deliver the result to an isolated Kubernetes cluster. The walkthrough explains each step.

Limits

Regenerate

npm run app-readiness:generate
npm run app-readiness:verify