Arranque seguro UEFI 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.

Arranque seguro UEFI en AL2023

AL2023 admite el arranque seguro UEFI a partir de la versión 2023.1. Debe usar AL2023 con instancias de Amazon EC2 que admitan UEFI y Arranque seguro UEFI. Para obtener más información, consulte Requisitos para lanzar una instancia de Amazon EC2 en modo de arranque UEFI en la Guía del usuario de Amazon EC2.

Las instancias de AL2023 con el arranque seguro UEFI activado solo aceptan códigos de nivel del kernel, incluidos el kernel y los módulos de Linux, firmados por Amazon, de modo que puede asegurarse de que su instancia solo ejecute códigos de nivel en kernel firmados por AWS.

Para obtener más información sobre las instancias de Amazon EC2 y el arranque seguro UEFI, consulte Arranque seguro UEFI en la Guía del usuario de Amazon EC2.

Requisitos previos

Habilitación de arranque seguro UEFI en AL2023

Las AMI estándar de AL2023 incorporan un gestor de arranque y un código kernel firmados con nuestras claves. Puede habilitar Arranque seguro UEFI inscribiendo las instancias existentes o creando las AMI con Arranque seguro UEFI previamente habilitado registrando una imagen a partir de una instantánea. Arranque seguro UEFI no está habilitado de forma predeterminada en las AMI estándar de AL2023.

El modo de arranque de las AMI de AL2023 está configurado como uefi-preferred para garantizar que las instancias lanzadas con estas AMI utilicen el firmware UEFI, si el tipo de instancia es compatible con la UEFI. Si el tipo de instancia no admite UEFI, la instancia se lanza con firmware de la BIOS anterior. Cuando una instancia se ejecuta en el modo BIOS anterior, no se aplica el Arranque seguro UEFI.

Para obtener más información sobre los modos de arranque de las AMI en instancias de Amazon EC2, consulte Comportamiento de inicialización de instancias con modos de arranque de Amazon EC2 en la Guía del usuario de Amazon EC2.

Inscripción de una instancia existente

Para inscribir una instancia existente, rellene las variables de firmware UEFI específicas con un conjunto de claves que permitan al firmware comprobar el cargador de arranque comprobar el kernel en el siguiente arranque.

  1. Amazon Linux proporciona una herramienta para simplificar el proceso de inscripción. Ejecute el siguiente comando para aprovisionar la instancia con el conjunto de claves y certificados necesario.

    sudo amazon-linux-sb enroll
  2. Ejecute el siguiente comando para volver a arrancar la instancia . Una vez reiniciada la instancia, se habilitará Arranque seguro UEFI.

    sudo reboot
nota

Las AMI de Amazon Linux actualmente no son compatibles con Nitro Trusted Platform Module (NitroTPM). Si necesita NitroTPM además de Arranque seguro UEFI, utilice la información de la siguiente sección.

Registrar imagen de una instantánea

Al registrar una AMI a partir de una instantánea de un volumen raíz de Amazon EBS mediante la API register-image de Amazon EC2, puede aprovisionar la AMI con un blob binario que contenga el estado del almacén de variables UEFI. Al proporcionar UefiData de AL2023, habilita el Arranque seguro UEFI y no necesita seguir los pasos de la sección anterior.

Para obtener más información sobre la creación y el uso de un blob binario, consulte Crear un blob binario que contenga un almacén de variables precargado en la Guía del usuario de Amazon EC2.

AL2023 proporciona un blob binario prediseñado que se puede utilizar directamente en las instancias de Amazon EC2. El blob binario se encuentra en /usr/share/amazon-linux-sb-keys/uefi.vars en una instancia en ejecución. Este blob lo proporciona el paquete RPM amazon-linux-sb-keys, que se instala de forma predeterminada en las AMI de AL2023 a partir de la versión 2023.1.

nota

Para asegurarse de que utiliza la última versión de claves y revocaciones, utilice el blob de la misma versión de AL2023 que utilizó para crear la AMI.

Al registrar una imagen, le recomendamos que utilice el parámetro BootMode de la API RegisterImage establecido en uefi. Esto le permite activar NitroTPM configurando el parámetro TpmSupport en v2.0. Además, al configurar BootMode en uefi garantiza que el Arranque seguro UEFI esté habilitado y no se pueda deshabilitar de forma accidental al cambiar a un tipo de instancia que no sea compatible con UEFI.

Para obtener más información sobre NitroTPM, consulte Instancias de NitroTPM para Amazon EC2 en la Guía del usuario de Amazon EC2.

Actualizaciones de revocación

Puede ser necesario que Amazon Linux distribuya una nueva versión del cargador de arranque grub2 o del kernel de Linux firmada con las claves actualizadas. En ese caso, es posible que sea necesario revocar la clave anterior para evitar que los errores explotables de versiones anteriores del cargador de arranque pasen por alto el proceso de verificación de Arranque seguro UEFI.

Las actualizaciones de paquetes a los paquetes grub2 o kernel siempre actualizan automáticamente la lista de revocaciones en el almacén de variables UEFI de la instancia en ejecución. Esto significa que, con el Arranque seguro UEFI habilitado, ya no se puede ejecutar la versión anterior de un paquete después de instalar una actualización de seguridad para el paquete.

Funcionamiento del arranque seguro UEFI en AL2023

A diferencia de otras distribuciones de Linux, Amazon Linux no proporciona un componente adicional, denominado shim, que sirva de cargador de arranque de primera fase. El shim generalmente está firmado con claves de Microsoft. Por ejemplo, en las distribuciones de Linux con el shim, el shim carga el cargador de arranque grub2, que utiliza el propio código del shim para verificar el kernel de Linux. Además, el shim mantiene su propio conjunto de claves y revocaciones en la base de datos de claves del propietario de la máquina (MOK), ubicada en el almacén de variables UEFI y controlada con la herramienta mokutil.

Amazon Linux no proporciona un shim. Como el propietario de la AMI controla las variables UEFI, este paso intermedio no es necesario y afectaría negativamente a los tiempos de inicio y arranque. Además, optamos por no confiar en las claves de ningún proveedor de forma predeterminada, para reducir la posibilidad de que se puedan ejecutar archivos binarios no deseados. Como siempre, los clientes pueden incluir archivos binarios si así lo desean.

Con Amazon Linux, UEFI carga y verifica directamente nuestro cargador de arranque grub2. El cargador de arranque grub2 se modificó para usar UEFI para verificar el kernel de Linux después de cargarlo. Por lo tanto, el kernel de Linux se verifica con los mismos certificados almacenados en la variable db UEFI normal (base de datos de claves autorizadas) y se comprueba con la misma variable dbx (base de datos de revocaciones) que el cargador de arranque y otros archivos binarios de UEFI. Al proporcionar nuestras propias claves PK y KEK, que controlan el acceso a la base de datos db y a la base de datos dbx, podemos distribuir las actualizaciones y revocaciones firmadas según sea necesario sin un intermediario como el shim.

Para obtener más información sobre el arranque seguro UEFI, consulte Funcionamiento del arranque seguro UEFI con instancias de Amazon EC2 en la Guía del usuario de Amazon EC2.

Inscribir sus propias claves

Como se ha documentado en la sección anterior, Amazon Linux no requiere un shim para el Arranque seguro UEFI en Amazon EC2. Al leer la documentación de otras distribuciones de Linux, puede encontrar información documentada sobre cómo administrar la base de datos de claves de propietario de la máquina (MOK) mediante mokutil, que no está presente en AL2023. Los entornos shim y MOK solucionan algunas limitaciones de la inscripción de claves en el firmware UEFI que no se aplican a la forma en que Amazon EC2 implementa el Arranque seguro UEFI. Con Amazon EC2, existen mecanismos para manipular directamente y con facilidad las claves del almacén de variables UEFI.

Si desea inscribir sus propias claves, puede hacerlo manipulando el almacén de variables dentro de una instancia existente (consulte Agregar claves al almacén de variables desde la instancia) o creando un blob binario precargado (consulte Crear un blob binario que contenga un almacén de variables precargado).