Im schnelllebigen cloud-native Umfeld ist Kubernetes zum De-facto-Standard für Container-Orchestrierung geworden. Pods sind im Sekundentakt gestartet, Container-Images stammen aus den unterschiedlichsten Registries. Bei all dem Innovationstempo bleibt eine entscheidende Frage offen: Wissen Sie wirklich, was in Ihrem Cluster läuft?
Wenn Ihre Antwort auf Vertrauen oder Annahmen über die Integrität Ihrer Images fußt, läuft Ihr Cluster womöglich auf blindem Glauben – ein riskanter Ansatz in Zeiten immer raffinierterer Supply-Chain-Angriffe.
Da Unternehmen ihre Anwendungen zunehmend in Containern ausliefern, wird die Sicherstellung der Integrität und Authentizität der Container-Images im Cluster zur obersten Priorität. Image-Verifizierung ist kein "Nice-to-have" mehr, sondern eine unverzichtbare Säule einer belastbaren Kubernetes-Sicherheitsstrategie.
Warum sollten Sie Container-Images verifizieren?
Container-Images sind die Bausteine Ihrer Kubernetes-Anwendungen. Sie bündeln Ihren Code, dessen Abhängigkeiten und die Laufzeitumgebung. Diese Bequemlichkeit bringt jedoch potenzielle Schwachstellen mit sich, sobald Images nicht sorgfältig geprüft werden.
Deshalb ist Image-Verifizierung heute keine Option mehr:
- 🔓 Supply-Chain-Angriffe: Angreifer nehmen die Software-Lieferkette zunehmend ins Visier und schleusen Schadcode in scheinbar legitime Images ein. Ohne Verifizierung werden Sie früher oder später zum Opfer in der Lieferkette.
- 🐞 Bekannte Schwachstellen: Viele Images bauen auf Base Layern mit veralteten oder verwundbaren Paketen auf. Unverifizierte Images können Sie unbemerkt CVEs (Common Vulnerabilities and Exposures) aussetzen.
- 🔧 Fehlkonfigurationen: Images, die als root laufen, ungenutzte Ports öffnen oder hartkodierte Secrets enthalten, schaffen Einfallstore für Angreifer.
- 🎯 Menschliches Versagen: Engineers greifen versehentlich zu einer älteren oder ähnlich benannten, aber unsicheren Image-Version. Ohne strikte Prüfungen rutschen solche Fehler in die Produktion.
- 📋 Compliance-Verstöße: Standards wie PCI DSS, SOC 2 und HIPAA verlangen Nachweise über Software-Integrität und Herkunft. Unverifizierte Images können zu fehlgeschlagenen Audits und Bußgeldern führen.
Ohne belastbare Verifizierungsmechanismen wird Ihr Kubernetes-Cluster schnell zum unregulierten Sammelbecken ungeprüfter Software – mit erheblichem Risiko für Ihr Unternehmen.
Wie Kyverno Image-Verifizierung löst und vereinfacht
Das Kubernetes-Ökosystem bietet leistungsstarke Werkzeuge, um über reines Vertrauen hinauszugehen und nachweisbare Integrität durchzusetzen. Eine besonders herausragende Lösung ist Kyverno, eine Policy-Engine, die speziell für Kubernetes entwickelt wurde.
Kyverno fungiert als Admission Controller: Es fängt API-Anfragen ab und wendet Policies an, bevor Workloads im Cluster zugelassen werden. Damit ist es ideal geeignet, um Image-Verifizierungs-Policies bereits zum Deployment-Zeitpunkt durchzusetzen.
Die wichtigsten Vorteile von Kyverno für die Image-Verifizierung:
- ✅ Image-Signaturen prüfen: Erzwingen Sie kryptografische Signaturen, damit Images nachweislich authentisch und unverändert sind.
- 📜 Attestierungen prüfen: Validieren Sie signierte Metadaten zum Image, etwa Scan-Status oder Build-Provenienz.
- 🔒 Registries einschränken: Lassen Sie ausschließlich Images aus vertrauenswürdigen Quellen zu.
- 🏷️ Tagging-Standards durchsetzen: Sorgen Sie dafür, dass Images explizite Tags verwenden (also nicht
latest) und einer sauberen Versionierung folgen.
Beispiele für Kyverno-Policies zur Image-Verifizierung
Sehen wir uns einige Praxisbeispiele an. Stellen Sie vorab sicher, dass Kyverno in Ihrem Cluster installiert ist.
Szenario 1: Images auf zugelassene Registries beschränken
Eine einfache, aber wirkungsvolle Policy: Nur Images aus den vertrauenswürdigen Registries Ihres Unternehmens zulassen.
---
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: restrict-image-registries
spec:
validationFailureAction: Enforce # Deployments blockieren, wenn die Validierung fehlschlägt
rules:
- name: validate-registries
match:
any:
- resources:
kinds:
- Pod
- Deployment
- StatefulSet
- Job
- CronJob
validate:
message: "Images must be pulled from approved registries (gcr.io or my.private.registry)."
pattern:
spec:
containers:
- image: "gcr.io/* | my.private.registry/*" # Erlaubte Registry-Muster
Wird ein Image aus einer nicht zugelassenen Registry verwendet, wird das Deployment mit einer eindeutigen Validierungsmeldung blockiert.

Szenario 2: Sicherstellen, dass Images mit Cosign signiert sind
Cosign, eine zentrale Komponente des Sigstore-Projekts, ist ein weit verbreitetes Tool zum kryptografischen Signieren und Verifizieren von Software-Artefakten. Signaturen und Attestierungen werden direkt in einer OCI-Registry abgelegt. Stellen Sie sicher, dass die öffentlichen Schlüssel zur Image-Verifizierung erreichbar sind – entweder in Kubernetes Secrets oder per URL.
Kyverno integriert sich direkt mit Cosign über die Regel verifyImages, um Policies durchzusetzen, die Container-Image-Signaturen sowie in-toto-Attestierungen validieren. So gelangen ausschließlich vertrauenswürdige und verifizierte Images in den Kubernetes-Cluster.
Hier ist eine Kyverno-ClusterPolicy, die sicherstellt, dass alle im Namespace production deployten Images mit einem bestimmten öffentlichen Schlüssel signiert sind:
---
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: check-image-signatures
spec:
validationFailureAction: Enforce
background: false
webhookTimeoutSeconds: 30
failurePolicy: Fail
rules:
- name: verify-image-signature
match:
any:
- resources:
kinds:
- Pod
namespaces:
- production
verifyImages:
- imageReferences:
- "registry.example.com/*:*" # An Ihr Image-Muster anpassen
attestors:
- count: 1
entries:
- keys:
publicKeys: | #Der öffentliche Schlüssel kann entweder direkt in der Policy definiert oder über ein Standard-Kubernetes-Secret an anderer Stelle im Cluster referenziert werden – im Format k8s://<namespace>/<secret_name>. Das genannte Secret muss einen Schlüssel cosign.pub enthalten, der den öffentlichen Schlüssel zur Verifizierung bereitstellt.
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyourPublicKeyContentHere...
-----END PUBLIC KEY-----
Ein signiertes Image lässt sich wie gewohnt deployen, während der Versuch, ein unsigniertes Image zu starten, in einem Policy-Fehler endet:

Szenario 3: Attestierungen von Schwachstellen-Scans verifizieren
Ein zentraler Aspekt der Software-Supply-Chain-Integrität sind regelmäßige Schwachstellen-Scans der Images. Scans zur Build-Zeit sind ein Anfang – sie müssen aber wiederholt werden, sobald neue Schwachstellen bekannt werden. Kyverno unterstützt das, indem es Attestierungen prüft, die einen kürzlich erfolgreich durchgeführten Scan belegen.
Hier eine Kyverno-ClusterPolicy von Trivy, die für Pod-Images sicherstellt, dass deren Schwachstellen-Scan nicht älter als eine Woche ist.
---
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: check-vulnerabilities
spec:
validationFailureAction: enforce
webhookTimeoutSeconds: 30
failurePolicy: Fail
rules:
- name: not-older-than-one-week
match:
any:
- resources:
kinds:
- Pod
verifyImages:
- imageReferences:
- "registry.example.com/*:*" # An Ihr Image-Muster anpassen
attestations:
- predicateType: cosign.sigstore.dev/attestation/vuln/v1
conditions:
- all:
- key: "{{ time_since('','{{metadata.scanFinishedOn}}','') }}"
operator: LessThanOrEquals
value: "168h"
Kyverno blockiert die Pod-Erstellung, wenn das Image nicht kürzlich auf Schwachstellen gescannt wurde und keine Cosign-signierte Attestierung des Schwachstellen-Scans vorliegt.

Das sind nur einige Beispiele. Die Flexibilität von Kyverno erlaubt deutlich granularere Kontrollen – etwa die Prüfung bestimmter Image-Tags und Labels oder das Ablehnen von Images mit kritischen Schwachstellen anhand der Attestierungsdaten.
Image-Verifizierung ist nicht nur Best Practice – sie ist eine grundlegende Voraussetzung für sichere cloud-native Operations. Werkzeuge wie Kyverno bieten einen leistungsstarken und flexiblen Weg, von blindem Vertrauen zu nachweisbarer Sicherheit zu gelangen. Und wenn es darum geht, dass Ihre Workloads nicht nur sicher, sondern auch passgenau dimensioniert, zuverlässig und kosteneffizient laufen, ergänzen Plattformen wie PerfectScale Sicherheits-Tools, indem sie Kubernetes-Workloads kontinuierlich auf Optimierungspotenziale analysieren – ohne Performance oder Compliance zu gefährden.
Mit der Verifizierung von Image-Signaturen, der Prüfung von Attestierungen und der Beschränkung auf vertrauenswürdige Registries bauen Sie eine starke Verteidigungslinie gegen ein breites Spektrum an Angriffen auf die Software-Lieferkette auf.
Werfen Sie einen Blick in die Kyverno-Dokumentation und auf Cosign und sichern Sie Ihre Container-Workloads ab heute ab. Wenn Sie mehr erfahren möchten oder sich für unsere Services interessieren, sprechen Sie uns gerne an. Sie erreichen uns hier.