Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
YouTube Security VideosAndroid Police: Samsung is smashing records! #shorts #tech #phones(21.09.2026 um 13:55 Uhr)
YouTube Security Videosheise & c't: Bundesnetzagentur wollte diesen Futterautomaten verbieten(21.09.2026 um 13:53 Uhr)
YouTube Security VideosNeil Patel: Your Google Traffic Isn't An Asset It's A Loan #shorts(21.09.2026 um 14:05 Uhr)
Windows Tipps & SecurityF-14 A Tomcat Top Gun endlich als Revell Klemmbausteinmodell erhältlich(21.09.2026 um 14:27 Uhr)
Sichere ProgrammierungShow the Hand-Back Sample Before Approving an Agent Score(21.09.2026 um 14:15 Uhr)
Sichere ProgrammierungHybrid retrieval in one Postgres query: RRF over tsvector + pgvector(21.09.2026 um 14:15 Uhr)
YouTube Security VideosAndroid Police: Samsung is smashing records! #shorts #tech #phones(21.09.2026 um 13:55 Uhr)
YouTube Security Videosheise & c't: Bundesnetzagentur wollte diesen Futterautomaten verbieten(21.09.2026 um 13:53 Uhr)
YouTube Security VideosNeil Patel: Your Google Traffic Isn't An Asset It's A Loan #shorts(21.09.2026 um 14:05 Uhr)
Windows Tipps & SecurityF-14 A Tomcat Top Gun endlich als Revell Klemmbausteinmodell erhältlich(21.09.2026 um 14:27 Uhr)
Sichere ProgrammierungShow the Hand-Back Sample Before Approving an Agent Score(21.09.2026 um 14:15 Uhr)
Sichere ProgrammierungHybrid retrieval in one Postgres query: RRF over tsvector + pgvector(21.09.2026 um 14:15 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

🔐Enforcing image provenance in Kubernetes using Cosign + Sigstore + Kyverno

What if your Kubernetes cluster simply refused to run unsigned images? I spent some time experimenting with enforcing image provenance in a small Kubernetes setup using MicroK8s. The idea was simple: Only container images with valid…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

What if your Kubernetes cluster simply refused to run unsigned images?



I spent some time experimenting with enforcing image provenance in a small Kubernetes setup using MicroK8s.



The idea was simple:




Only container images with valid cryptographic signatures are allowed to run in the cluster.




For this I used:




  • GitLab CI/CD (build + signing pipeline)

  • Cosign / Sigstore (image signing)

  • Kyverno (admission control)

  • MicroK8s (local cluster)



Repo: https://github.com/trottomv/microk8s-cosign-kyverno









Why this matters



Most Kubernetes setups still rely on mutable image tags like latest, which introduces supply chain risks:




  • No guarantee of image origin

  • No binding between CI pipeline and deployed artifact

  • Risk of registry or tag mutation



So the trust gap is basically:




build time → registry → runtime










Architecture






┌──────────────────────────────┐
│ GitLab CI/CD │
│ │
│ • Build container image │
│ • Push to OCI registry │
│ • Sign image (Cosign) │
│ • Publish signature │
└──────────────┬───────────────┘


┌──────────────────────────────┐
│ OCI Registry │
│ (image + signature) │
└──────────────┬───────────────┘


┌──────────────────────────────┐
│ Kubernetes (MicroK8s) │
│ │
│ Kyverno Admission Controller│
│ • verify Cosign signature │
│ • resolve image digest │
│ • enforce policy decision │
│ │
│ → allow / reject Pod │
└──────────────────────────────┘












CI/CD: GitLab as trust origin



The image is built and signed inside GitLab CI/CD.



Example pipeline:




stages:
- build
- sign

build:
stage: build
script:
- docker build -t $IMAGE:$TAG .
- docker push $IMAGE:$TAG

sign:
stage: sign
script:
- cosign sign --key $COSIGN_KEY $IMAGE:$TAG






The rule is simple:



If it doesn’t come from CI, it doesn’t get signed.



This effectively makes the CI pipeline the root of trust for all artifacts.









Signing with Cosign



Cosign attaches a cryptographic signature to OCI images.




cosign sign --key cosign.key ghcr.io/<repo>/<image>:<tag>






Verification:




cosign verify --key cosign.pub ghcr.io/<repo>/<image>:<tag>






Signatures are stored directly in the OCI registry as artifacts.









Kyverno enforcement



Kyverno enforces image verification at admission time using a ClusterPolicy.




apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: verify-signed-images
spec:
validationFailureAction: Enforce
background: false

rules:
- name: check-signature
match:
resources:
kinds:
- Pod

verifyImages:
- imageReferences:
- "ghcr.io/<repo>/*"
attestors:
- entries:
- keys:
publicKeys: |
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----






At runtime Kyverno:




  1. Extracts image reference from Pod

  2. Resolves immutable digest

  3. Fetches Cosign signature from registry

  4. Verifies signature

  5. Allows or denies Pod creation









What happens in practice






Unsigned image




  • No valid signature found

  • Kyverno rejects Pod at admission






Signed image




  • Signature verified successfully

  • Pod is admitted into the cluster



The interesting bit:



even if someone manually pushes an image to the registry, it still won’t run.



The cluster doesn’t trust the registry — it trusts the signature.









Why MicroK8s



MicroK8s was used as a lightweight lab environment to:




  • test Kyverno policies locally

  • simulate admission control behavior

  • iterate quickly on Cosign integration









Key takeaways




  • GitLab CI/CD becomes a trust anchor when combined with Cosign

  • Kyverno enforces security at admission time, not runtime

  • OCI registry acts as a provenance carrier

  • End-to-end supply chain security is achievable with minimal tooling









Closing thought



This experiment shows how Kubernetes supply chain security can be enforced end-to-end using:




  • GitLab CI/CD for build and signing

  • Cosign for cryptographic provenance

  • Kyverno for policy enforcement



Result:




Only verified and signed workloads can run in the cluster.










Repository



https://github.com/trottomv/microk8s-cosign-kyverno

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten 🔐Enforcing image provenance in Kubernetes using Cosign + Sigstore + Kyverno

Thematisch verwandte Begriffe: Enforcing, image, provenance, Kubernetes · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94097 | A vulnerability was determined in Netcore NBR200V2 1.3.241127.071246. Th…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick