Signieren von Bildern für vertrauenswürdige Inhalte in Container Registry

IBM Cloud® Container Registry bietet eine Technologie für vertrauenswürdige Inhalte, sodass Sie Images signieren können, um die Integrität von Images in Ihrem Registry-Namensbereich sicherzustellen.

Durch Abrufen von signierten Images per Pull-Operation und ihre Übertragung per Push-Operation können Sie sicherstellen, dass Ihre Images vom richtigen Teilnehmer, z. B. Ihren Tools für kontinuierliche Integration (Continuous Integration, CI), per Push-Operation übertragen wurden.

Sie können zum Signieren Ihrer Images Red Hat®-Signaturen verwenden.

Images mithilfe von Red Hat-Signaturen signieren

Sie können verschiedene Tools verwenden, um Red Hat Signaturen für Ihre Bilder zu erstellen. Sie können Ihre signierten Images für vertrauenswürdige Inhalte mithilfe der Erweiterungs-API von Red Hat-Signaturen speichern, die von IBM Cloud Container Registry unterstützt wird.

Sie können zum Erstellen von Red Hat-Signaturen die folgenden Tools verwenden:

Images mit Skopeo signieren

Um mit Skopeo zum Signieren Ihrer Bilder zu verwenden, müssen Sie eine private GNU Privacy Guard(GnuPG oder GPG) Identität erstellen und dann den Befehl skopeo ausführen.

Das folgende Beispiel enthält keine Skopeo-Authentifizierung.

  1. Führen Sie den folgenden Befehl aus, um eine GnuPG-Identität zu erstellen.

    gpg --generate-key
    
  2. Übertragen Sie das Image per Push-Operation und signieren Sie es gleichzeitig, indem Sie die GnuPG-Identität zum Signieren des Images verwenden. Dabei steht YOUR_EMAIL für die E-Mail-Adresse, mit der Sie sich für GnuPG, angemeldet haben, REPOSITORY:TAG für Ihr Repository und Ihr Tag und IMAGE für den Namen Ihres Bildes im Format <region><namespace><repository>:<tag>, wobei <region> der Name Ihrer Region, <namespace> der Name Ihres Namensraums und <repository>:<tag> Ihr Repository und Tag ist.

    Um die Namen Ihrer Images zu ermitteln, führen Sie ibmcloud cr image-list aus. Kombinieren Sie den Inhalt der Spalten Repository (repository) und Schlagwort (tag), getrennt durch einen Doppelpunkt (:), um den Imagenamen im Format <repository>:<tag> zu erstellen. Wenn das Zeitlimit für den Befehl 'list images' überschritten wird, finden Sie weitere Informationen unter Warum wird das Zeitlimit überschritten, wenn ich Bilder auflistet?.

    skopeo --insecure-policy copy --sign-by YOUR_EMAIL docker-daemon:REPOSITORY:TAG docker://IMAGE
    

    Ein Beispiel: YOUR_EMAIL ist Ihre E-Mail-Adresse GnuPG (user@email.com), bluebird:build1 ist Ihr Repository und Ihr Tag und us.icr.io/birds/bluebird:build1 ist der Name Ihres Bildes.

    skopeo --insecure-policy copy --sign-by user@email.com docker-daemon:bluebird:build1 docker://us.icr.io/birds/bluebird:build1
    

    macOS Wenn Sie unter macOS, die Fehlermeldung Error copying image to the remote destination: Error writing signatures: mkdir /var/lib/containers/sigstore: permission denied erhalten, überschreiben Sie die interne Vorgabe für die Registrierungskonfiguration, damit der richtige Signaturspeicher verwendet wird, indem Sie den Befehl mit der Option --registries.d ausführen.

    skopeo --registries.d . --insecure-policy copy --sign-by user@email.com docker-daemon:us.icr.io/birds/bluebird:build1 docker://us.icr.io/birds/bluebird:build1
    

LinuxmacOS Auf Linux® und macOS, ist die Standardkonfiguration für die Tools die lokale Speicherung der Signaturen. Das lokale Speichern von Signaturen kann dazu führen, dass die Signaturprüfung fehlschlägt, weil die Signatur nicht in der Registry enthalten ist. Um dieses Problem zu beheben, können Sie die Konfigurationsdatei bearbeiten oder löschen. Auf Linux® wird die Konfiguration unter /etc/containers/registries.d/default.yaml gespeichert. Unter macOS wird die Konfigurationsdatei in /usr/local/etc/containers/registries.d/default.yamlgespeichert. Wenn unter macOS Skopeo mithilfe des Homebrew-Paketmanagers installiert wird, befindet sich die Konfigurationsdatei möglicherweise unter /opt/homebrew/Cellar/etc/containers/registries.d/default.yaml für Apple silicon oder unter /usr/local/Cellar/etc/containers/registries.d/default.yaml für Intel.

Images mit Podman signieren

Sie können Podman zum Signieren von Bildern verwenden. Für weitere Informationen siehe Podman.

Images über die Red Hat OpenShift-CLI signieren

Sie können Ihre Images über die Red Hat OpenShift Befehlszeilenschnittstelle (CLI) signieren. Weitere Informationen finden Sie unter Red Hat OpenShift CLI. Die Befehlszeilenschnittstelle Red Hat® OpenShift® verwendet den Befehl oc.