· Kubernetes  · 3 Min. Lesezeit

Die eigene Registry mit Harbor: scannen, cachen, absichern

Eine eigene Container-Registry ist mehr als ein Bilderspeicher. Harbor scannt Images beim Hochladen, spiegelt externe Images als Proxy-Cache und löst damit nebenbei die Egress-Wand, an der In-Cluster-Scanner scheitern.

Eine eigene Container-Registry ist mehr als ein Bilderspeicher. Harbor scannt Images beim Hochladen, spiegelt externe Images als Proxy-Cache und löst damit nebenbei die Egress-Wand, an der In-Cluster-Scanner scheitern.

Eine eigene Container-Registry gilt schnell als bloßer Bilderspeicher. Harbor ist mehr: eine Registry, die jedes Image prüft, externe Images spiegelt und Zugriffe eng führt. Und sie löst genau das Egress-Problem, an dem ein In-Cluster-Scanner in abgeschotteten Netzen scheitert (siehe Schwachstellen-Scanning mit Trivy).

Ich gehe den Aufbau in der Reihenfolge durch, in der die Bausteine im Betrieb greifen: erst der Scan an der Quelle, dann der Proxy-Cache als kontrollierter Ausgang, danach die Zugriffskonten und zum Schluss die ehrliche Frage, ab wann sich der Betrieb überhaupt lohnt.

Scan-on-push: der Check sitzt an der Quelle

Harbor scannt jedes hochgeladene Image direkt beim Push, mit Trivy, und listet die Funde pro Image. Auf Wunsch blockiert es Images mit kritischen Lücken, sodass verwundbare Artefakte gar nicht erst in den Cluster kommen. Der Sicherheitscheck sitzt damit an der Quelle, nicht erst am laufenden Workload, wo das Kind schon im Brunnen liegt. Wie das Scanning konfiguriert und automatisiert wird, beschreibt die Harbor-Doku zum Vulnerability Scanning.

Der Proxy-Cache löst die Egress-Wand

Der zweite große Nutzen ist der Proxy-Cache. Statt dass jeder Node externe Images direkt von docker.io oder ghcr.io zieht, spiegelt Harbor sie und der Cluster zieht nur noch aus Harbor. Dafür lege ich in Harbor ein Proxy-Cache-Projekt an, das auf die externe Registry als Ziel zeigt, und lasse den Cluster nur noch darüber ziehen. In dichten Netzen ist das der saubere Weg: ein kontrollierter Ausgang statt hundert unkontrollierten. Auf demselben Weg lässt sich auch die Schwachstellen-Datenbank intern bereitstellen, sodass der Scanner nicht mehr nach draußen muss, um seine Arbeit zu tun. Wie so ein Projekt aufgesetzt wird, steht in der Harbor-Doku zum Proxy-Cache.

Robot-Accounts statt persönlicher Logins

CI-Pipelines und Cluster ziehen ihre Images nicht mit einem persönlichen Token, sondern mit eng berechtigten Robot-Accounts, gültig nur für ein Projekt und eine Aktion. Wird so ein Account kompromittiert, bleibt der Schaden begrenzt und nachvollziehbar, und niemand muss sein privates Login in eine Pipeline legen.

Ehrlich: Harbor ist ein Betrieb für sich

Harbor bringt eine Datenbank, Objektspeicher, regelmäßige Trivy-DB-Updates und den Wunsch nach Hochverfügbarkeit mit. Das ist kein Nebenbei. Für einen einzelnen kleinen Cluster ist die öffentliche Registry plus ein In-Cluster-Scan einfacher und völlig ausreichend. Ab mehreren Clustern, echten Compliance-Anforderungen oder einem abgeschotteten Netz aber wird Harbor vom Luxus zur vernünftigen Grundlage.

Sie wollen kontrollieren, welche Images in Ihre Systeme gelangen, und sie vorab prüfen? Ich baue Registry- und Scanning-Setups, die Sicherheit an die Quelle holen, passend zur Größe Ihrer Umgebung. Mehr unter Infrastruktur & Cloud, das Erstgespräch ist unverbindlich.

Alex Jabi, Jabi IT

Alex Jabi

Ich betreue IT, Informationssicherheit und Datenschutz für KMU und Praxen an der Bergstraße und im Odenwald, persönlich, dokumentiert und ohne Cloud-Zwang.

Mehr über mich
Zurück zum Blog

Passende Artikel

Alle Artikel »
Wissen, welche Lücken laufen: Schwachstellen-Scanning mit Trivy

Wissen, welche Lücken laufen: Schwachstellen-Scanning mit Trivy

Ein Container-Image kann Dutzende bekannte Sicherheitslücken mitbringen, und niemand merkt es. Wie der Trivy-Operator laufende Workloads kontinuierlich scannt, was so ein Report zeigt und warum der Scanner in abgeschotteten Clustern selbst zum Problem wird.

Wenn der einzige Zugang die Rancher-Shell ist

Wenn der einzige Zugang die Rancher-Shell ist

Manche Umgebungen geben keinen direkten Cluster-Zugang her: kein kubeconfig, kein kubectl von außen, nur die Kubectl-Shell in Rancher. Das ist unbequem, aber eine sinnvolle Einschränkung, und man kann sehr sauber damit arbeiten.