View a markdown version of this page

Firma de metadatos de repositorios en AL2023 - Amazon Linux 2023

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Firma de metadatos de repositorios en AL2023

A partir del lanzamiento2023.11.20260406, los repositorios del AL2023 incluyen firmas criptográficas para los metadatos del repositorio. Cada repomd.xml archivo del repositorio va acompañado de un archivo de firma GPG independiente (repomd.xml.asc) que se puede utilizar para comprobar la autenticidad e integridad de los metadatos del repositorio antes de descargar los paquetes.

Esta firma se suma a la firma del paquete RPM existente (gpgcheck), que verifica los paquetes individuales. La firma de los metadatos del repositorio verifica los metadatos que describen el contenido del repositorio, como la lista de paquetes disponibles y sus sumas de verificación.

Package Signing protege cada paquete. Por lo demás, se confía en el índice de metadatos que enumera esos paquetes basándose únicamente en el TLS y las sumas de verificación. Sin una firma en el índice, un espejo o una ruta de transporte comprometida podrían mostrar metadatos modificados que oculten o bloqueen las actualizaciones de seguridad. La firma de los metadatos del repositorio cierra este vacío y no depende de la confianza en el espejo o en el transporte.

Cómo funciona la firma de metadatos del repositorio

Cuando se publican los repositorios AL2023, los metadatos del repositorio (repomd.xml) se firman con una AWS clave KMS. La firma separada resultante (repomd.xml.asc) se coloca junto a los metadatos en el repositorio.

Cuando lo habilitas repo_gpgcheck en la configuración de tu repositorio, DNF verifica la repomd.xml.asc firma con la clave pública GPG antes de usar los metadatos del repositorio. Si la verificación falla, DNF rechaza los metadatos y no ejecuta las operaciones de empaquetado desde ese repositorio.

La primera vez DNF que verifica los metadatos de un repositorio, se le pide que importe la clave de firma de ese repositorio a un conjunto de claves por repositorio. El valor predeterminado de esta solicitud es. No Si lo rechaza, DNF omite el repositorio. Para obtener más información al respectorepo_gpgcheck, consulte la Referencia DNF de configuración.

Se trata de la misma clave que ya se utilizaba para la verificación del paquete, pero la DNF guarda en un conjunto de claves independiente para comprobar los metadatos. Se le solicitará que la confirme aunque la clave ya esté en el disco. Este es el DNF comportamiento esperado.

Los siguientes repositorios del AL2023 incluyen metadatos firmados:

  • Repositorio principal () amazonlinux

  • Repositorio Kernel Livepatch () kernel-livepatch

  • Repositorio NVIDIA () amazonlinux-nvidia

  • Paquetes complementarios para el repositorio de Amazon Linux (amazonlinux-spal)

Diferencia entre gpgcheck y repo_gpgcheck

Opción ¿Qué verifica Por defecto en AL2023
gpgcheck=1 Verifica la firma GPG de los paquetes RPM individuales antes de la instalación. Habilitado
repo_gpgcheck=1 Verifica la firma GPG de los metadatos del repositorio (repomd.xml) antes de usarlo. Está deshabilitado de forma predeterminada.

Te recomendamos que actives ambas gpgcheck yrepo_gpgcheck, después de confirmar que tu automatización está lista. Esto verifica tanto los metadatos del repositorio como los paquetes individuales antes de usarlos. Antes de activarlorepo_gpgcheck, consulteUtilice la verificación de metadatos del repositorio en la automatización.

Habilitar la verificación de metadatos del repositorio

Puede habilitar la verificación de los metadatos de los repositorios individuales actualizando sus archivos de configuración.

importante

La verificación de firmas de metadatos del repositorio no está habilitada de forma predeterminada. Permanece desactivada hasta que la cambies. Antes de activarla, confirma que todos los DNF comandos desatendidos de la automatización aprueban la -y opción. Para obtener más información, consulte Utilice la verificación de metadatos del repositorio en la automatización.

Actívala para un repositorio específico

Los archivos de configuración del repositorio AL2023 están configurados de /etc/yum.repos.d/ forma repo_gpgcheck=0 predeterminada. Para habilitar la verificación de los metadatos del repositorio, cambie este valor a 1 en la configuración del repositorio. Por ejemplo, para habilitarlo en el repositorio principal:

[amazonlinux] name=Amazon Linux 2023 repository ... gpgcheck=1 repo_gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023

Inhabilite la verificación de metadatos del repositorio

Para volver al comportamiento anterior, configúrelo repo_gpgcheck=0 en el archivo de configuración del repositorio. La siguiente actualización de los metadatos se realiza correctamente sin verificación.

[ec2-user ~]$ sudo sed -i 's/^repo_gpgcheck=1/repo_gpgcheck=0/' /etc/yum.repos.d/amazonlinux.repo [ec2-user ~]$ sudo dnf -y makecache

Verificar que la firma de metadatos del repositorio funcione

Tras habilitarlarepo_gpgcheck=1, puedes comprobar que la verificación de los metadatos funciona borrando la DNF caché y actualizando los metadatos:

[ec2-user ~]$ sudo dnf clean metadata [ec2-user ~]$ sudo dnf makecache

La primera vez DNF que verifica los metadatos de un repositorio, se te pide que importes la clave de firma de ese repositorio. Escriba y para confirmar. Una vez importada la clave, DNF crea la caché de metadatos sin errores. Verá una salida similar a la siguiente:

Amazon Linux 2023 repository 1.7 MB/s | 1.8 kB 00:00 Importing GPG key 0xD832C631: Userid : "Amazon Linux <amazon-linux@amazon.com>" Fingerprint: B21C 50FA 44A9 9720 EAA7 2F7F E951 904A D832 C631 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023 Is this ok [y/N]: y Amazon Linux 2023 repository 18 MB/s | 55 MB 00:03 Metadata cache created.

El valor predeterminado de la solicitud de importación es. No Si lo rechaza, DNF omite el repositorio y los informes aparecen Ignoring repositories en la salida. Si la verificación falla, DNF informa de un error de firma GPG y no crea la memoria caché.

Para ejecuciones desatendidas, consulte. Utilice la verificación de metadatos del repositorio en la automatización

Utilice la verificación de metadatos del repositorio en la automatización

nota

La solicitud de importación de claves está predeterminada en. No Una DNF ejecución desatendida no puede responder a la solicitud, por lo que rechaza la importación y omite el repositorio. Como se activa el AL2023skip_if_unavailable=True, el comando sigue emitiéndose con el estado. 0 Como resultado, la automatización informa que se ha realizado correctamente mientras que el host no recibe paquetes ni actualizaciones. La señal de ello está Ignoring repositories en el resultado.

Para evitarlo, transfiera la -y opción a todos los DNF comandos desatendidos que actualicen los metadatos, incluidos los trabajos de integración continua, la creación de imágenes y contenedorescloud-init, la administración de la configuración y los trabajos cron.

[ec2-user ~]$ sudo dnf -y makecache [ec2-user ~]$ sudo dnf -y check-update [ec2-user ~]$ sudo dnf -y upgrade

Comandos que actualizan los metadatos necesarios. -y Los comandos que leen solo la caché local o la base de datos RPM local, o que utilizan -C esta opción, no actualizan los metadatos ni solicitan información. Puede consultar la lista completa e Comandos que actualizan los metadatos del repositorio.

Mantén -y tu automatización de forma permanente. La clave se importa una vez por URL de repositorio, no una vez por host. AL2023 crea la URL de cada repositorio a partir de la versión bloqueada (releasever) y la AWS región, de modo que una actualización de la versión del sistema operativo o un cambio de región se convierte en una nueva URL y se vuelve a preguntar. La clave de firma no cambia; solo cambia la ubicación del conjunto de claves. No preinsertes ni pregrabes la clave como una solución de una sola vez, ya que la próxima actualización de la versión o región utilizará un nuevo llavero y volverá a solicitarlo.

Al ejecutar, se dnf clean all borran los metadatos en caché, pero no se elimina la clave importada de la misma versión. No vuelve a activar el mensaje.

Las compilaciones de imágenes de contenedores requieren una atención especial. Cada RUN dnf paso de la creación de una imagen se realiza sin supervisión y el llavero forma parte del sistema de archivos de la imagen, por lo que comienza vacío en cada imagen nueva. El mensaje aparece durante la compilación, independientemente de lo que ya hayan importado los hosts en ejecución. -yTransfiera las compilaciones de imágenes.

nota

Si conduce DNF como una biblioteca de Python (import dnf), la solicitud no se aplica. La biblioteca importa la clave sin solicitarla, por lo que los metadatos se cargan sin -y ella.

Comandos que actualizan los metadatos del repositorio

Cualquier comando que descargue o actualice los metadatos del repositorio activa la importación de claves y la solicitud. Los comandos que leen solo la caché local o la base de datos RPM local no lo hacen. Las opciones cambian el resultado: por ejemplo, -v hacen que repolist fetch sea info local, -C o --cacheonly evitan la búsqueda y --refresh la fuerzan. --installed list En caso de duda, pasa. -y

Comando Actualiza los metadatos
dnf makecache
dnf check-update
dnf upgrade, dnf update
dnf upgrade-minimal
dnf distro-sync
dnf install
dnf reinstall
dnf downgrade
dnf autoremove
dnf swap
dnf list(predeterminado o--available)
dnf info(predeterminado o--available)
dnf search
dnf provides
dnf repoquery
dnf repoinfo
dnf deplist
dnf repository-packages
dnf updateinfo
dnf group(lista, información, instalación)
dnf module(lista, información)
dnf shell(si sus subcomandos se recuperan)
dnf builddep
dnf changelog
dnf debuginfo-install
dnf download
dnf repoclosure
dnf repograph
dnf reposync
dnf debug-dump
dnf repolist -v(detallado)
dnf repolist(simple o) --allNo
dnf list --installed, dnf info --installedNo
dnf remove, dnf eraseNo
dnf markNo
dnf historyNo
dnf checkNo
dnf cleanNo
dnf config-managerNo
dnf needs-restartingNo
dnf aliasNo
dnf helpNo
dnf repomanageNo
dnf repodiffNo (errores a menos que se nombren dos repositorios)
dnf coprNo
dnf groups-managerNo
dnf playgroundNo
dnf debug-restoreNo (actúa sobre un basurero guardado)
Cualquier comando con -C o --cacheonlyNo

Un repositorio omitido de esta manera se indica como Ignoring repositories en el resultado, pero la mayoría de estos comandos siguen cerrándose con el estado 0 porque se establece skip_if_unavailable=True AL2023. No confíe únicamente en el código de salida. Pase -y para que la importación de la clave se realice correctamente.

Detecta un repositorio omitido

El código de salida por sí solo no confirma que la verificación se haya realizado correctamente. Se cierra un repositorio omitido y la clave de firma permanece intacta una vez que se importa en cualquier ejecución, por lo que se puede realizar una comprobación posterior mientras que un paso anterior sigue fallando. 0 En su lugar, utilice estas dos comprobaciones:

  • Audite su automatización. Confirme que se aprueban todos los comandos de obtención de metadatosDNF. -y Esto es lo que te permite trabajar en la próxima URL nueva del repositorio.

  • Compruebe la salida paraIgnoring repositories. El siguiente comando produce un error cuando se omite el repositorio, lo que se puede utilizar para fallar en una canalización:

[ec2-user ~]$ sudo dnf makecache 2>&1 | grep -q "Ignoring repositories" && { echo "repo skipped"; exit 1; }

Versiones ancladas

Si anclas releasever (con --releasever/etc/dnf/vars/releasever, odnf.conf) a una versión publicada anteriormente2023.11.20260406, esa versión no tendrá un archivo de firmas y repo_gpgcheck=1 no podrá actualizar el repositorio:

Error: Failed to download metadata for repo 'amazonlinux': GPG verification is enabled, but GPG signature is not available...

Una versión anclada no recibe actualizaciones más allá de esa versión. Si la anclas, la anclas a una versión 2023.11.20260406 o posterior, o a un conjuntorepo_gpgcheck=0.

Claves públicas GPG para los repositorios AL2023

Las claves públicas GPG utilizadas para la verificación de los metadatos del repositorio se instalan mediante los RPM de configuración del repositorio correspondientes. /etc/pki/rpm-gpg/ En la siguiente tabla se enumeran las claves públicas utilizadas por cada repositorio.

Repository Clave de firma de paquetes Clave de firma de Repodata Distribuido en
Núcleo (amazonlinux) RPM-GPG-KEY-amazon-linux-2023 RPM-GPG-KEY-amazon-linux-2023 system-release
Kernel Livepatch () kernel-livepatch RPM-GPG-KEY-amazon-linux-2023 RPM-GPG-KEY-amazon-linux-2023 system-release
NVIDIA () amazonlinux-nvidia RPM-GPG-KEY-NVIDIA-D42D0685 RPM-GPG-KEY-amazon-linux-2023-nvidia nvidia-release
SPAL () amazonlinux-spal RPM-GPG-KEY-amazonlinux-spal RPM-GPG-KEY-amazonlinux-spal spal-release

Estas claves se instalan automáticamente al instalar el RPM de configuración del repositorio correspondiente.