Signer des images pour un contenu de confiance dans Container Registry
IBM Cloud® Container Registry fournit une technologie de contenu digne de confiance pour vous permettre de signer des images pour garantir l'intégrité des images dans votre espace de nom de registre.
En extrayant et en transférant des images signées, vous pouvez vérifier que vos images ont été envoyées par la partie appropriée, comme les outils d'intégration continue.
Vous pouvez utiliser les signatures Red Hat® pour signer vos images.
Signature d'images à l'aide de signatures Red Hat
Vous pouvez utiliser différents outils pour créer des signatures Red Hat pour vos images. Vous pouvez stocker vos images signées pour le contenu sécurisé à l'aide de l'API d'extension des signatures Red Hat, qui est prise en charge par IBM Cloud Container Registry.
Vous pouvez utiliser les outils suivants pour créer des signatures Red Hat:
Utilisation de skopeo pour signer des images
Pour utiliser Skopeo pour signer vos images, vous devez créer une identité privée GNU Privacy Guard(GnuPG ou GPG),
puis exécuter la commande skopeo
.
L'exemple suivant n'inclut pas l'authentification Skopeo.
-
Pour créer une identité GnuPG, exécutez la commande suivante.
gpg --generate-key
-
Envoyez l'image et, simultanément, signez-la en utilisant l'identité GnuPG. Où
YOUR_EMAIL
est l'adresse électronique que vous avez utilisée pour vous inscrire à GnuPG,REPOSITORY:TAG
est votre dépôt et votre balise, etIMAGE
est le nom de votre image au format<region><namespace><repository>:<tag>
, où<region>
est le nom de votre région,<namespace>
est le nom de votre espace de noms et<repository>:<tag>
est votre dépôt et votre balise.Pour trouver les noms de vos images, exécutez
ibmcloud cr image-list
. Combinez le contenu de la colonne Référentiel (repository
) et de la colonne Balise (tag
) séparées par un signe deux-points (:
) pour créer le nom de l'image au format<repository>:<tag>
. Si la commande énumérer les images ne fonctionne pas, consultez la section Pourquoi la commande énumérer les images ne fonctionne-t-elle pas? pour obtenir de l'aide.skopeo --insecure-policy copy --sign-by YOUR_EMAIL docker-daemon:REPOSITORY:TAG docker://IMAGE
Par exemple, où
YOUR_EMAIL
est votre adresse électronique GnuPG (user@email.com
),bluebird:build1
est votre dépôt et votre étiquette, etus.icr.io/birds/bluebird:build1
est le nom de votre image.skopeo --insecure-policy copy --sign-by user@email.com docker-daemon:bluebird:build1 docker://us.icr.io/birds/bluebird:build1
macOS Sur le site macOS,, si vous obtenez l'erreur
Error copying image to the remote destination: Error writing signatures: mkdir /var/lib/containers/sigstore: permission denied
, remplacez la valeur par défaut interne de la configuration du registre afin que le stockage correct des signatures soit utilisé en exécutant la commande avec l'option--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 Sur Linux® et macOS,, la configuration par défaut des outils consiste à stocker les signatures localement. Ce type de stockage peut
être source d'erreurs car la signature ne figure pas dans le registre. Pour résoudre ce problème, vous pouvez modifier ou supprimer le fichier de configuration. Sur Linux®, la configuration est sauvegardée sur /etc/containers/registries.d/default.yaml
.
Sous macOS, le fichier de configuration est sauvegardé dans /usr/local/etc/containers/registries.d/default.yaml
. Sous macOS, lorsque Skopeo est installé à l'aide du gestionnaire de packages Homebrew, le fichier de configuration peut se trouver dans /opt/homebrew/Cellar/etc/containers/registries.d/default.yaml
for Apple silicon ou dans /usr/local/Cellar/etc/containers/registries.d/default.yaml
for Intel.
Utiliser Podman pour signer des images
Vous pouvez utiliser Podman pour signer des images. Pour plus d'informations, voir Podman.
Signature d'images à l'aide de l'interface de ligne de commande Red Hat OpenShift
Vous pouvez signer vos images à l'aide de l'interface de ligne de commande Red Hat OpenShift. Pour plus d'informations, voir Red Hat OpenShift CLI. L'interface de ligne de commande Red Hat® OpenShift® utilise la commande oc
.