Description
A Helm chart that sets up Kubecost, Prometheus, and Grafana to monitor cloud costs.
Overview
| Identity | Namespace | Automount | Secrets | Permissions | Workloads | Risk |
|---|---|---|---|---|---|---|
cost-analyzer-kube-state-metrics | default | ❌ | — | 27 | 1 | Critical |
cost-analyzer-prometheus-server | default | ❌ | — | 10 | 2 | Critical |
cost-analyzer | default | ❌ | — | 27 | 3 | High |
cost-analyzer-grafana | default | ❌ | — | 1 | 3 | High |
cost-analyzer-prometheus-alertmanager | default | ❌ | — | 0 | 2 | — |
cost-analyzer-prometheus-node-exporter | default | ❌ | — | 0 | 1 | — |
cost-analyzer-prometheus-pushgateway | default | ❌ | — | 0 | 1 | — |
Numbers in the last two columns indicate how many bindings or workloads involve each ServiceAccount.
Identities
🤖 cost-analyzer-kube-state-metrics
Namespace: default | Automount: ❌
🔑 Permissions (27)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole cost-analyzer-kube-state-metrics | core/secrets | list · watch | Critical | ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure SecretAccess |
ClusterRole cost-analyzer-kube-state-metrics | core/configmaps | list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole cost-analyzer-kube-state-metrics | core/resourcequotas | list · watch | Medium | InformationDisclosure QuotaTampering Reconnaissance ResourceConfiguration |
ClusterRole cost-analyzer-kube-state-metrics | certificates.k8s.io/certificatesigningrequests | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | batch/cronjobs | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | apps/daemonsets | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | extensions/daemonsets | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | apps/deployments | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | extensions/deployments | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/endpoints | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | autoscaling/horizontalpodautoscalers | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | extensions/ingresses | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | networking.k8s.io/ingresses | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | batch/jobs | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/limitranges | list · watch | Low | InformationDisclosure Reconnaissance ResourceConfiguration |
ClusterRole cost-analyzer-kube-state-metrics | core/namespaces | list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole cost-analyzer-kube-state-metrics | core/nodes | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/persistentvolumeclaims | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/persistentvolumes | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | policy/poddisruptionbudgets | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/pods | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | apps/replicasets | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | extensions/replicasets | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/replicationcontrollers | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | core/services | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | apps/statefulsets | list · watch | Low | |
ClusterRole cost-analyzer-kube-state-metrics | storage.k8s.io/storageclasses | list · watch | Low |
⚠️ Potential Abuse (9)
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)
- Read LimitRanges (Namespace Information Disclosure)
- Read ResourceQuotas (Namespace Information Disclosure)
- Read All ResourceQuotas (Cluster-wide Information Disclosure)
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | cost-analyzer-kube-state-metrics | kube-state-metrics | quay.io/coreos/kube-state-metrics:v1.9.5 |
🤖 cost-analyzer-prometheus-server
Namespace: default | Automount: ❌
🔑 Permissions (10)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole cost-analyzer-prometheus-server | core/nodes/proxy | get · list · watch | Critical | ClusterAdminAccess CodeExecution ElevationOfPrivilege LateralMovement (+1 more) |
ClusterRole cost-analyzer-prometheus-server | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole cost-analyzer-prometheus-server | core/endpoints | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | core/ingresses | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | extensions/ingresses | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | extensions/ingresses/status | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | core/nodes | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | core/nodes/metrics | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | core/pods | get · list · watch | Low | |
ClusterRole cost-analyzer-prometheus-server | core/services | get · list · watch | Low |
⚠️ Potential Abuse (4)
The following security risks were found based on the above permissions:
📦 Workloads (2)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | cost-analyzer-prometheus-server | prometheus-server | prom/prometheus:v2.17.2 |
| Deployment | cost-analyzer-prometheus-server | prometheus-server-configmap-reload | jimmidyson/configmap-reload:v0.3.0 |
🤖 cost-analyzer
Namespace: default | Automount: ❌
🔑 Permissions (27)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole cost-analyzer | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole cost-analyzer | core/events | get · list · watch | Medium | InformationDisclosure OperationalData Reconnaissance |
ClusterRole cost-analyzer | events.k8s.io/events | get · list · watch | Medium | InformationDisclosure OperationalData Reconnaissance |
Role cost-analyzer | core/pods/log | get · list · watch | Medium | DataExposure InformationDisclosure LogAccess |
ClusterRole cost-analyzer | core/resourcequotas | get · list · watch | Medium | InformationDisclosure QuotaTampering Reconnaissance ResourceConfiguration |
ClusterRole cost-analyzer | batch/cronjobs | get · list · watch | Low | |
ClusterRole cost-analyzer | apps/daemonsets | list · watch | Low | |
ClusterRole cost-analyzer | extensions/daemonsets | get · list · watch | Low | |
ClusterRole cost-analyzer | apps/deployments | list · watch | Low | |
ClusterRole cost-analyzer | core/deployments | get · list · watch | Low | |
ClusterRole cost-analyzer | extensions/deployments | get · list · watch | Low | |
ClusterRole cost-analyzer | core/endpoints | get · list · watch | Low | |
ClusterRole cost-analyzer | autoscaling/horizontalpodautoscalers | get · list · watch | Low | |
ClusterRole cost-analyzer | batch/jobs | get · list · watch | Low | |
ClusterRole cost-analyzer | core/limitranges | get · list · watch | Low | InformationDisclosure Reconnaissance ResourceConfiguration |
ClusterRole cost-analyzer | core/namespaces | get · list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole cost-analyzer | core/nodes | get · list · watch | Low | |
ClusterRole cost-analyzer | core/persistentvolumeclaims | get · list · watch | Low | |
ClusterRole cost-analyzer | core/persistentvolumes | get · list · watch | Low | |
ClusterRole cost-analyzer | policy/poddisruptionbudgets | get · list · watch | Low | |
ClusterRole cost-analyzer | core/pods | get · list · watch | Low | |
ClusterRole cost-analyzer | apps/replicasets | list · watch | Low | |
ClusterRole cost-analyzer | extensions/replicasets | get · list · watch | Low | |
ClusterRole cost-analyzer | core/replicationcontrollers | get · list · watch | Low | |
ClusterRole cost-analyzer | core/services | get · list · watch | Low | |
ClusterRole cost-analyzer | apps/statefulsets | list · watch | Low | |
ClusterRole cost-analyzer | storage.k8s.io/storageclasses | get · list · watch | Low |
⚠️ Potential Abuse (9)
The following security risks were found based on the above permissions:
- Read pod logs in a namespace
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- Read events cluster-wide
- List Namespaces (Cluster Reconnaissance)
- Read LimitRanges (Namespace Information Disclosure)
- Read ResourceQuotas (Namespace Information Disclosure)
- Read All ResourceQuotas (Cluster-wide Information Disclosure)
📦 Workloads (3)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | cost-analyzer | cost-analyzer-frontend | gcr.io/kubecost1/frontend:prod-1.59.2 |
| Deployment | cost-analyzer | cost-analyzer-server | gcr.io/kubecost1/server:prod-1.59.2 |
| Deployment | cost-analyzer | cost-model | gcr.io/kubecost1/cost-model:prod-1.59.2 |
🤖 cost-analyzer-grafana
Namespace: default | Automount: ❌
🔑 Permissions (1)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole cost-analyzer-grafana-clusterrole | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
⚠️ Potential Abuse (3)
The following security risks were found based on the above permissions:
📦 Workloads (3)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | cost-analyzer-grafana | grafana | grafana/grafana:6.0.0 |
| Deployment | cost-analyzer-grafana | grafana-sc-dashboard | kiwigrid/k8s-sidecar:0.0.3 |
| Deployment | cost-analyzer-grafana | grafana-sc-datasources | kiwigrid/k8s-sidecar:0.0.3 |
🤖 cost-analyzer-prometheus-alertmanager
Namespace: default | Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (2)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | cost-analyzer-prometheus-alertmanager | prometheus-alertmanager | prom/alertmanager:v0.20.0 |
| Deployment | cost-analyzer-prometheus-alertmanager | prometheus-alertmanager-configmap-reload | jimmidyson/configmap-reload:v0.3.0 |
🤖 cost-analyzer-prometheus-node-exporter
Namespace: default | Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| DaemonSet | cost-analyzer-prometheus-node-exporter | prometheus-node-exporter | prom/node-exporter:v0.18.1 |
🤖 cost-analyzer-prometheus-pushgateway
Namespace: default | Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | cost-analyzer-prometheus-pushgateway | prometheus-pushgateway | prom/pushgateway:v1.0.1 |