Description
Redpanda operator helm chart
Overview
| Identity | Namespace | Automount | Secrets | Permissions | Workloads | Risk |
|---|---|---|---|---|---|---|
operator | default | ❌ | — | 55 | 2 | Critical |
operator-grafana | default | ❌ | — | 2 | 3 | Critical |
operator-kube-prometheus-s-operator | default | ❌ | — | 28 | 1 | Critical |
operator-kube-state-metrics | default | ❌ | — | 32 | 1 | Critical |
operator-kube-prometheus-s-admission | default | ❌ | — | 3 | 2 | Low |
operator-kube-prometheus-s-prometheus | default | ❌ | — | 6 | 0 | Low |
operator-grafana-test | default | ❌ | — | 0 | 1 | — |
operator-kube-prometheus-s-alertmanager | default | ✅ | — | 0 | 0 | — |
operator-prometheus-node-exporter | default | ❌ | — | 0 | 1 | — |
operator-prometheus-windows-exporter | default | ❌ | — | 0 | 1 | — |
Numbers in the last two columns indicate how many bindings or workloads involve each ServiceAccount.
Identities
🤖 operator
Namespace: default | Automount: ❌
🔑 Permissions (55)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole operator | rbac.authorization.k8s.io/clusterrolebindings | create · delete · get · list · patch · update · watch | Critical | BindingToPrivilegedRole ClusterAdminAccess InformationDisclosure PrivilegeEscalation RBACManipulation (+2 more) |
ClusterRole operator | rbac.authorization.k8s.io/clusterroles | create · delete · get · list · patch · update · watch | Critical | ClusterAdminAccess InformationDisclosure PrivilegeEscalation RBACManipulation RBACQuery (+1 more) |
Role operator | coordination.k8s.io/leases | create · delete · get · list · patch · update · watch | Critical | ControlPlaneDisruption CriticalNamespace DenialOfService Tampering |
Role operator-election-role | coordination.k8s.io/leases | create · delete · get · list · patch · update · watch | Critical | ControlPlaneDisruption CriticalNamespace DenialOfService Tampering |
Role operator | core/secrets | create · delete · get · list · patch · update · watch | Critical | CredentialAccess DataExposure InformationDisclosure Persistence PotentialPrivilegeEscalation (+2 more) |
Role operator | core/configmaps | create · delete · get · list · patch · update · watch | High | ConfigMapAccess DataExposure InformationDisclosure PotentialPrivilegeEscalation Tampering |
Role operator | apps/deployments | create · delete · get · list · patch · update · watch | High | Persistence PotentialPrivilegeEscalation Tampering WorkloadLifecycle |
Role operator | networking.k8s.io/ingresses | create · delete · get · list · patch · update · watch | High | DenialOfService NetworkManipulation ServiceExposure Tampering |
Role operator | batch/jobs | create · delete · get · list · patch · update · watch | High | PotentialPrivilegeEscalation Tampering WorkloadLifecycle |
Role operator | core/pods | create · delete · get · list · patch · update · watch | High | LateralMovement Persistence PotentialPrivilegeEscalation Tampering WorkloadExecution |
Role operator | rbac.authorization.k8s.io/rolebindings | create · delete · get · list · patch · update · watch | High | BindingToPrivilegedRole PrivilegeEscalation RBACManipulation |
Role operator | rbac.authorization.k8s.io/roles | create · delete · get · list · patch · update · watch | High | PrivilegeEscalation RBACManipulation |
Role operator | core/services | create · delete · get · list · patch · update · watch | High | DenialOfService NetworkManipulation ServiceExposure Tampering |
Role operator | apps/statefulsets | create · delete · get · list · patch · update · watch | High | Persistence PotentialPrivilegeEscalation Tampering WorkloadLifecycle |
Role operator | core/serviceaccounts | create · delete · get · list · patch · update · watch | Medium | IdentityManagement PotentialPrivilegeEscalation Tampering |
ClusterRole operator-proxy-role | authorization.k8s.io/subjectaccessreviews | create | Medium | InformationDisclosure RBACQuery |
ClusterRole operator-proxy-role | authentication.k8s.io/tokenreviews | create | Medium | CredentialAccess InformationDisclosure RBACQuery |
Role operator | source.toolkit.fluxcd.io/buckets | create · delete · get · list · patch · update · watch | Low | |
Role operator | cert-manager.io/certificates | create · delete · get · list · patch · update · watch | Low | |
Role operator | core/events | create · patch | Low | |
Role operator | source.toolkit.fluxcd.io/gitrepositories | create · delete · get · list · patch · update · watch | Low | |
Role operator | source.toolkit.fluxcd.io/gitrepository | create · delete · get · list · patch · update · watch | Low | |
Role operator | source.toolkit.fluxcd.io/gitrepository/finalizers | create · delete · get · patch · update | Low | |
Role operator | source.toolkit.fluxcd.io/gitrepository/status | get · patch · update | Low | |
Role operator | source.toolkit.fluxcd.io/helmcharts | create · delete · get · list · patch · update · watch | Low | |
Role operator | source.toolkit.fluxcd.io/helmcharts/finalizers | create · delete · get · patch · update | Low | |
Role operator | source.toolkit.fluxcd.io/helmcharts/status | get · patch · update | Low | |
Role operator | helm.toolkit.fluxcd.io/helmreleases | create · delete · get · list · patch · update · watch | Low | |
Role operator | helm.toolkit.fluxcd.io/helmreleases/finalizers | update | Low | |
Role operator | helm.toolkit.fluxcd.io/helmreleases/status | get · patch · update | Low | |
Role operator | source.toolkit.fluxcd.io/helmrepositories | create · delete · get · list · patch · update · watch | Low | |
Role operator | source.toolkit.fluxcd.io/helmrepositories/finalizers | create · delete · get · patch · update | Low | |
Role operator | source.toolkit.fluxcd.io/helmrepositories/status | get · patch · update | Low | |
Role operator | autoscaling/horizontalpodautoscalers | create · delete · get · list · patch · update · watch | Low | |
Role operator | cert-manager.io/issuers | create · delete · get · list · patch · update · watch | Low | |
Role operator | core/persistentvolumeclaims | delete · get · list · patch · update · watch | Low | |
Role operator-pvc | core/persistentvolumeclaims | delete · list | Low | |
Role operator | policy/poddisruptionbudgets | create · delete · get · list · patch · update · watch | Low | |
Role operator | monitoring.coreos.com/podmonitors | create · delete · get · list · patch · update · watch | Low | |
Role operator | core/pods/status | patch · update | Low | |
ClusterRole operator | cluster.redpanda.com/redpandas | create · delete · get · list · patch · update · watch | Low | |
ClusterRole operator | cluster.redpanda.com/redpandas/finalizers | update | Low | |
ClusterRole operator | cluster.redpanda.com/redpandas/status | get · patch · update | Low | |
Role operator | apps/replicasets | create · delete · get · list · patch · update · watch | Low | |
ClusterRole operator | cluster.redpanda.com/schemas | get · list · patch · update · watch | Low | |
ClusterRole operator | cluster.redpanda.com/schemas/finalizers | update | Low | |
ClusterRole operator | cluster.redpanda.com/schemas/status | get · patch · update | Low | |
Role operator | monitoring.coreos.com/servicemonitors | create · delete · get · list · patch · update · watch | Low | |
Role operator | apps/statefulsets/status | patch · update | Low | |
ClusterRole operator | cluster.redpanda.com/topics | get · list · patch · update · watch | Low | |
ClusterRole operator | cluster.redpanda.com/topics/finalizers | update | Low | |
ClusterRole operator | cluster.redpanda.com/topics/status | get · patch · update | Low | |
ClusterRole operator | cluster.redpanda.com/users | get · list · patch · update · watch | Low | |
ClusterRole operator | cluster.redpanda.com/users/finalizers | update | Low | |
ClusterRole operator | cluster.redpanda.com/users/status | get · patch · update | Low |
⚠️ Potential Abuse (21)
The following security risks were found based on the above permissions:
- Create pods in a namespace
- Update/Patch pods in a namespace
- Read secrets in a namespace
- Modify secrets in a namespace
- Read ConfigMaps in a namespace
- Modify ConfigMaps in a namespace
- Manage ClusterRoles (create, update, patch, delete)
- Manage ClusterRoleBindings (create, update, patch, delete)
- Manage Roles in a namespace (create, update, patch, delete)
- Manage RoleBindings in a namespace (create, update, patch, delete)
- Manage Deployments in a namespace (potential for privileged pod execution)
- Manage StatefulSets in a namespace
- Manage Jobs in a namespace (one-off privileged execution)
- Create TokenReviews (validate arbitrary tokens)
- Create SubjectAccessReviews (check arbitrary permissions)
- Manage ServiceAccounts in a namespace
- Manage Services in a namespace
- Read RBAC configuration cluster-wide
- Manage Leases in kube-system or kube-node-lease namespace
- Manage Ingresses (Namespace Service Exposure/Traffic Redirection)
📦 Workloads (2)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | operator | kube-rbac-proxy | gcr.io/kubebuilder/kube-rbac-proxy:v0.14.0 |
| Deployment | operator | manager | docker.redpanda.com/redpandadata/redpanda-operator:v2.3.5-24.3.2 |
🤖 operator-kube-state-metrics
Namespace: default | Automount: ❌
🔑 Permissions (32)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole operator-kube-state-metrics | core/secrets | list · watch | Critical | ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure SecretAccess |
ClusterRole operator-kube-state-metrics | core/configmaps | list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole operator-kube-state-metrics | admissionregistration.k8s.io/mutatingwebhookconfigurations | list · watch | Medium | InformationDisclosure Reconnaissance WebhookReconnaissance |
ClusterRole operator-kube-state-metrics | core/resourcequotas | list · watch | Medium | InformationDisclosure QuotaTampering Reconnaissance ResourceConfiguration |
ClusterRole operator-kube-state-metrics | admissionregistration.k8s.io/validatingwebhookconfigurations | list · watch | Medium | InformationDisclosure Reconnaissance WebhookReconnaissance |
ClusterRole operator-kube-state-metrics | certificates.k8s.io/certificatesigningrequests | list · watch | Low | |
ClusterRole operator-kube-state-metrics | batch/cronjobs | list · watch | Low | |
ClusterRole operator-kube-state-metrics | apps/daemonsets | list · watch | Low | |
ClusterRole operator-kube-state-metrics | extensions/daemonsets | list · watch | Low | |
ClusterRole operator-kube-state-metrics | apps/deployments | list · watch | Low | |
ClusterRole operator-kube-state-metrics | extensions/deployments | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/endpoints | list · watch | Low | |
ClusterRole operator-kube-state-metrics | autoscaling/horizontalpodautoscalers | list · watch | Low | |
ClusterRole operator-kube-state-metrics | extensions/ingresses | list · watch | Low | |
ClusterRole operator-kube-state-metrics | networking.k8s.io/ingresses | list · watch | Low | |
ClusterRole operator-kube-state-metrics | batch/jobs | list · watch | Low | |
ClusterRole operator-kube-state-metrics | coordination.k8s.io/leases | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/limitranges | list · watch | Low | InformationDisclosure Reconnaissance ResourceConfiguration |
ClusterRole operator-kube-state-metrics | core/namespaces | list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole operator-kube-state-metrics | networking.k8s.io/networkpolicies | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/nodes | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/persistentvolumeclaims | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/persistentvolumes | list · watch | Low | |
ClusterRole operator-kube-state-metrics | policy/poddisruptionbudgets | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/pods | list · watch | Low | |
ClusterRole operator-kube-state-metrics | apps/replicasets | list · watch | Low | |
ClusterRole operator-kube-state-metrics | extensions/replicasets | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/replicationcontrollers | list · watch | Low | |
ClusterRole operator-kube-state-metrics | core/services | list · watch | Low | |
ClusterRole operator-kube-state-metrics | apps/statefulsets | list · watch | Low | |
ClusterRole operator-kube-state-metrics | storage.k8s.io/storageclasses | list · watch | Low | |
ClusterRole operator-kube-state-metrics | storage.k8s.io/volumeattachments | list · watch | Low |
⚠️ Potential Abuse (11)
The following security risks were found based on the above permissions:
- Read secrets cluster-wide
- Read secrets in a namespace
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- List Namespaces (Cluster Reconnaissance)
- List ValidatingWebhookConfigurations (Reconnaissance)
- List MutatingWebhookConfigurations (Reconnaissance)
- Read LimitRanges (Namespace Information Disclosure)
- Read ResourceQuotas (Namespace Information Disclosure)
- Read All ResourceQuotas (Cluster-wide Information Disclosure)
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | operator-kube-state-metrics | kube-state-metrics | registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0 |
🤖 operator-kube-prometheus-s-operator
Namespace: default | Automount: ❌
🔑 Permissions (28)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole operator-kube-prometheus-s-operator | core/configmaps | * | Critical | ClusterWideAccess ConfigMapAccess DataExposure InformationDisclosure PotentialPrivilegeEscalation (+2 more) |
ClusterRole operator-kube-prometheus-s-operator | core/secrets | * | Critical | ClusterWideAccess ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure (+6 more) |
ClusterRole operator-kube-prometheus-s-operator | apps/statefulsets | * | Critical | ClusterWideAccess Persistence PotentialPrivilegeEscalation PrivilegeEscalation Tampering (+2 more) |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/alertmanagerconfigs | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/alertmanagers | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/alertmanagers/finalizers | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/alertmanagers/status | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/podmonitors | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/probes | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheusagents | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheusagents/finalizers | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheusagents/status | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheuses | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheuses/finalizers | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheuses/status | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/prometheusrules | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/scrapeconfigs | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/servicemonitors | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/thanosrulers | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/thanosrulers/finalizers | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | monitoring.coreos.com/thanosrulers/status | * | High | ClusterWideAccess |
ClusterRole operator-kube-prometheus-s-operator | core/endpoints | create · delete · get · update | Low | |
ClusterRole operator-kube-prometheus-s-operator | networking.k8s.io/ingresses | get · list · watch | Low | |
ClusterRole operator-kube-prometheus-s-operator | core/namespaces | get · list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole operator-kube-prometheus-s-operator | core/nodes | list · watch | Low | |
ClusterRole operator-kube-prometheus-s-operator | core/pods | delete · list | Low | |
ClusterRole operator-kube-prometheus-s-operator | core/services | create · delete · get · update | Low | |
ClusterRole operator-kube-prometheus-s-operator | core/services/finalizers | create · delete · get · update | Low |
⚠️ Potential Abuse (13)
The following security risks were found based on the above permissions:
- Read secrets cluster-wide
- Read secrets in a namespace
- Modify secrets cluster-wide
- Modify secrets in a namespace
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- Modify ConfigMaps cluster-wide
- Modify ConfigMaps in a namespace
- Manage StatefulSets cluster-wide
- Manage StatefulSets in a namespace
- List Namespaces (Cluster Reconnaissance)
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | operator-kube-prometheus-s-operator | kube-prometheus-stack | quay.io/prometheus-operator/prometheus-operator:v0.68.0 |
🤖 operator-grafana
Namespace: default | Automount: ❌
🔑 Permissions (2)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole operator-grafana-clusterrole | core/secrets | get · list · watch | Critical | ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure SecretAccess |
ClusterRole operator-grafana-clusterrole | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
⚠️ Potential Abuse (5)
The following security risks were found based on the above permissions:
- Read secrets cluster-wide
- Read secrets in a namespace
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
📦 Workloads (3)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | operator-grafana | grafana | docker.io/grafana/grafana:10.1.2 |
| Deployment | operator-grafana | grafana-sc-dashboard | quay.io/kiwigrid/k8s-sidecar:1.25.1 |
| Deployment | operator-grafana | grafana-sc-datasources | quay.io/kiwigrid/k8s-sidecar:1.25.1 |
🤖 operator-kube-prometheus-s-prometheus
Namespace: default | Automount: ❌
🔑 Permissions (6)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole operator-kube-prometheus-s-prometheus | core/endpoints | get · list · watch | Low | |
ClusterRole operator-kube-prometheus-s-prometheus | networking.k8s.io/ingresses | get · list · watch | Low | |
ClusterRole operator-kube-prometheus-s-prometheus | core/nodes | get · list · watch | Low | |
ClusterRole operator-kube-prometheus-s-prometheus | core/nodes/metrics | get · list · watch | Low | |
ClusterRole operator-kube-prometheus-s-prometheus | core/pods | get · list · watch | Low | |
ClusterRole operator-kube-prometheus-s-prometheus | core/services | get · list · watch | Low |
⚠️ Potential Abuse (1)
The following security risks were found based on the above permissions:
📦 Workloads (0)
No workloads use this ServiceAccount.
🤖 operator-kube-prometheus-s-admission
Namespace: default | Automount: ❌
🔑 Permissions (3)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole operator-kube-prometheus-s-admission | admissionregistration.k8s.io/mutatingwebhookconfigurations | get · update | Low | |
Role operator-kube-prometheus-s-admission | core/secrets | create · get | Low | |
ClusterRole operator-kube-prometheus-s-admission | admissionregistration.k8s.io/validatingwebhookconfigurations | get · update | Low |
⚠️ Potential Abuse (1)
The following security risks were found based on the above permissions:
📦 Workloads (2)
| Kind | Name | Container | Image |
|---|---|---|---|
| Job | operator-kube-prometheus-s-admission-create | create | registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6 |
| Job | operator-kube-prometheus-s-admission-patch | patch | registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6 |
🤖 operator-grafana-test
Namespace: default | Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Pod | operator-grafana-test | operator-test | docker.io/bats/bats:v1.4.1 |
🤖 operator-kube-prometheus-s-alertmanager
Namespace: default | Automount: ✅
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (0)
No workloads use this ServiceAccount.
🤖 operator-prometheus-node-exporter
Namespace: default | Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| DaemonSet | operator-prometheus-node-exporter | node-exporter | quay.io/prometheus/node-exporter:v1.6.1 |
🤖 operator-prometheus-windows-exporter
Namespace: default | Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| DaemonSet | operator-prometheus-windows-exporter | windows-exporter | ghcr.io/prometheus-community/windows-exporter:0.22.0 |