docker / docker/github-builder

Signing the main tag/manifest?

Offen
#104 3 Kommentare 6 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

kind/enhancement status/triage
Vorherrschende Sprache
Keine Sprachdaten
Sterne
83
Forks
23
Ø Merge
2 T. 22 Std.
Gemergte PRs (30 T.)
8

Beschreibung

Description

Today if we do this:

    uses: docker/github-builder/.github/workflows/build.yml@v1
    with:
      output: image
      push: true
      platforms: linux/amd64,linux/arm64
      sbom: true
      meta-images: |
        ghcr.io/my-org/my-image
      meta-tags: |
        latest

We are able to cosign verify the two manifests per platform linux/amd64 and linux/arm64 individually and explicitly.

But we are not able to do this:

cosign verify \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp ^https://github.com/docker/github-builder/.github/workflows/build.yml.*$ \
  ghcr.io/my-org/my-image:FIXME-WITH-LATEST-DIGEST

We'll get this error because there is no signature on the main tag/manifest:

Error: no signatures found
error during command execution: no signatures found

It's common practice to have the main tag/digest in Dockerfile for base images and in Kubernetes manifests for final container images to refer to the main tag/digest, letting then the platform pulling the actual digest based on the arch/platform. In the meantime, admission controller like Kyverno will check the signature on the main tag/digest.

Could we add the cosign signature on the main tag/digest too?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in .github/workflows/build.yml und untersuche, wie cosign-Signaturen für die Manifeste linux/amd64 und linux/arm64 erzeugt werden. Vergleiche diesen Ablauf mit dem angeforderten Verifizierungsbefehl für main tag/digest; abgeschlossen ist es, wenn das main-Manifest ebenfalls erfolgreich verifiziert werden kann und die bestehenden Signaturen pro Plattform erhalten bleiben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker, github-actions
Bereich
ci-cd, devops, security
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.