Securing Kubernetes cluster with Mondoo Operator


Bicycle

Dieser Artikel zeigt Ihnen, wie Sie Ihren Kubernetes-Cluster mit dem Mondoo Operator sichern können. Der Mondoo Operator vereinfacht den Prozess der Sicherung Ihrer Kubernetes-Workloads, indem er den Mondoo-Sicherheitsagenten automatisch auf Ihren Clusterknoten bereitstellt, um nach Schwachstellen und Compliance-Problemen zu suchen. Im Vergleich zur Mondoo GitHub Action ist der Mondoo Operator eine fortschrittlichere und automatisierte Methode zur Sicherung Ihrer Kubernetes-Workloads. Der Operator bietet auch eine umfassendere Sicht auf die Sicherheitslage Ihres Clusters, indem er Ihre Workloads kontinuierlich auf Schwachstellen und Compliance-Probleme scannt - einschließlich Container und Knoten.

Der Operator umfasst auch einen Admission Controller, der Sicherheitsrichtlinien in Ihrem Cluster durchsetzen kann. Dies stellt sicher, dass nur sichere Workloads in Ihrem Cluster bereitgestellt werden. Der Mondoo Operator ist ein leistungsstarkes Werkzeug zur Sicherung Ihrer Kubernetes-Workloads und zur Gewährleistung der Sicherheit und Compliance Ihres Clusters.

Wir werden uns auf das Scannen von Kubernetes-Workloads konzentrieren, die bereits in Ihrem Cluster laufen. Dies ist ein häufiger Anwendungsfall, wenn Sie sicherstellen möchten, dass Ihre Produktions-Workloads sicher und konform sind. Der Admission Controller wird in einem kommenden Artikel behandelt.

Installation des Mondoo Operators

Derzeit kann der Mondoo Operator auf folgende Weise installiert werden:

  • Manifest-basierte Installation
  • Helm-Chart-Installation
  • Operator Lifecycle Manager (OLM)-Installation

Die manifestbasierte Installation ist der einfachste Weg, den Mondoo Operator zu installieren, aber wir konzentrieren uns auf den helm-Ansatz. Das folgende Manifest installiert den Mondoo Operator im mondoo-Namespace:

1helm repo add mondoo https://mondoohq.github.io/mondoo-operator
2helm repo update
3helm install mondoo-operator mondoo/mondoo-operator --namespace mondoo-operator --create-namespace

Autorisierung des Mondoo Operators Der Mondoo Operator benötigt eine Authentifizierungskonfiguration zur Mondoo API. Daher müssen Sie dedizierte Secrets für Ihre zugehörigen Mondoo Spaces durch Servicekonten erstellen. Sie können die Servicekonten über die Benutzeroberfläche gemäß der Mondoo-Dokumentation erstellen. Sie können die entsprechende JSON-Definition für das Konto herunterladen. Das folgende Beispiel zeigt, wie Sie ein Secret für den Mondoo Operator basierend auf dieser JSON-Definition erstellen:

1kubectl create secret generic mondoo-secret-k8score-space --namespace mondoo-operator --from-file=config=mondoo-service-account.json

Konfiguration des Mondoo Operators

Der Mondoo Operator kann durch eine MondooAutoConfig- benutzerdefinierte Ressource konfiguriert werden. Das folgende Beispiel zeigt eine MondooAuditConfig, die den Mondoo Operator konfiguriert:

 1apiVersion: k8s.mondoo.com/v1alpha2
 2kind: MondooAuditConfig
 3metadata:
 4  name: mondoo-client
 5  namespace: mondoo-operator
 6spec:
 7  mondooCredsSecretRef:
 8    name: mondoo-secret-k8score-space
 9  admission:
10    enable: false
11  consoleIntegration:
12    enable: true
13  containers:
14    enable: true
15    schedule: 0 * * * *
16  kubernetesResources:
17    enable: true
18    schedule: 0 */2 * * *
19  nodes:
20    enable: true
21    schedule: 0 0 * * *
22    style: cronjob
23  filtering:
24    namespaces:
25      include:
26        - default
27        - kube-system
28        - monitoring
29        - logging
30      exclude:
31        - kube-public

Unsere Beispielkonfiguration umfasst das Scannen von Knoten und Kubernetes-Ressourcen. Die Konfiguration kann mit folgendem Befehl angewendet werden:

1kubectl apply -f mondoo-config.yaml

Wenn Sie weitere Scans für Workloads von Teams definieren möchten, die ihren eigenen Mondoo Space besitzen, müssen Sie nur die MondooAuditConfig für diesen Space mit Verweis auf deren Anmeldeinformationen definieren. Das folgende Beispiel zeigt, wie der Mondoo Operator für ein bestimmtes Team mit deren Anmeldeinformationen konfiguriert wird:

1kubectl create secret generic mondoo-secret-k8s_team_a-space --namespace mondoo-operator --from-file=config=mondoo-service-account-team-a.json

Und eine benutzerdefinierte Definition der MonddoAuditConfig für dieses Team:

 1apiVersion: k8s.mondoo.com/v1alpha2
 2kind: MondooAuditConfig
 3metadata:
 4  name: mondoo-client-team-a
 5  namespace: mondoo-operator
 6spec:
 7  mondooCredsSecretRef:
 8    name: mondoo-secret-k8s_team_a-space
 9  admission:
10    enable: false
11  nodes:
12    enable: false
13  consoleIntegration:
14    enable: false
15  containers:
16    enable: true
17    schedule: 0 * * * *
18  kubernetesResources:
19    enable: true
20    schedule: 0 */2 * * *
21  filtering:
22    namespaces:
23      include:
24        - team-a-app
25        - team-a-app2

Mondoo Visualisierung

The Mondoo Operator provides a visualization of the security posture of your Kubernetes workloads. The visualization is available in the Mondoo Console. The following screenshot shows an example of the visualization of the security posture of a Kubernetes cluster from a Mondoo Space view:

You can drill into several objects by going through all the relationships that are built into your cluster objects by starting on the inverntory

So we picked the traefik service to start our drill through this views:

On the tab of Explorer you can show related objects - so for the service of traefik the according replicaset:

By click on the colorful blob you follow this resource to its scan result

And from the replicaset of traefik we can also see the related pods:

So with this beautiful visualization you can easily drill through your kubernetes objects and see the security posture of your workloads.

Fazit

Der Mondoo Operator ist ein leistungsstarkes Werkzeug zur Sicherung Ihrer Kubernetes-Workloads. Er vereinfacht den Prozess der Sicherung Ihrer Kubernetes-Workloads, indem er den Mondoo-Sicherheitsagenten automatisch auf Ihren Clusterknoten bereitstellt, um nach Schwachstellen und Compliance-Problemen zu suchen. Der Operator bietet auch eine umfassendere Sicht auf die Sicherheitslage Ihres Clusters, indem er Ihre Workloads kontinuierlich auf Schwachstellen und Compliance-Probleme scannt - einschließlich Container und Knoten. Der Mondoo Operator ist ein leistungsstarkes Werkzeug zur Sicherung Ihrer Kubernetes-Workloads und zur Gewährleistung der Sicherheit und Compliance Ihres Clusters.

In den obigen Konfigurationsbeispielen haben wir gezeigt, wie der Mondoo Operator für das Scannen von Kubernetes-Workloads basierend auf den Anforderungen verschiedener Anwendungsfälle konfiguriert werden kann. Als Betreiber eines Kubernetes-Clusters möchte ich sicherstellen, dass meine Produktions-Workloads sicher und konform sind. Dies erfordert auch das Scannen der Knoten, Container und Kubernetes-Ressourcen. Knoten und Container können nicht von der Mondoo GitHub Action gescannt werden, daher ist der Mondoo Operator das richtige Werkzeug für diese Aufgabe.

Aber Teams, die ihren eigenen Mondoo Space besitzen, können den Mondoo Operator auch für ihre spezifischen Anforderungen konfigurieren. Dies ermöglicht es ihnen, ihre Workloads basierend auf ihren Anforderungen zu scannen und sicherzustellen, dass ihre Workloads und Definitionen sicher und konform sind.

Im nächsten Artikel werden wir den Admission Controller des Mondoo Operators behandeln. Dies ist eine leistungsstarke Funktion, die Sicherheitsrichtlinien in Ihrem Cluster durchsetzen kann.

Zurück Unsere Trainings entdecken

Wir sind für Sie da

Sie interessieren sich für unsere Trainings oder haben einfach eine Frage, die beantwortet werden muss? Sie können uns jederzeit kontaktieren! Wir werden unser Bestes tun, um alle Ihre Fragen zu beantworten.

Hier kontaktieren