2.8. Definición de la política de verificación de la firma de la imagen
Red Hat entrega firmas para las imágenes en el Registro de Contenedores de Red Hat. Cuando se ejecuta como root, /etc/containers/policy.json
, y los archivos YAML en el directorio /etc/containers/registries.d/
definen la política de verificación de firmas. La política de confianza en /etc/containers/policy.json
describe un ámbito de registro (registro y o repositorio) para la confianza.
Por defecto, la herramienta del contenedor lee la política de $HOME/.config/containers/policy.json
, si existe, de lo contrario de /etc/containers/policy.json
.
La confianza se define mediante tres parámetros:
- El nombre registry o registry/repository
- Una o varias claves GPG públicas
- Un servidor de firmas
Red Hat sirve firmas desde estos URIs:
https://access.redhat.com/webassets/docker/content/sigstore https://registry.redhat.io/containers/sigstore
Procedimiento
Muestra el archivo
/etc/containers/policy.json
:# cat /etc/containers/policy.json { "default": [ { "type": "insecureAcceptAnything" } ], "transports": { "docker-daemon": { "": [{"type":"insecureAcceptAnything"}] } } }
Para actualizar un ámbito de confianza existente para los registros registry.access.redhat.com y registry.redhat.io, introduzca
# podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release registry.access.redhat.com # podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release registry.redhat.io
Para verificar la configuración de la política de confianza, visualice el archivo
/etc/containers/policy.json
:"docker": { "registry.access.redhat.com": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release" } ], "registry.redhat.io": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release" } ] },
Puede ver que se han añadido las secciones
"registry.access.redhat.com"
y"registry.redhat.io"
.Cree el archivo
/etc/containers/registries.d/registry.access.redhat.com.yaml
para identificar el almacén de firmas para las imágenes de contenedores desde el registro de registry.access.redhat.com:docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Cree el archivo
etc/containers/registries.d/registry.redhat.io.yaml
con el siguiente contenido:docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Para mostrar la configuración de la confianza, introduzca:
# podman image trust show default accept registry.access.redhat.com signedBy security@redhat.com, security@redhat.com https://access.redhat.com/webassets/docker/content/sigstore registry.redhat.io signedBy security@redhat.com, security@redhat.com https://registry.redhat.io/containers/sigstore insecureAcceptAnything
Para rechazar la política de confianza por defecto, escriba:
# podman image trust set -t reject default
Para verificar la configuración de la política de confianza, muestre la página
/etc/containers/policy.json
:# cat /etc/containers/policy.json { "default": [ { "type": "reject" } ... }
Puede ver que la sección
"default"
ha cambiado de"insecureAcceptAnything"
a"reject"
.Intente extraer la imagen mínima de Red Hat Universal Base Image 8 (
ubi8-minimal
) del registro de registry.access.redhat.com:# podman --log-level=debug pull registry.access.redhat.com/ubi8-minimal .... DEBU[0000] Using registries.d directory /etc/containers/registries.d for sigstore configuration DEBU[0000] Using "docker" namespace registry.access.redhat.com DEBU[0000] Using https://access.redhat.com/webassets/docker/content/sigstore ...
Verá que la dirección de almacenamiento de la firma
access.redhat.com/webassets/docker/content/sigstore
coincide con la dirección especificada en/etc/containers/registries.d/registry.access.redhat.com.yaml
.Inicie sesión en el registro de registry.redhat.io:
# podman login registry.redhat.io Username: username Password: *********** Login Succeeded!
Intente extraer la imagen
support-tools
del registro de registry.redhat.io:# podman --log-level=debug pull registry.redhat.io/rhel8/support-tools ... DEBU[0000] Using registries.d directory /etc/containers/registries.d for sigstore configuration DEBU[0000] Using "docker" namespace registry.redhat.io DEBU[0000] Using https://registry.redhat.io/containers/sigstore ...
Puede ver que la dirección de almacenamiento de la firma
registry.redhat.io/containers/sigstore
coincide con la dirección especificada en/etc/containers/registries.d/registry.redhat.io.yaml
.Para listar todas las imágenes que se han extraído de su sistema local, introduzca:
# podman images REPOSITORY TAG IMAGE ID CREATED SIZE registry.redhat.io/rhel8/support-tools latest 5ef2aab09451 13 days ago 254 MB registry.access.redhat.com/ubi8-minimal latest 86c870596572 13 days ago 146 MB
Recursos adicionales
-
Para más información sobre el
podman image trust
, escribaman podman-image-trust
. - Para más información sobre la verificación de imágenes de contenedores, véase el artículo Verificación de la firma de imágenes para Red Hat Container Registry.