Containerisierung: Google Kubernetes Engine erhält neues Profil zur Validierung

Das InSpec-Benchmark-Profil 1.1 prüft mit den Richtlinien des Centers for Internet Security, ob die Cluster-Konfiguration in der Kubernetes Engine sicher ist.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: zhangyang13576997233 / Shutterstock.com)

Von
  • Silke Hahn

Das Google-Team hat ein für seine Kubernetes Engine (GKE) passendes neues Tool vorgestellt, das in Version 1.1 als quelloffene Software auf GitHub bereitsteht: Das GKE CIS 1.1 Benchmark InSpec Profile erlaubt es Entwicklern, die Sicherheit der Cluster ihrer GKE-Instanzen anhand der Empfehlungen des Center for Internet Security (CIS) zu prüfen und zu bewerten. Die zugrundeliegende Technologie basiert auf dem plattformagnostischen Auditierungs- und Test-Framework InSpec der Firma Chef.

Vereinfacht gesagt prüft InSpec, ob die Attribute eines GKE-Clusters dem im Code beschriebenen gewünschten Zustand entsprechen. Zur genauen Validierung mit InSpec hatte das Open-Source-Team von Google im vergangenen Sommer einen Beitrag verfasst. InSpec-GCP (also die Version für die Google Cloud) vermag Ressourcen mit der Google-Cloud-API abzugleichen.

Das Repository des Benchmark-InSpec-Profils ist in drei Unterprofile mit unterschiedlichen Targets (in dem Fall: t-Parametern) aufgeteilt: So finden Entwickler bei GitHub je ein Profil für die Google Cloud Platform (GCP), für Kubernetes-Layer und für das SSH-Protokoll. Im Root-Verzeichnis findet sich ein Wrapper-Script, das Berichte den dafür vorgesehenen Ordnern zuweist. Folgendes Code-Beispiel führt vor, wie sich die drei Profile inspec-gke-cis-gcp, inspec-gke-cis-k8s und inspec-gke-cis-ssh mit dem Wrapper-Script betreiben lassen:

./run_profiles.sh -c inspec-cluster \
                           -u konrad \
                           -k /home/konrad/.ssh/google_compute_engine \
                           -z us-central1-a \
                           -i inputs.yml
Running InSpec profile inspec-gke-cis-gcp ...

Profile: InSpec GKE CIS 1.1 Benchmark (inspec-gke-cis-gcp)
Version: 0.1.0
Target: gcp://<service account used for InSpec>

<lots of InSpec output omitted>

Profile Summary: 16 successful controls, 10 control failures, 2 controls skipped
Test Summary: 18 successful, 11 failures, 2 skipped
Stored report in reports/inspec-gke-cis-gcp_report.
Running InSpec profile inspec-gke-cis-k8s …

Profile: InSpec GKE CIS 1.1 Benchmark (inspec-gke-cis-k8s)
Version: 0.1.0
Target: kubernetes://<IP address of K8S endpoint>:443

<lots of InSpec output omitted>

Profile Summary: 9 successful controls, 1 control failure, 0 controls skipped
Test Summary: 9 successful, 1 failure, 0 skipped
Stored report in reports/inspec-gke-cis-gcp_report.
Running InSpec profile inspec-gke-cis-ssh on node <cluster node 1> ...

Profile: InSpec GKE CIS 1.1 Benchmark (inspec-gke-cis-ssh)
Version: 0.1.0
Target: ssh://<username>@<cluster node 1>:22

<lots of InSpec output omitted>

Profile Summary: 10 successful controls, 5 control failures, 1 control skipped
Test Summary: 12 successful, 6 failures, 1 skipped
Stored report in reports/inspec-gke-cis-ssh_<cluster node 1>_report.

Nach erfolgreich durchgeführtem Initialisieren mittels Wrapper-Script erhalten Entwickler einen JSON- oder HTML-Bericht über die Validierung ihrer GKE-Cluster. Berichte lassen sich auswerten, indem man sie vom Berichte-Ordner (Reports Folder) in das ebenfalls auf GitHub verfügbare Visualisierungstool Heimdall Lite überführt.

Den Scanbericht einer Sicherheitsvalidierung mit Heimdall Lite überprüfen

(Bild: Google Blog)

InSpec ist ein DevSecOps-Framework, das den Konfigurationszustand von Ressourcen in Virtuellen Maschinen (VM) und Containern überprüft und sich bei den gängigen Cloud-Providern betreiben lässt (GCP, AWS, Microsoft Azure). Ob ein Betrieb On-Premises auch vorgesehen ist, geht aus der Blogankündigung nicht hervor. Für die Google Cloud liegt das Framework in Version 1.8 vor (InSpec-GCP Resource Pack 1.8).

Seine Grenzen liegen da, wo es für manche Kubernetes-Betreiber dann ebenfalls interessant wird: Das von Google vorgestellte Tool kann den Abgleich zunächst nur für die hauseigene Plattform vornehmen, die Konfigurationen anderer relevanter Layer wie Kubernetes-Konfigurationsdateien auf den Nodes lassen sich damit laut Blogmitteilung nicht unmittelbar prüfen. Auf GitHub stehen allerdings wie eingangs erwähnt drei verschiedene Benchmark-Profile bereit, und mit den Software-Paketen von inspec-gke-cis-k8s können Entwickler ihre Kubernetes-Ressourcen jenseits der Google-Plattform validieren.

Kubernetes nutzt Konfigurationsdateien (typischerweise im YAML-Format), die auf den Nodes des Dateisystems gespeichert sind. Bei der Google Kubernetes Engine (GKE) handelt es sich um einen verwalteten Service der Google Cloud Platform (GCP). Mit der GKE lässt sich das Verhalten von Clustern steuern und die Einstellungen der Cloud-Ressourcen lassen sich dann mittels Infrastructure-as-Code (IaC) zum Beispiel mit Terraform oder über die Google-Cloud-Konsole anpassen.

Wer das Validieren mit dem Benchmark-Profil ausprobieren möchte, kann sich von GitHub einen Clon des Repository ziehen, die Readme-Datei enthält eine Beschreibung des weiteren Vorgehens. Technische Details und weiterführende Informationen lassen sich der Ankündigung im Google-Blog entnehmen.

(sih)