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 ()
amazonlinuxRepositorio Kernel Livepatch ()
kernel-livepatchRepositorio NVIDIA ()
amazonlinux-nvidiaPaquetes complementarios para el repositorio de Amazon Linux (
amazonlinux-spal)
Diferencia entre gpgcheck y repo_gpgcheck
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 | Sí |
dnf check-update | Sí |
dnf upgrade, dnf update | Sí |
dnf upgrade-minimal | Sí |
dnf distro-sync | Sí |
dnf install | Sí |
dnf reinstall | Sí |
dnf downgrade | Sí |
dnf autoremove | Sí |
dnf swap | Sí |
dnf list(predeterminado o--available) | Sí |
dnf info(predeterminado o--available) | Sí |
dnf search | Sí |
dnf provides | Sí |
dnf repoquery | Sí |
dnf repoinfo | Sí |
dnf deplist | Sí |
dnf repository-packages | Sí |
dnf updateinfo | Sí |
dnf group(lista, información, instalación) | Sí |
dnf module(lista, información) | Sí |
dnf shell(si sus subcomandos se recuperan) | Sí |
dnf builddep | Sí |
dnf changelog | Sí |
dnf debuginfo-install | Sí |
dnf download | Sí |
dnf repoclosure | Sí |
dnf repograph | Sí |
dnf reposync | Sí |
dnf debug-dump | Sí |
dnf repolist -v(detallado) | Sí |
dnf repolist(simple o) --all | No |
dnf list --installed, dnf info --installed | No |
dnf remove, dnf erase | No |
dnf mark | No |
dnf history | No |
dnf check | No |
dnf clean | No |
dnf config-manager | No |
dnf needs-restarting | No |
dnf alias | No |
dnf help | No |
dnf repomanage | No |
dnf repodiff | No (errores a menos que se nombren dos repositorios) |
dnf copr | No |
dnf groups-manager | No |
dnf playground | No |
dnf debug-restore | No (actúa sobre un basurero guardado) |
Cualquier comando con -C o --cacheonly | No |
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.
-yEsto es lo que te permite trabajar en la próxima URL nueva del repositorio. -
Compruebe la salida para
Ignoring 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.