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.
-
Führen Sie den folgenden Befehl aus, um eine GnuPG-Identität zu erstellen.
gpg --generate-key -
Ü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_EMAILfür die E-Mail-Adresse, mit der Sie sich für GnuPG, angemeldet haben,REPOSITORY:TAGfür Ihr Repository und Ihr Tag undIMAGEfü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-listaus. 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://IMAGEEin Beispiel:
YOUR_EMAIList Ihre E-Mail-Adresse GnuPG (user@email.com),bluebird:build1ist Ihr Repository und Ihr Tag undus.icr.io/birds/bluebird:build1ist der Name Ihres Bildes.skopeo --insecure-policy copy --sign-by user@email.com docker-daemon:bluebird:build1 docker://us.icr.io/birds/bluebird:build1macOS Wenn Sie unter macOS, die Fehlermeldung
Error copying image to the remote destination: Error writing signatures: mkdir /var/lib/containers/sigstore: permission deniederhalten, überschreiben Sie die interne Vorgabe für die Registrierungskonfiguration, damit der richtige Signaturspeicher verwendet wird, indem Sie den Befehl mit der Option--registries.dausfü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.