2.4. Signatures d'images de conteneurs
Red Hat fournit des signatures pour les images dans les registres de conteneurs Red Hat. Ces signatures peuvent être automatiquement vérifiées lors de leur transfert vers les clusters d'OpenShift Container Platform 4 à l'aide de l'opérateur de configuration de machine (MCO).
Quay.io sert la plupart des images qui composent OpenShift Container Platform, et seule l'image release est signée. Les images release font référence aux images approuvées d'OpenShift Container Platform, ce qui offre un certain degré de protection contre les attaques de la chaîne d'approvisionnement. Cependant, certaines extensions d'OpenShift Container Platform, telles que la journalisation, la surveillance et le maillage de services, sont livrées en tant qu'opérateurs à partir de l'Operator Lifecycle Manager (OLM). Ces images sont livrées à partir du registre d'images de conteneurs Red Hat Ecosystem Catalog.
Pour vérifier l'intégrité de ces images entre les registres Red Hat et votre infrastructure, activez la vérification des signatures.
2.4.1. Activation de la vérification des signatures pour les registres de conteneurs Red Hat Copier lienLien copié sur presse-papiers!
L'activation de la validation des signatures de conteneurs pour les registres de conteneurs Red Hat nécessite l'écriture d'un fichier de politique de vérification des signatures spécifiant les clés pour vérifier les images à partir de ces registres. Pour les nœuds RHEL8, les registres sont déjà définis par défaut dans /etc/containers/registries.d
.
Procédure
Créer un fichier de configuration Butane,
51-worker-rh-registry-trust.bu
, contenant la configuration nécessaire pour les nœuds de travail.NoteSee "Creating machine configs with Butane" for information about Butane.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utiliser Butane pour générer un fichier YAML de configuration de la machine,
51-worker-rh-registry-trust.yaml
, contenant le fichier à écrire sur le disque des nœuds de travail :butane 51-worker-rh-registry-trust.bu -o 51-worker-rh-registry-trust.yaml
$ butane 51-worker-rh-registry-trust.bu -o 51-worker-rh-registry-trust.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration de la machine créée :
oc apply -f 51-worker-rh-registry-trust.yaml
$ oc apply -f 51-worker-rh-registry-trust.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifier que le pool de configuration de la machine de travail a été déployé avec la nouvelle configuration de la machine :
Vérifiez que la nouvelle configuration de la machine a été créée :
oc get mc
$ oc get mc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifier que le pool de configuration de la machine travailleuse est mis à jour avec la nouvelle configuration de la machine :
oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-af1e7ff78da0a9c851bab4be2777773b True False False 3 3 3 0 30m worker rendered-worker-be3b3bce4f4aa52a62902304bac9da3c False True False 3 0 0 0 30m
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-af1e7ff78da0a9c851bab4be2777773b True False False 3 3 3 0 30m worker rendered-worker-be3b3bce4f4aa52a62902304bac9da3c False True False 3 0 0 0 30m
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Lorsque le champ
UPDATING
estTrue
, le pool de configuration de la machine est mis à jour avec la nouvelle configuration de la machine. Lorsque le champ devientFalse
, le pool de configuration de la machine du travailleur est passé à la nouvelle configuration de la machine.
Si votre cluster utilise des nœuds de travail RHEL7, lorsque le pool de configuration de la machine de travail est mis à jour, créez des fichiers YAML sur ces nœuds dans le répertoire
/etc/containers/registries.d
, qui spécifient l'emplacement des signatures détachées pour un serveur de registre donné. L'exemple suivant ne fonctionne que pour les images hébergées dansregistry.access.redhat.com
etregistry.redhat.io
.Démarrez une session de débogage sur chaque nœud de travail RHEL7 :
oc debug node/<node_name>
oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Changez votre répertoire racine en
/host
:chroot /host
sh-4.2# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un fichier
/etc/containers/registries.d/registry.redhat.io.yaml
contenant les éléments suivants :docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un fichier
/etc/containers/registries.d/registry.access.redhat.com.yaml
contenant les éléments suivants :docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Quitter la session de débogage.
2.4.2. Vérification de la configuration de la vérification de la signature Copier lienLien copié sur presse-papiers!
Après avoir appliqué les configurations de machine au cluster, le Machine Config Controller détecte le nouvel objet MachineConfig
et génère une nouvelle version de rendered-worker-<hash>
.
Conditions préalables
- Vous avez activé la vérification des signatures en utilisant un fichier de configuration de la machine.
Procédure
Sur la ligne de commande, exécutez la commande suivante pour afficher des informations sur un travailleur donné :
oc describe machineconfigpool/worker
$ oc describe machineconfigpool/worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de résultat de la surveillance initiale des travailleurs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exécutez à nouveau la commande
oc describe
:oc describe machineconfigpool/worker
$ oc describe machineconfigpool/worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie après la mise à jour du travailleur
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLe paramètre
Observed Generation
indique un nombre accru basé sur la génération de la configuration produite par le contrôleur. Ce contrôleur met à jour cette valeur même s'il ne parvient pas à traiter la spécification et à générer une révision. La valeurConfiguration Source
renvoie à la configuration51-worker-rh-registry-trust
.Confirmez l'existence du fichier
policy.json
à l'aide de la commande suivante :oc debug node/<node> -- chroot /host cat /etc/containers/policy.json
$ oc debug node/<node> -- chroot /host cat /etc/containers/policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirmez l'existence du fichier
registry.redhat.io.yaml
à l'aide de la commande suivante :oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.redhat.io.yaml
$ oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.redhat.io.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirmez l'existence du fichier
registry.access.redhat.com.yaml
à l'aide de la commande suivante :oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.access.redhat.com.yaml
$ oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.access.redhat.com.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow