Firma delle immagini per i contenuti attendibili in Container Registry

IBM Cloud® Container Registry fornisce una tecnologia di contenuti attendibili che ti permette di firmare le immagini per garantirne l'integrità nel tuo spazio dei nomi del registro.

Mediante l'esecuzione del pull e del push delle immagini firmate, puoi verificare che le tue immagini siano state trasmesse dalla parte giusta, come i tuoi strumenti di integrazione continua (CI).

È possibile utilizzare le firme di Red Hat® per firmare le immagini.

Firmare le immagini utilizzando le firme di Red Hat

È possibile utilizzare diversi strumenti per creare firme Red Hat per le immagini. Puoi archiviare le tue immagini firmate per contenuti attendibili utilizzando l'API con estensione Red Hat Signatures, la quale è supportata da IBM Cloud Container Registry.

Puoi utilizzare i seguenti strumenti per creare le firme Red Hat:

Utilizzo di skopeo per firmare le immagini

Per utilizzare Skopeo per firmare le tue immagini, devi creare un'identità GNU Privacy Guard (GnuPG o GPG) privata ed eseguire quindi il comando skopeo.

Il seguente esempio non include l'autenticazione Skopeo.

  1. Per creare un'identità GnuPG, immetti il seguente comando.

    gpg --generate-key
    
  2. Spingere e firmare l'immagine allo stesso tempo utilizzando l'identità GnuPG per firmare l'immagine. Dove YOUR_EMAIL è l'indirizzo e-mail usato per iscriversi a GnuPG, REPOSITORY:TAG è il repository e il tag e IMAGE è il nome dell'immagine nel formato <region><namespace><repository>:<tag>, dove <region> è il nome della regione, <namespace> è il nome del namespace e <repository>:<tag> è il repository e il tag.

    Per trovare i nomi delle tue immagini, esegui ibmcloud cr image-list. Combinare il contenuto della colonna Repository (repository) e della colonna Tag (tag) separate da due punti (:) per creare il nome dell'immagine nel formato <repository>:<tag>. Se il comando elenca immagini si interrompe, consultare la sezione Perché l'elenco delle immagini si interrompe?

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

    Ad esempio, dove YOUR_EMAIL è l'indirizzo e-mail GnuPG (user@email.com), bluebird:build1 è il repository e il tag e us.icr.io/birds/bluebird:build1 è il nome dell'immagine.

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

    macOS Su macOS,, se si ottiene l'errore Error copying image to the remote destination: Error writing signatures: mkdir /var/lib/containers/sigstore: permission denied, si annulla l'impostazione predefinita interna per la configurazione del registro in modo da utilizzare la corretta archiviazione delle firme eseguendo il comando con l'opzione --registries.d.

    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 Su Linux® e macOS, la configurazione predefinita degli strumenti prevede la memorizzazione delle firme a livello locale. La memorizzazione delle firme a livello locale può portare a un fallimento della verifica della firma, perché la firma non è presente nel registro. Per risolvere questo problema, è possibile modificare o eliminare il file di configurazione. Su Linux®, la configurazione viene salvata in /etc/containers/registries.d/default.yaml. Su macOS, il file di configurazione viene salvato in /usr/local/etc/containers/registries.d/default.yaml. Su macOS, quando viene installato Skopeo utilizzando il gestore pacchetti Homebrew, il file di configurazione potrebbe essere all'indirizzo /opt/homebrew/Cellar/etc/containers/registries.d/default.yaml per Apple silicon o /usr/local/Cellar/etc/containers/registries.d/default.yaml per Intel.

Utilizzo di Podman per firmare le immagini

È possibile utilizzare Podman per firmare le immagini. Per ulteriori informazioni, vedere Podman.

Firma delle immagini utilizzando la CLI Red Hat OpenShift.

È possibile firmare le immagini utilizzando l'interfaccia a riga di comando (CLI) di Red Hat OpenShift. Per ulteriori informazioni, vedere Red Hat OpenShift CLI. La CLI Red Hat® OpenShift® utilizza il comando oc.