UEFI Secure Boot no AL2023 - Amazon Linux 2023

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

UEFI Secure Boot no AL2023

O AL2023 oferece suporte ao UEFI Secure Boot a partir do lançamento 2023.1. Você deve usar o AL2023 com instâncias do Amazon EC2 que oferecem suporte a UEFI e UEFI Secure Boot. Para obter mais informações, consulte Requisitos para executar uma instância do EC2 no modo de inicialização da UEFI no Guia do usuário do Amazon EC2.

As instâncias do AL2023 com UEFI Secure Boot habilitado aceitam apenas códigos no nível do kernel, incluindo o kernel do Linux e módulos, que são assinados por Amazon, para que você possa garantir que sua instância execute apenas códigos no nível do kernel assinados por AWS.

Para obter mais informações sobre instâncias do Amazon EC2 e UEFI Secure Boot, consulte UEFI Secure Boot para instâncias do Amazon EC2 no Guia do usuário do Amazon EC2.

Pré-requisitos

Habilitar UEFI Secure Boot no AL2023

As AMIs padrão do AL2023 incorporam um bootloader e um kernel assinados por nossas chaves. Você pode ativar o UEFI Secure Boot inscrevendo instâncias existentes ou criando AMIs com o UEFI Secure Boot pré-ativado registrando uma imagem de um snapshot. O UEFI Secure Boot não está habilitado por padrão nas AMIs padrão do AL2023.

O modo de inicialização das AMIs AL2023 é definido para uefi-preferred que garanta que as instâncias executadas com essas AMIs usem o firmware UEFI, se o tipo de instância for compatível com UEFI. Se o tipo de instância não for compatível com UEFI, a instância será iniciada com firmware de BIOS antigo. Quando uma instância é executada no modo BIOS antigo, o UEFI Secure Boot não é aplicado.

Para obter mais informações sobre os modos de inicialização AMI em instâncias Amazon EC2, consulte Comportamento de execução da instância com modos de inicialização do Amazon EC2 no Guia do usuário do Amazon EC2.

Inscrição de uma instância existente

Para registrar uma instância existente, preencha as variáveis específicas do firmware UEFI com um conjunto de chaves que permitem que o firmware verifique o carregador de inicialização e o carregador de inicialização verifique o kernel na próxima inicialização.

  1. O Amazon Linux fornece uma ferramenta para simplificar o processo de inscrição. Execute o comando a seguir para provisionar a instância com o conjunto necessário de chaves e certificados.

    sudo amazon-linux-sb enroll
  2. Execute o seguinte comando para reiniciar a instância do . Depois que a instância for reinicializada, o UEFI Secure Boot será ativado.

    sudo reboot
nota

Atualmente, as AMIs do Amazon Linux não oferecem suporte ao Nitro Trusted Platform Module (NitroTPM). Se você precisar do NitroTPM além do UEFI Secure Boot, use as informações na seção a seguir.

Registrar imagem do instantâneo

Ao registrar uma AMI a partir de um snapshot de um volume raiz do Amazon EBS usando a register-image API do Amazon EC2, você pode provisionar a AMI com um blob binário que contém o estado do armazenamento de variáveis UEFI. Ao fornecer o AL2023 UefiData, você ativa o UEFI Secure Boot e não precisa seguir as etapas na seção anterior.

Para obter mais informações sobre como criar e usar um blob binário, consulte Criar um blob binário contendo um armazenamento de variáveis pré-preenchido no Guia do usuário do Amazon EC2.

O AL2023 fornece um blob binário pré-criado que pode ser usado diretamente nas instâncias do Amazon EC2. O blob binário está localizado em /usr/share/amazon-linux-sb-keys/uefi.vars em uma instância em execução. Esse blob é fornecido pelo pacote amazon-linux-sb-keys RPM, que é instalado por padrão nas AMIs AL2023 a partir da versão 2023.1.

nota

Para garantir que você esteja usando a versão mais recente das chaves e revogações, use o blob da mesma versão do AL2023 que você usa para criar a AMI.

Ao registrar uma imagem, recomendamos usar o parâmetro BootMode da API RegisterImage definida como uefi. Isso permite que você ative o NitroTPM definindo o parâmetro TpmSupport como v2.0. Além disso, definir BootMode para uefi garantir que o UEFI Secure Boot esteja habilitado e não possa ser desativado acidentalmente ao mudar para um tipo de instância que não seja compatível com UEFI.

Para obter mais informações sobre o NitroTPM, consulte NitroTPM para instâncias do Amazon EC2 no Guia do usuário do Amazon EC2.

Atualizações de revogação

Talvez seja necessário que o Amazon Linux distribua uma nova versão do bootloader grub2 ou do kernel Linux assinado com chaves atualizadas. Nesse caso, talvez seja necessário revogar a chave antiga para evitar a chance de permitir que bugs exploráveis de versões anteriores do bootloader ignorem o processo de verificação do UEFI Secure Boot.

As atualizações de pacotes do grub2 ou kernel sempre atualizam automaticamente a lista de revogações no armazenamento de variáveis UEFI da instância em execução. Isso significa que, com o UEFI Secure Boot ativado, você não pode mais executar a versão antiga de um pacote depois de instalar uma atualização de segurança para o pacote.

Como funciona o UEFI Secure Boot no AL2023

Ao contrário de outras distribuições Linux, o Amazon Linux não fornece um componente adicional, chamado shim, para atuar como o bootloader de primeiro estágio. O calço geralmente é assinado com chaves da Microsoft. Por exemplo, em distribuições Linux com o shim, o shim carrega o bootloader grub2 que usa o próprio código do shim para verificar o kernel Linux. Além disso, o shim mantém seu próprio conjunto de chaves e revogações no banco de dados da Machine Owner Key (MOK) localizado no armazenamento de variáveis UEFI e controlado com a ferramenta mokutil.

O Amazon Linux não oferece nada. Como o proprietário da AMI controla as variáveis da UEFI, essa etapa intermediária não é necessária e afetaria negativamente os tempos de lançamento e inicialização. Além disso, optamos por não incluir a confiança em nenhuma chave de fornecedor por padrão, para reduzir a chance de binários indesejados serem executados. Como sempre, os clientes podem incluir binários se quiserem fazer isso.

Com o Amazon Linux, o UEFI carrega e verifica diretamente nosso grub2 bootloader. O bootloader grub2 foi modificado para usar UEFI para verificar o kernel Linux após carregá-lo. Assim, o Kernel Linux é verificado usando os mesmos certificados armazenados na variável UEFI normal db (banco de dados de chaves autorizado) e testado com a mesma variável dbx (banco de dados de revogações) do bootloader e outros binários UEFI. Como fornecemos nossas próprias chaves PK e KEK, que controlam o acesso ao banco de dados db e ao banco de dados dbx, podemos distribuir atualizações e revogações assinadas conforme necessário, sem um intermediário como o shim.

Para obter mais informações sobre o UEFI Secure Boot, consulte Como o UEFI Secure Boot funciona com instâncias do Amazon EC2 no Guia do usuário do Amazon EC2.

Inscrevendo suas próprias chaves

Conforme documentado na seção anterior, o Amazon Linux não exige uma inicialização segura shim para UEFI no Amazon EC2. Ao ler a documentação de outras distribuições Linux, você pode encontrar documentação para gerenciar o banco de dados Machine Owner Key (MOK) usando mokutil, que não está presente no AL2023. Os ambientes shim e MOK contornam algumas limitações de registro de chaves no firmware UEFI que não são aplicáveis à forma como o Amazon EC2 implementa o UEFI Secure Boot. Com o Amazon EC2, existem mecanismos para manipular facilmente e diretamente as chaves no armazenamento de variáveis UEFI.

Se quiser inscrever suas próprias chaves, você pode manipular o armazenamento de variáveis em uma instância existente (consulte Adicionar chaves ao armazenamento de variáveis de dentro da instância) ou criar um blob binário pré-preenchido (consulte Criar um blob binário contendo um armazenamento de variáveis pré-preenchido).