This guide helps you evaluate the security of a Kubernetes cluster created using KKP against each control in the CIS Kubernetes Benchmark.
Please note: It is impossible to inspect the master nodes of managed clusters since from within the cluster(kubeconfig) one does not have access to such nodes. So for KKP, we can only check the worker nodes.
This guide corresponds to the following versions of KKP, CIS Benchmarks, and Kubernetes:
| KKP Version | Kubernetes Version | CIS Benchmark Version |
|---|---|---|
| 2.28.3 | 1.33.5 | CIS-1.23 |
Trivy was used to run the benchmark.
trivy k8s --compliance=k8s-cis-1.23 --report summary --timeout=1h --tolerations node-role.kubernetes.io/control-plane="":NoSchedule
Summary Report for compliance: CIS Kubernetes Benchmarks v1.23
Each control in the CIS Kubernetes Benchmark was evaluated. These are the possible results for each control:
🟢 Pass: The cluster passes the audit/control outlined in the benchmark.
🔵 Pass (Additional Configuration Required): The cluster passes the audit/control outlined in the benchmark with some extra configuration. The documentation is provided.
🔴 Fail: The audit/control will be fixed in a future KKP release.
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: HIGH
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: HIGH
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
Severity: CRITICAL
Result: 🟢 Pass
KKP user clusters have specific RBAC configurations that are required for cluster operation. The following controls show failures due to architectural decisions that enable multi-cloud support in the clusters.
Severity: HIGH
Result: 🔵 Expected Fail (Architectural Requirement)
The following ClusterRoleBindings to cluster-admin are present by design:
cluster-admin - Default Kubernetes binding for system:masters groupcloud-controller-manager - Required for cloud provider integration (multiple cloud providers).<cluster-id>:cluster-admin - KKP cluster owner access.Severity: HIGH
Result: 🔵 Expected Fail (Architectural Requirement)
KKP cluster owners and editors have full access to secrets as part of their administrative role. This is by design to allow cluster management.
Severity: HIGH
Result: 🔵 Expected Fail (Architectural Requirement)
KKP uses wildcard permissions for cluster owners (system:kubermatic:owners) and editors (system:kubermatic:editors) ClusterRoles. This is an intentional design decision to provide full cluster management capabilities to authorized users.
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🟢 Pass
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: MEDIUM
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: MEDIUM
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: LOW
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: LOW
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: MEDIUM
Result: 🟢 Pass
Severity: MEDIUM
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: MEDIUM
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: MEDIUM
Result: Manual check required
Severity: MEDIUM
Result: 🟢 Pass
Severity: MEDIUM
Result: Manual check required
Severity: MEDIUM
Result: Manual check required
Severity: MEDIUM
Result: Manual check required
Severity: MEDIUM
Result: Manual check required
Severity: MEDIUM
Result: 🟢 Pass
Severity: HIGH
Result: 🔴 Fail
The issue is under investigation to provide a fix in a future KKP release
Severity: MEDIUM
Result: 🟢 Pass