

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á.

# Segurança e compatibilidade no Amazon Linux 2023
<a name="security"></a>

**Importante**  
 Se você quiser denunciar uma vulnerabilidade ou tiver uma preocupação de segurança em relação a serviços em AWS nuvem ou projetos de código aberto, entre em contato com a AWS Segurança usando a [página Relatório de vulnerabilidades](https://aws.amazon.com/security/vulnerability-reporting/) 

A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de uma arquitetura de data center e rede criada para atender aos requisitos das organizações mais sensíveis à segurança.

A segurança é uma responsabilidade compartilhada entre você AWS e você. O [modelo de responsabilidade compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) descreve isso como segurança *da* nuvem e segurança *na* nuvem:
+ **Segurança da nuvem** — AWS é responsável por proteger a infraestrutura que executa AWS os serviços na AWS nuvem. AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia de nossa segurança como parte dos Programas de Conformidade Programas de [AWS](https://aws.amazon.com/compliance/programs/) de . Para saber mais sobre os programas de conformidade aplicáveis AL2023, consulte [AWS Serviços no escopo do programa de conformidade AWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Segurança na nuvem**: sua responsabilidade é determinada pelo serviço da AWS que você usa. Você também é responsável por outros fatores, inclusive a sensibilidade de seus dados, os requisitos da sua empresa, leis e regulamentos aplicáveis. 

**Topics**
+ [Consultorias de segurança do Amazon Linux para AL2023](alas.md)
+ [Listar recomendações aplicáveis](listing-applicable-advisories.md)
+ [Aplicar atualizações de segurança no local](security-inplace-update.md)
+ [Configurando modos do SELinux para o AL2023](selinux-modes.md)
+ [Habilitar o modo FIPS no AL2023](fips-mode.md)
+ [Habilitar o modo FIPS em um contêiner do AL2023](fips-mode-container.md)
+ [Trocar de provedor de OpenSSL FIPS no AL2023](fips-openssl-swap-provider.md)
+ [AL2023 Endurecimento do kernel](kernel-hardening.md)
+ [Login de metadados do repositório AL2023](repo-metadata-signing.md)
+ [Inicialização segura UEFI ativada AL2023](uefi-secure-boot.md)

# Consultorias de segurança do Amazon Linux para AL2023
<a name="alas"></a>

 Embora trabalhemos duro para tornar o Amazon Linux seguro, às vezes haverá problemas de segurança que precisam ser corrigidos. Uma *recomendação* é emitida quando uma correção está disponível. O principal local onde publicamos recomendações é o Amazon Linux Security Center (ALAS). Para obter informações, consulte o [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html). 

**Importante**  
 Se você quiser denunciar uma vulnerabilidade ou tiver uma preocupação de segurança em relação a serviços em AWS nuvem ou projetos de código aberto, entre em contato com a AWS Segurança usando a [página Relatório de vulnerabilidades](https://aws.amazon.com/security/vulnerability-reporting/) 

 As informações sobre os problemas e as atualizações relevantes que afetam AL2023 são publicadas pela equipe do Amazon Linux em vários locais. É comum que as ferramentas de segurança busquem informações dessas fontes primárias e apresentem os resultados para você. Dessa forma, talvez você não interaja diretamente com as fontes primárias que o Amazon Linux publica, mas sim com a interface fornecida pelas suas ferramentas preferidas, como o [Amazon Inspector](https://docs.aws.amazon.com/inspector/latest/user/what-is-inspector.html). 

## Anúncios do Amazon Linux Security Center
<a name="alas-announcements"></a>

 Os *anúncios* do Amazon Linux são fornecidos para itens que não se enquadram em uma recomendação. Esta seção contém anúncios sobre o próprio ALAS, junto com informações que não se enquadram em uma recomendação. Para saber mais, consulte [Amazon Linux Security Center (ALAS) Announcements](https://alas.aws.amazon.com/announcements.html). 

 Por exemplo, o item [2021-001 - Amazon Linux Hotpatch Announcement for Apache Log4j](https://alas.aws.amazon.com/announcements/2021-001.html) se encaixa em um anúncio, e não em uma recomendação. Nesse anúncio, o Amazon Linux adicionou um pacote para ajudar os clientes a mitigar um problema de segurança em software que não fazia parte do Amazon Linux. 

 O [Amazon Linux Security Center CVE Explorer](https://explore.alas.aws.amazon.com/) também foi anunciado nos anúncios do ALAS. Para obter mais informações, consulte [Novo site para CVEs](https://alas.aws.amazon.com/announcements/2023-001.html). 

## Perguntas frequentes do Amazon Linux Security Center
<a name="alas-faqs"></a>

 Para obter respostas a algumas perguntas frequentes sobre o ALAS e como o Amazon Linux avalia CVEs, consulte [Perguntas frequentes do Amazon Linux Security Center (ALAS)](https://alas.aws.amazon.com/faqs.html) (). FAQs 

## Recomendações do ALAS
<a name="alas-advisories"></a>

 Uma recomendação do Amazon Linux contém informações importantes e relevantes para os usuários do Amazon Linux, geralmente informações sobre atualizações de segurança. O [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) é onde os avisos podem ser vistos na web. As informações de recomendações também fazem parte dos metadados do repositório de pacotes RPM. 

## Recomendações e repositórios RPM
<a name="advisory-and-repos"></a>

 Um repositório de pacotes do Amazon Linux 2023 pode conter metadados que descrevem zero ou mais atualizações. O comando `dnf updateinfo` tem o nome do arquivo de metadados do repositório que contém essas informações, `updateinfo.xml`. Embora o comando tenha o nome `updateinfo` e o arquivo de metadados se refira a uma `update`, todos eles se referem a atualizações de pacotes que fazem parte de uma recomendação. 

 As recomendações do Amazon Linux são publicadas no site do [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html), junto com as informações presentes nos metadados do repositório RPM aos quais o gerenciador de pacotes `dnf` se refere. O site e os metadados do repositório são eventualmente consistentes, e pode haver inconsistências nas informações do site e nos metadados do repositório. Isso normalmente ocorre quando uma nova versão do AL2023 está em processo de lançamento. Há uma atualização de um Aviso após a AL2023 versão mais recente. 

 Embora seja comum que uma nova recomendação seja emitida junto com a atualização do pacote que resolve o problema, esse nem sempre é o caso. Uma recomendação pode ser criada para um novo problema que é tratado em pacotes já lançados. Um Aviso existente também pode ser atualizado com novos CVEs , que são abordados pela atualização existente. 

 O [Atualizações determinísticas por meio de repositórios versionados em AL2023](deterministic-upgrades.md) recurso do Amazon Linux 2023 significa que o repositório RPM de uma AL2023 versão específica contém um instantâneo dos metadados do repositório RPM a partir dessa versão. Isso *inclui* os metadados que descrevem as atualizações de segurança. O repositório RPM de uma AL2023 versão específica *não é atualizado* após o lançamento. Avisos de segurança novos ou atualizados *não estarão visíveis ao examinar uma versão mais antiga dos repositórios AL2023 RPM*. Consulte a [Listar recomendações aplicáveis](listing-applicable-advisories.md) seção para saber como usar o gerenciador de `dnf` pacotes para examinar a versão do `latest` repositório ou uma AL2023 versão específica. 

## Consultivo IDs
<a name="advisory-ids"></a>

 Cada recomendação é identificada por um `id`. Atualmente, é uma peculiaridade do Amazon Linux, onde o site do [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) listará um aviso como [ALAS-2024-581](https://alas.aws.amazon.com/AL2023/ALAS-2024-581.html), enquanto o gerenciador de `dnf` pacotes [listará esse aviso](listing-applicable-advisories.md) como tendo o ID de -2024-581. ALAS2023 Ao [Aplicar atualizações de segurança no local](security-inplace-update.md), o ID do gerenciador de pacotes precisa ser usado para se referir a uma recomendação específica. 

 Para o Amazon Linux, cada versão principal do sistema operacional tem seu próprio namespace de Advisory. IDs Não se deve fazer suposições quanto ao formato do Amazon Linux Advisory. IDs Historicamente, a Amazon Linux Advisory IDs seguiu o padrão de`NAMESPACE-YEAR-NUMBER`. O intervalo completo de valores possíveis para `NAMESPACE` não está definido, mas inclui `ALAS`, `ALASCORRETTO8`, `ALAS2023`, `ALAS2`, `ALASPYTHON3.8` e `ALASUNBOUND-1.17`. `YEAR` foi o ano em que a recomendação foi criada e `NUMBER` é um número inteiro exclusivo no namespace. 

 Embora o Advisory *normalmente IDs * seja sequencial e na ordem em que as atualizações sejam lançadas, há muitos motivos pelos quais esse não pode ser o caso, portanto, isso não deve ser assumido. 

 Trate o ID da recomendação como uma string opaca que é exclusiva para cada versão principal do Amazon Linux. 

 No Amazon Linux 2, cada Extra fica em um repositório RPM separado, e os metadados da recomendação ficam contidos somente no repositório ao qual são relevantes. Uma recomendação para um repositório *não se aplica* a outro repositório. No site do [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2.html), há uma lista de recomendações para cada versão principal do Amazon Linux, e ela não está separada em listas por repositório. 

 Como AL2023 não usa o mecanismo Extras para empacotar versões alternativas de pacotes, atualmente existem apenas dois repositórios RPM, cada um com recomendações, o repositório e o `core` repositório. `livepatch` O repositório `livepatch` é para [Aplicação de patches do kernel em tempo real no AL2023](live-patching.md). 

## Data de lançamento da recomendação e data de atualização da recomendação
<a name="advisory-dates"></a>

 A data de lançamento de recomendações do Amazon Linux indica quando a atualização de segurança foi disponibilizada ao público pela primeira vez no repositório RPM. As recomendações são publicadas no site do [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) assim que as correções são disponibilizadas para instalação por meio do repositório RPM. 

 A data de atualização da recomendação indica quando novas informações foram adicionadas a uma recomendação após sua última publicação. 

 Não deve haver nenhuma suposição entre o número da AL2023 versão (por exemplo, 2023.6.20241031) e a data de lançamento do comunicado dos avisos publicados junto com esse lançamento. 

## Tipos de recomendação
<a name="advisory-types"></a>

 Os metadados do repositório RPM oferecem suporte a recomendações de diferentes tipos. Embora o Amazon Linux tenha emitido quase universalmente apenas recomendações que são atualizações de segurança, não se deve presumir que esse seja sempre o caso. É possível que sejam emitidas recomendações para eventos como correções de bugs, aprimoramentos e novos pacotes, e a recomendação seja marcada como contendo esse tipo de atualização. 

## Gravidades de recomendações
<a name="advisory-severities"></a>

 Cada recomendação tem sua própria gravidade, pois cada problema é avaliado separadamente. Várias CVEs podem ser tratadas em uma única Consultoria, e cada CVE pode ter uma avaliação diferente, mas a Consultoria em si tem uma Severidade. Pode haver várias recomendações referentes a uma única atualização de pacote. Portanto, pode haver várias gravidades para uma atualização de pacote específica (uma por recomendação). 

 Em ordem decrescente de gravidade, o Amazon Linux usa Crítica, Importante, Moderada e Baixa para indicar a gravidade de uma recomendação. As recomendações do Amazon Linux também podem *não ter uma gravidade*, embora isso seja extremamente raro. 

 O Amazon Linux é uma das distribuições do Linux baseadas em RPM que usa o termo Moderada, enquanto outras distribuições do Linux baseadas em RPM usam o termo equivalente Média. O gerenciador de pacotes do Amazon Linux trata ambos os termos como equivalentes, e repositórios de pacotes de terceiros podem usar o termo Média. 

 As recomendações do Amazon Linux podem *mudar de gravidade* ao longo do tempo, à medida que se aprende mais sobre as questões relevantes abordadas na recomendação. 

 A severidade de um aviso *normalmente* rastreia a pontuação CVSS mais alta avaliada pelo Amazon Linux para aqueles CVEs referenciados pelo aviso. Pode haver casos em que isso não acontece. Um exemplo é quando há um problema resolvido para o qual não há uma CVE atribuída. 

 Consulte as [perguntas frequentes do ALAS](https://alas.aws.amazon.com/faqs.html) para obter mais informações sobre como o Amazon Linux usa as classificações de gravidade das recomendações. 

## Recomendações e pacotes
<a name="advisory-packages"></a>

 Pode haver muitas recomendações para um único pacote, e nem todos os pacotes terão uma recomendação publicada para eles. Uma versão específica do pacote pode ser referenciada em vários avisos, cada um com sua própria severidade e. CVEs 

 É possível que vários avisos para a mesma atualização de pacote sejam emitidos simultaneamente em uma nova AL2023 versão ou em rápida sucessão. 

 Como em outras distribuições do Linux, pode haver um ou vários pacotes binários diferentes criados com base no mesmo pacote de origem. Por exemplo, o [ALAS-2024-698](https://alas.aws.amazon.com/AL2023/ALAS-2024-698.html) é um aviso listado na seção [AL2023 do site do Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) como aplicável ao pacote. `mariadb105` Esse é o nome do pacote de *origem*, e a recomendação em si se refere aos pacotes *binários* junto com o pacote de origem. Nesse caso, mais de uma dúzia de pacotes binários são criados com base em um único pacote de origem do `mariadb105`. Embora seja extremamente comum haver um pacote binário com o mesmo nome do pacote do origem, isso nem sempre acontece. 

 Embora as recomendações do Amazon Linux normalmente listem todos os pacotes binários criados com base no pacote de origem atualizado, não se deve presumir que esse seja sempre o caso. O gerenciador de pacotes e o formato de metadados do repositório RPM permitem recomendações que listam um subconjunto dos pacotes binários atualizados. 

 Uma recomendação específica também pode se aplicar somente a uma arquitetura de CPU específica. Pode haver pacotes que não foram criados para todas as arquiteturas ou problemas que não afetam todas as arquiteturas. No caso em que um pacote está disponível em todas as arquiteturas, mas um problema se aplica somente a uma, o Amazon Linux normalmente não emite uma recomendação que faz referência a apenas a arquitetura afetada, embora não se deva presumir que esse seja sempre o caso. 

 Devido à natureza das dependências do pacote, é comum que uma recomendação faça referência a um pacote, mas a instalação dessa atualização exija outras atualizações de pacotes, incluindo pacotes não listados na recomendação. O gerenciador de pacotes `dnf` cuidará da instalação das dependências necessárias. 

## Avisos e CVEs
<a name="advisory-cves"></a>

 Um Aviso pode abordar zero ou mais CVEs, e pode haver vários Avisos referenciando o mesmo CVE. 

 Um exemplo de quando uma Consultoria pode fazer referência a zero CVEs é quando um CVE ainda não foi (ou nunca) foi atribuído ao problema. 

 Um exemplo de onde várias recomendações podem fazer referência à mesma CVE é quando a CVE se aplica a vários pacotes. Por exemplo, a [CVE-2024-21208](https://alas.aws.amazon.com/cve/html/CVE-2024-21208.html) se aplica ao Corretto 8, 11, 17 e 21. [https://alas.aws.amazon.com/AL2023/ALAS-2024-752.html](https://alas.aws.amazon.com/AL2023/ALAS-2024-752.html) Embora todos esses lançamentos do Corretto tenham a mesma lista de CVEs, isso não deve ser assumido. 

 Uma CVE específica pode ser avaliada de forma diferente para pacotes diferentes. Por exemplo, se uma CVE específica é referenciada em uma recomendação com uma gravidade Importante, é possível que outra recomendação seja emitida referenciando a mesma CVE com uma gravidade diferente. 

 Os metadados do repositório RPM permitem uma lista de referências para cada recomendação. Embora o Amazon Linux normalmente só faça referências CVEs, o formato de metadados permite outros tipos de referência. 

 Os metadados do repositório de pacotes RPM só se referirão CVEs com uma correção disponível. A [seção Explore do site do Amazon Linux Security Center](https://explore.alas.aws.amazon.com) contém informações sobre o CVEs que o Amazon Linux avaliou. Essa avaliação pode resultar em uma pontuação básica, gravidade e status do CVSS para várias versões e pacotes do Amazon Linux. O status de uma CVE para uma versão ou um pacote específico do Amazon Linux pode ser Não afetado, Correção pendente ou Nenhuma correção planejada. O status e a avaliação do CVEs podem mudar várias vezes e de *qualquer forma* antes da emissão de um Aviso. Isso inclui a reavaliação da aplicabilidade de uma CVE ao Amazon Linux. 

 A lista de CVEs pessoas referenciadas por um Aviso pode mudar após a publicação inicial desse Aviso. 

## Texto da recomendação
<a name="advisory-text"></a>

 Uma recomendação também conterá um texto descritivo dos problemas que foram o motivo da criação da recomendação. É comum que esse texto seja o texto não modificado da CVE. Esse texto pode se referir aos números de versão upstream em que uma correção está disponível e que são diferentes da versão do pacote à qual o Amazon Linux aplicou uma correção. É comum que o Amazon Linux faça a portabilidade retroativa das correções de versões upstream mais recentes. Caso o texto da recomendação mencione uma versão upstream diferente da versão distribuída em uma versão do Amazon Linux, as versões de pacote do Amazon Linux na recomendação serão precisas para o Amazon Linux. 

 É possível que o texto da recomendação nos metadados do repositório RPM seja um texto de espaço reservado que apenas faz referência ao site do [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) para mais detalhes. 

## Recomendações de patch ao vivo do kernel
<a name="livepatch-advisories"></a>

 As recomendações para patches ao vivo são exclusivas, pois se referem a um pacote diferente (o kernel do Linux) do pacote ao qual a recomendação se refere (por exemplo, `kernel-livepatch-6.1.15-28.43`). 

 Um aviso para um [Kernel Live Patch](live-patching.md) fará referência aos problemas (como CVEs) que o pacote específico do Live Patch pode resolver para a versão *específica* do kernel à qual o pacote de patch ativo se aplica. 

 Cada patch ao vivo é destinado a uma versão *específica* do kernel. Para aplicar um patch ao vivo a uma CVE, o pacote de patch ao vivo correto para a versão do kernel precisa ser instalado e o patch ao vivo aplicado. 

 Por exemplo, o [CVE-2023-6111](https://alas.aws.amazon.com/cve/html/CVE-2023-6111.html) pode ser corrigido ao vivo para as versões do kernel e. AL2023 `6.1.56-82.125` `6.1.59-84.139` `6.1.61-85.141` Uma nova versão do kernel com uma correção para essa CVE também foi lançada e tem [uma recomendação separada](https://alas.aws.amazon.com/AL2023/ALAS-2023-461.html). Para que o [CVE-2023-6111](https://alas.aws.amazon.com/cve/html/CVE-2023-6111.html) seja endereçado em AL2023 uma versão do kernel igual ou posterior à especificada por [ALAS2023-2023-461](https://alas.aws.amazon.com/AL2023/ALAS-2023-461.html), precisa estar em *execução, ou uma das versões do kernel com um patch ativo para esse CVE precisa estar em execução* com o livepatch aplicável aplicado. 

 Quando há novos patches ao vivo disponíveis para uma versão específica do kernel que já tem um patch ao vivo disponível, uma nova versão do pacote `kernel-livepatch-KERNEL_VERSION` é lançada. Por exemplo, o [https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-003.html](https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-003.html)Aviso foi emitido com o `kernel-livepatch-6.1.15-28.43-1.0-1.amzn2023` pacote que continha patches ativos para o `6.1.15-28.43` kernel, abrangendo três CVEs. Posteriormente, o [https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-009.html](https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-009.html)Aviso foi lançado com o `kernel-livepatch-6.1.15-28.43-1.0-2.amzn2023` pacote; uma atualização do pacote de patch ativo anterior para o `6.1.15-28.43` kernel contendo patches ativos para outros três CVEs. Também havia outros problemas de recomendações com patch ao vivo para outras versões do kernel, com pacotes contendo patches ao vivo para essas versões específicas do kernel. 

 Para saber mais sobre a aplicação de patches ao vivo do kernel, consulte [Aplicação de patches do kernel em tempo real no AL2023](live-patching.md). 

 Para todos que desenvolvem ferramentas relacionadas a recomendações de segurança, também é recomendável consultar a seção [Esquema XML para recomendações e `updateinfo.xml`](#advisory-schema) para obter mais informações. 

## Esquema XML para recomendações e `updateinfo.xml`
<a name="advisory-schema"></a>

 O arquivo `updateinfo.xml` faz parte do formato do repositório de pacotes. São os metadados que o gerenciador de pacotes `dnf` analisa para implementar funcionalidades, como [Listar recomendações aplicáveis](listing-applicable-advisories.md) e [Aplicar atualizações de segurança no local](security-inplace-update.md). 

 Recomendamos o uso da API do gerenciador de pacotes `dnf` em vez de escrever código personalizado para analisar os formatos de metadados do repositório. A versão do `dnf` in AL2023 pode analisar os formatos e o do AL2 repositório AL2023 e, portanto, a API pode ser usada para examinar informações consultivas para qualquer versão do sistema operacional. 

 O projeto [RPM Software Management](https://github.com/rpm-software-management/) documenta os formatos de metadados RPM no repositório [rpm-metadata](https://github.com/rpm-software-management/rpm-metadata) em. GitHub 

 Para todos que desenvolvem ferramentas para análise direta dos metadados de `updateinfo.xml`, é altamente recomendável prestar muita atenção à [documentação de rpm-metadata](https://github.com/rpm-software-management/rpm-metadata). A documentação aborda o que já foi visto no mundo real, o que inclui muitas exceções ao que você pode razoavelmente interpretar como uma regra para o formato de metadados. 

 Também há um conjunto crescente de exemplos reais de `updateinfo.xml` arquivos no repositório [raw-historical-rpm-repository-examples](https://github.com/rpm-software-management/raw-historical-rpm-repository-examples) em. GitHub 

 Caso algo não esteja claro na documentação, você pode abrir um problema no GitHub projeto para que possamos responder à pergunta e atualizar a documentação adequadamente. Como se tratam de projetos de código aberto, solicitações pull para atualizar a documentação também são bem-vindas. 

# Listar recomendações aplicáveis
<a name="listing-applicable-advisories"></a>

 O gerenciador de pacotes `dnf` tem acesso aos metadados que descrevem quais recomendações foram corrigidas em quais versões de pacotes. Assim, ele pode listar quais recomendações são aplicáveis a uma instância ou imagem de contêiner. 

**nota**  
 Ferramentas como o [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/) podem usar essa funcionalidade para mostrar quais atualizações são relevantes em uma frota, em vez de apenas em uma única instância. 

 Ao listar as atualizações, você pode instruir o `dnf` a examinar os metadados de um lançamento específico do AL2023 ou os metadados do lançamento mais recente. 

**nota**  
 Depois que um lançamento do AL2023 é distribuído, ele é imutável. Assim, recomendações novas ou atualizadas no [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) são adicionadas somente aos metadados de *novos* lançamentos do AL2023. 

 Agora, veremos exemplos de como conferir quais recomendações se aplicam a algumas imagens de contêiner do AL2023. Todos esses comandos funcionam em ambientes sem contêineres, como instâncias do EC2. 

------
#### [ Listing advisories in a specific version ]

 Neste exemplo, veremos quais recomendações do lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) são relevantes para uma imagem de contêiner do lançamento [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

**nota**  
 Este exemplo usa os lançamentos [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) e [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html), e esses *não são* os lançamentos mais recentes do AL2023. Consulte [AL2023 Release Notes](https://docs.aws.amazon.com/linux/al2023/release-notes/) para conferir as versões mais recentes, que contêm as atualizações de segurança mais recentes. 

 Neste exemplo, começaremos com uma imagem de contêiner para o lançamento [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

 Primeiro, buscamos essa imagem de contêiner no registro de contêineres. O trecho `.0` no final indica a versão da imagem para um lançamento específico, e essa versão da imagem geralmente é 0. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  2023.0.20230315.0: Pulling from amazonlinux/amazonlinux
b76f3b09316a: Pull complete
Digest: sha256:94e7183b0739140dbd5b639fb7600f0a2299cec5df8780c26d9cb409da5315a9
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
```

 Agora podemos gerar um shell dentro do contêiner, do qual solicitaremos que `dnf` liste as recomendações relevantes para os pacotes instalados no contêiner. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  bash-5.2#
```

 O comando `dnf updateinfo` agora é usado para exibir um resumo de quais recomendações do lançamento [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) são relevantes para nossos pacotes instalados. 

```
$ dnf updateinfo --releasever=2023.1.20230628
Amazon Linux 2023 repository                     42 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:02 ago on Mon Jul 22 20:24:24 2024.
Updates Information Summary: available
    8 Security notice(s)
        1 Important Security notice(s)
        5 Medium Security notice(s)
        2 Low Security notice(s)
```

 Para obter uma lista de recomendações, a opção `--list` pode ser concedida a `dnf updateinfo`. 

```
$ dnf updateinfo --releasever=2023.1.20230628 --list
Last metadata expiration check: 0:01:22 ago on Mon Jul 22 20:24:24 2024.
ALAS2023-2023-193 Medium/Sec.    curl-minimal-8.0.1-1.amzn2023.x86_64
ALAS2023-2023-225 Medium/Sec.    glib2-2.74.7-688.amzn2023.0.1.x86_64
ALAS2023-2023-195 Low/Sec.       libcap-2.48-2.amzn2023.0.3.x86_64
ALAS2023-2023-193 Medium/Sec.    libcurl-minimal-8.0.1-1.amzn2023.x86_64
ALAS2023-2023-145 Low/Sec.       libgcc-11.3.1-4.amzn2023.0.3.x86_64
ALAS2023-2023-145 Low/Sec.       libgomp-11.3.1-4.amzn2023.0.3.x86_64
ALAS2023-2023-145 Low/Sec.       libstdc++-11.3.1-4.amzn2023.0.3.x86_64
ALAS2023-2023-163 Medium/Sec.    libxml2-2.10.4-1.amzn2023.0.1.x86_64
ALAS2023-2023-220 Important/Sec. ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch
ALAS2023-2023-220 Important/Sec. ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64
ALAS2023-2023-181 Medium/Sec.    openssl-libs-1:3.0.8-1.amzn2023.0.2.x86_64
ALAS2023-2023-222 Medium/Sec.    openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64
```

------
#### [ Listing advisories in the latest version ]

 Neste exemplo, veremos quais atualizações estão disponíveis na versão `latest` do AL2023 ao inicializar um contêiner do lançamento [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). No momento em que este artigo foi escrito, o lançamento `latest` era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), portanto, as atualizações listadas neste exemplo serão as desse lançamento. 

**nota**  
 Este exemplo usa os lançamentos [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) e [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), sendo que este é o lançamento mais recente *no momento em que este artigo foi escrito*. Para obter mais informações sobre os lançamentos mais recentes, consulte [AL2023 Release Notes](https://docs.aws.amazon.com/linux/al2023/release-notes/). 

 Neste exemplo, começaremos com uma imagem de contêiner para o lançamento [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). 

 Primeiro, buscamos essa imagem de contêiner no registro de contêineres. O trecho `.1` no final indica a versão da imagem para um lançamento específico. Embora a versão da imagem geralmente seja 0, este exemplo usa um lançamento em que a versão da imagem é 1. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  2023.4.20240319.1: Pulling from amazonlinux/amazonlinux
6de065fda9a2: Pull complete
Digest: sha256:b4838c4cc9211d966b6ea158dacc9eda7433a16ba94436508c2d9f01f7658b4e
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
```

 Agora podemos gerar um shell dentro do contêiner, por meio do qual verificaremos se há atualizações. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  bash-5.2#
```

 O comando `dnf updateinfo` agora é usado para exibir um resumo de quais recomendações do lançamento mais recente são relevantes para nossos pacotes instalados. No momento em que este artigo foi escrito, [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) era o lançamento mais recente. 

```
$ dnf --releasever=latest updateinfo
Amazon Linux 2023 repository                     76 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 20:59:54 2024.
Updates Information Summary: available
    9 Security notice(s)
        4 Important Security notice(s)
        4 Medium Security notice(s)
        1 Low Security notice(s)
```

 Para obter uma lista de recomendações, a opção `--list` pode ser concedida a `dnf updateinfo`. 

```
$ dnf updateinfo --releasever=latest --list
Last metadata expiration check: 0:00:58 ago on Mon Jul 22 20:59:54 2024.
ALAS2023-2024-581 Low/Sec.       curl-minimal-8.5.0-1.amzn2023.0.3.x86_64
ALAS2023-2024-596 Medium/Sec.    curl-minimal-8.5.0-1.amzn2023.0.4.x86_64
ALAS2023-2024-576 Important/Sec. expat-2.5.0-1.amzn2023.0.4.x86_64
ALAS2023-2024-589 Important/Sec. glibc-2.34-52.amzn2023.0.10.x86_64
ALAS2023-2024-589 Important/Sec. glibc-common-2.34-52.amzn2023.0.10.x86_64
ALAS2023-2024-589 Important/Sec. glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64
ALAS2023-2024-586 Medium/Sec.    krb5-libs-1.21-3.amzn2023.0.4.x86_64
ALAS2023-2024-581 Low/Sec.       libcurl-minimal-8.5.0-1.amzn2023.0.3.x86_64
ALAS2023-2024-596 Medium/Sec.    libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64
ALAS2023-2024-592 Important/Sec. libnghttp2-1.59.0-3.amzn2023.0.1.x86_64
ALAS2023-2024-640 Medium/Sec.    openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64
ALAS2023-2024-605 Medium/Sec.    python3-3.9.16-1.amzn2023.0.7.x86_64
ALAS2023-2024-616 Important/Sec. python3-3.9.16-1.amzn2023.0.8.x86_64
ALAS2023-2024-605 Medium/Sec.    python3-libs-3.9.16-1.amzn2023.0.7.x86_64
ALAS2023-2024-616 Important/Sec. python3-libs-3.9.16-1.amzn2023.0.8.x86_64
```

------

# Aplicar atualizações de segurança no local
<a name="security-inplace-update"></a>

 Para obter uma visão geral da aplicação de atualizações, consulte [Aplicar atualizações de segurança usando DNF e versões do repositório](managing-repos-os-updates.md#apply-security-updates). A opção `--security` para `dnf upgrade` restringirá as atualizações de pacotes somente àquelas que tiverem uma recomendação. O restante desta seção abordará como instalar somente atualizações de segurança específicas. 

**nota**  
 É recomendável aplicar *todas* as atualizações disponíveis em um novo lançamento do AL2023. Escolher apenas atualizações de segurança ou apenas atualizações específicas deve ser a exceção, e não a regra. 

## Aplicar as atualizações mencionadas em uma recomendação
<a name="applying-advisory-updates"></a>

 Os identificadores de recomendação na primeira coluna da saída de `dnf upgradeinfo` podem ser usados para aplicar atualizações para os pacotes mencionados na recomendação. O gerenciador de pacotes `dnf` pode ser instruído a atualizar os pacotes na recomendação para as versões mais recentes disponíveis ou somente até as versões mencionadas na recomendação. Se as atualizações já estiverem instaladas, o comando de atualização não funcionará. 

 Para aplicar as atualizações aos pacotes afetados *somente até a versão mencionada na recomendação*, use o comando `dnf upgrade-minimal` enquanto usa a opção `--advisory` para especificar a recomendação. O exemplo a seguir está executado `dnf upgrade-minimal` em um contêiner do AL2023 versão [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

```
$ dnf upgrade-minimal -y --releasever=2023.1.20230628 --advisory ALAS2023-2023-193
Amazon Linux 2023 repository                     46 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:03 ago on Mon Jul 22 20:36:13 2024.
Dependencies resolved.
================================================================================
 Package              Arch        Version                Repository        Size
================================================================================
Upgrading:
 curl-minimal         x86_64      8.0.1-1.amzn2023       amazonlinux      150 k
 libcurl-minimal      x86_64      8.0.1-1.amzn2023       amazonlinux      249 k

Transaction Summary
================================================================================
Upgrade  2 Packages

Total download size: 399 k
Downloading Packages:
(1/2): curl-minimal-8.0.1-1.amzn2023.x86_64.rpm 2.7 MB/s | 150 kB     00:00
(2/2): libcurl-minimal-8.0.1-1.amzn2023.x86_64. 3.8 MB/s | 249 kB     00:00
--------------------------------------------------------------------------------
Total                                           2.5 MB/s | 399 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Upgrading        : libcurl-minimal-8.0.1-1.amzn2023.x86_64                1/4
  Upgrading        : curl-minimal-8.0.1-1.amzn2023.x86_64                   2/4
  Cleanup          : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              3/4
  Cleanup          : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           4/4
  Running scriptlet: libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           4/4
  Verifying        : libcurl-minimal-8.0.1-1.amzn2023.x86_64                1/4
  Verifying        : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           2/4
  Verifying        : curl-minimal-8.0.1-1.amzn2023.x86_64                   3/4
  Verifying        : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              4/4

Upgraded:
  curl-minimal-8.0.1-1.amzn2023.x86_64  libcurl-minimal-8.0.1-1.amzn2023.x86_64

Complete!
```

 As mesmas versões do pacote são atualizadas mesmo que `--releasever=latest` seja usado, pois a solicitação é para que `dnf` faça a atualização mínima necessária para resolver a recomendação. 

 Usar o comando `dnf upgrade` regular com a opção `--advisory` atualizará os pacotes relevantes mencionados na recomendação para a versão *mais recente* disponível, que pode ser mais recente do que a versão mencionada na recomendação. 

**nota**  
 A menos que o pacote `system-release` esteja atualizado, a versão dos repositórios do AL2023 à qual `dnf` está vinculado *não muda*. 

**Atenção**  
 Ao instalar atualizações de uma versão diferente do AL2023 sem alterar a versão do repositório à qual `dnf` está vinculado, *deve-se* tomar cuidado com qualquer operação de mutação do `dnf` subsequente. Por exemplo, ao instalar ou atualizar pacotes, como as dependências do pacote podem ter sido alteradas no lançamento mais recente, o lançamento mais antigo que você continua usando pode não ser capaz de satisfazer essas novas dependências. 

 O exemplo a seguir é executado em um contêiner do AL2023 versão [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) referente à versão mais recente do AL2023 que, no momento em que este artigo foi escrito, era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html). Observe que a versão de `curl` para a qual está sendo atualizado é mais recente do que a versão de `update-minimal` atualizada, mas que essa versão mais recente traz novas dependências. 

```
$ dnf upgrade -y --releasever=latest --advisory ALAS2023-2023-193
Amazon Linux 2023 repository                     80 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 20:48:38 2024.
Dependencies resolved.
================================================================================
 Package                   Arch     Version                 Repository     Size
================================================================================
Upgrading:
 curl-minimal              x86_64   8.5.0-1.amzn2023.0.4    amazonlinux   160 k
 libcurl-minimal           x86_64   8.5.0-1.amzn2023.0.4    amazonlinux   275 k
 libnghttp2                x86_64   1.59.0-3.amzn2023.0.1   amazonlinux    79 k
Installing dependencies:
 libpsl                    x86_64   0.21.1-3.amzn2023.0.2   amazonlinux    61 k
 publicsuffix-list-dafsa   noarch   20240212-61.amzn2023    amazonlinux    59 k

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  3 Packages

Total download size: 634 k
Downloading Packages:
(1/5): publicsuffix-list-dafsa-20240212-61.amzn 1.1 MB/s |  59 kB     00:00
(2/5): curl-minimal-8.5.0-1.amzn2023.0.4.x86_64 2.6 MB/s | 160 kB     00:00
(3/5): libpsl-0.21.1-3.amzn2023.0.2.x86_64.rpm  949 kB/s |  61 kB     00:00
(4/5): libnghttp2-1.59.0-3.amzn2023.0.1.x86_64. 3.7 MB/s |  79 kB     00:00
(5/5): libcurl-minimal-8.5.0-1.amzn2023.0.4.x86 6.7 MB/s | 275 kB     00:00
--------------------------------------------------------------------------------
Total                                           3.5 MB/s | 634 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Upgrading        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64                1/8
  Installing       : publicsuffix-list-dafsa-20240212-61.amzn2023.noarch    2/8
  Installing       : libpsl-0.21.1-3.amzn2023.0.2.x86_64                    3/8
  Upgrading        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64            4/8
  Upgrading        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64               5/8
  Cleanup          : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              6/8
  Cleanup          : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           7/8
  Cleanup          : libnghttp2-1.51.0-1.amzn2023.x86_64                    8/8
  Running scriptlet: libnghttp2-1.51.0-1.amzn2023.x86_64                    8/8
  Verifying        : libpsl-0.21.1-3.amzn2023.0.2.x86_64                    1/8
  Verifying        : publicsuffix-list-dafsa-20240212-61.amzn2023.noarch    2/8
  Verifying        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64               3/8
  Verifying        : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              4/8
  Verifying        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64            5/8
  Verifying        : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           6/8
  Verifying        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64                7/8
  Verifying        : libnghttp2-1.51.0-1.amzn2023.x86_64                    8/8

Upgraded:
  curl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  libnghttp2-1.59.0-3.amzn2023.0.1.x86_64
Installed:
  libpsl-0.21.1-3.amzn2023.0.2.x86_64
  publicsuffix-list-dafsa-20240212-61.amzn2023.noarch

Complete!
```

# Configurando modos do SELinux para o AL2023
<a name="selinux-modes"></a>

Por padrão, o Security Enhanced Linux (SELinux) está `enabled` e configurado para o modo `permissive` para o AL2023. No modo permissive, as negações de permissão são registradas, mas não aplicadas. O SELinux é uma coleção de recursos e utilitários do kernel para fornecer uma arquitetura de controle de acesso (MAC) forte, flexível e obrigatória aos principais subsistemas do kernel. 

O SELinux fornece um mecanismo aprimorado para impor a separação de informações com base nos requisitos de confidencialidade e integridade. Essa separação de informações reduz as ameaças de adulteração e desvio dos mecanismos de segurança do aplicativo. Também limita os danos que podem ser causados por aplicativos maliciosos ou defeituosos. 

O SELinux inclui um conjunto de exemplos de arquivos de configuração de políticas de segurança projetados para atender às metas diárias de segurança.

Para obter mais informações sobre os recursos e funcionalidades do SELinux, consulte [Cadernos do SELinux](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/toc.md) e [Idiomas da Política”.](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/policy_languages.md) 

**Topics**
+ [Status e modos padrão do SELinux para o AL2023](default-SELinux-modes-states.md)
+ [Mudar para o modo `enforcing`](enforcing-mode.md)
+ [Opção para desabilitar o SELinux para o AL2023](disable-option-selinux.md)

# Status e modos padrão do SELinux para o AL2023
<a name="default-SELinux-modes-states"></a>

Para o AL2023, o SELinux vem por padrão como `enabled` e configurado no modo `permissive`. No modo `permissive`, as negações de permissão são registradas, mas não aplicadas.

Os comandos **getenforce** ou **sestatus** lhe dizem o atual status, política e modo do SELinux. 

Com o status padrão definido como `enabled` e `permissive`, o comando **getenforce** retorna `permissive`. 

O comando **sestatus** retorna o status do SELinux e a política atual do SELinux, conforme mostrado no seguinte exemplo: 

```
$ sestatus
SELinux status:                 enabled
  SELinuxfs mount:                /sys/fs/selinux
  SELinux root directory:         /etc/selinux
  Loaded policy name:             targeted
  Current mode:                   permissive
  Mode from config file:          permissive
  Policy MLS status:              enabled
  Policy deny_unknown status:     allowed
  Memory protection checking:     actual (secure)
  Max kernel policy version:      33
```

Quando você executa o SELinux no modo `permissive`, os usuários podem rotular os arquivos incorretamente. Quando você executa o SELinux no status `disabled`, os arquivos não são rotulados. Arquivos incorretos ou não identificados podem causar problemas quando você muda para o modo `enforcing`.

O SELinux renomeia automaticamente os arquivos para evitar esse problema. O SELinux evita problemas de etiquetagem com a nova rotulagem automática quando você altera o status para `enabled`.

# Mudar para o modo `enforcing`
<a name="enforcing-mode"></a>

Quando você executa SELinux no modo `enforcing`, o utilitário SELinux está `enforcing` a política configurada. O SELinux controla os recursos de aplicações selecionadas, permitindo ou negando acesso com base nas regras da política.

Para encontrar o modo atual do SELinux, execute o comando `getenforce`.

```
getenforce
Permissive
```

## Edite o arquivo de configuração para ativar o modo `enforcing`
<a name="config-file-enforcing"></a>

Para alterar o modo para `enforcing`, siga as etapas a seguir.

1. Edite o arquivo `enforcing` para mudar para o modo `/etc/selinux/config`. A configuração de `SELINUX` deve ser semelhante ao exemplo a seguir.

   ```
   SELINUX=enforcing
   ```

1. Reinicie o sistema para concluir a mudança para o modo `enforcing`.

   ```
   $ sudo reboot
   ```

Na próxima inicialização, o SELinux renomeará todos os arquivos e diretórios no sistema. O SELinux também adiciona o contexto do SELinux para arquivos e diretórios que foram criados quando o SELinux estava `disabled`.

Depois de mudar para o modo `enforcing`, o SELinux pode negar algumas ações devido a regras de política do SELinux incorretas ou ausentes. Você pode visualizar as ações que o SELinux nega com o comando a seguir.

```
$ sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
```

## Use cloud-init para ativar o modo `enforcing`.
<a name="cloud-init-enforcing"></a>

Como alternativa, ao iniciar sua instância, transmita o seguinte `cloud-config` como dados do usuário para ativar o modo `enforcing`. 

```
#cloud-config
selinux: 
  mode: enforcing
```

Por padrão, essa configuração faz com que a instância seja reinicializada. Para maior estabilidade, recomendamos reinicializar sua instância. Entretanto, se você preferir, poderá pular a reinicialização fornecendo o `cloud-config` a seguir.

```
#cloud-config
selinux:
  mode: enforcing
  selinux_no_reboot: 1
```

# Opção para desabilitar o SELinux para o AL2023
<a name="disable-option-selinux"></a>

Quando você desabilita o SELinux, a política do SELinux não é carregada nem imposta e as mensagens do Access Vector Cache (AVC) não são registradas em log. Você perde todos os benefícios de executar o SELinux. 

Em vez de desabilitar o SELinux, recomendamos usar o modo `permissive`. Custa apenas um pouco mais executar no modo `permissive` do que desabilitar completamente o SELinux. A transição do modo `permissive` para o modo `enforcing` requer muito menos ajustes de configuração do que a transição de volta ao modo `enforcing` após desabilitar o SELinux. Você pode rotular arquivos e o sistema pode rastrear e registrar ações que a política ativa possa ter negado. 

## Mudar o SELinux para o modo `permissive`
<a name="change-to-permissive"></a>

Quando você executa o SELinux no modo `permissive`, a política do SELinux não é imposta. No modo `permissive`, o SELinux registra as mensagens de AVC em log, mas não nega as operações. Você pode usar essas mensagens de AVC para solucionar problemas, depurar e aprimorar a política do SELinux. 

Para mudar o SELinux para o modo permissivo, siga as etapas a seguir.

1. Edite o arquivo `permissive` para mudar para o modo `/etc/selinux/config`. O valor de `SELINUX` deve ser como o exemplo a seguir.

   ```
   SELINUX=permissive
   ```

1. Reinicie o sistema para concluir a mudança para o modo `permissive`.

   ```
   sudo reboot
   ```

## Desabilitar SELinux
<a name="disable-selinux"></a>

Ao desabilitar o SELinux, a política do SELinux não é carregada nem imposta, e as mensagens de AVC não são registradas em log. Você perde todos os benefícios de executar o SELinux.

Para desabilitar o SELinux, siga as etapas a seguir.

1. Garanta que o pacote `grubby` esteja instalado.

   ```
   rpm -q grubby
   grubby-version
   ```

1. Configure seu bootloader para adicionar `selinux=0` à linha de comando do kernel.

   ```
   sudo grubby --update-kernel ALL --args selinux=0
   ```

1. Reinicie o sistema.

   ```
   sudo reboot
   ```

1. Execute o comando `getenforce ` para confirmar se o SELinux é `Disabled`.

   ```
   $ getenforce
   Disabled
   ```

Para obter mais informações sobre o SELinux, consulte [SELinux Notebook](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/toc.md) e [SELinux configuration](http://selinuxproject.org/page/Guide/Mode#SELinux_Config).

# Habilitar o modo FIPS no AL2023
<a name="fips-mode"></a>

Esta seção explica como habilitar o Federal Information Processing Standards (FIPS) no AL2023. Para obter mais informações sobre FIPS, consulte:
+ [Federal Information Processing Standard (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Perguntas frequentes sobre conformidade: Federal Information Processing Standards](https://www.nist.gov/standardsgov/compliance-faqs-federal-information-processing-standards-fips)

**nota**  
Esta seção documenta como ativar o modo FIPS no AL2023, mas não abrange o status da certificação dos módulos criptográficos do AL2023.

**Pré-requisitos**
+ Uma instância AL2023 (AL2023.2 ou superior) existente do Amazon EC2 com acesso à Internet para baixar os pacotes necessários. Para obter mais informações sobre como iniciar uma instância de AL2023 Amazon EC2, consulte [Inicializar o AL2023 usando o console do Amazon EC2](ec2.md#launch-from-ec2-console).
+ Você deve se conectar à sua instância do Amazon EC2 usando SSH ou AWS Systems Manager. Para obter mais informações, consulte [Conexão com AL2023 instâncias](connecting-to-instances.md).

**Importante**  
As chaves de usuário SSH ED25519 não são compatíveis no modo FIPS. Se você lançou sua instância do Amazon EC2 usando um par de chaves SSH ED25519, deverá gerar novas chaves usando outro algoritmo (como RSA) ou poderá perder o acesso à sua instância após ativar o modo FIPS. Para obter mais informações, consulte [Criar um par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html) no *Guia do usuário do Amazon EC2*.

**Habilitar o modo FIPS**

1. Conecte-se à sua instância do AL2023 usando SSH ou AWS Systems Manager.

1. Verifique se o sistema está atualizado. Para obter mais informações, consulte [Gerencie atualizações de pacotes e sistemas operacionais no AL2023](managing-repos-os-updates.md).

1. Verifique se os utilitários `crypto-policies` estão instalados e atualizados.

   ```
   sudo dnf -y install crypto-policies crypto-policies-scripts
   ```

1. Ativar modo FIPS executando o seguinte comando. Isso habilitará o modo FIPS em todo o sistema para os módulos listados em [AL2023 FAQ](https://aws.amazon.com/linux/amazon-linux-2023/faqs/). 

   ```
   sudo fips-mode-setup --enable
   ```

1. Execute a instância usando o seguinte comando.

   ```
   sudo reboot
   ```

1. Para verificar se o modo do FIPS está habilitado, reconecte-se à sua instância e execute o comando a seguir.

   ```
   sudo fips-mode-setup --check
   ```

   O exemplo de saída a seguir mostra que o modo do FIPS está habilitado:

   ```
   FIPS mode is enabled.
   ```

# Habilitar o modo FIPS em um contêiner do AL2023
<a name="fips-mode-container"></a>

Esta seção explica como habilitar o Federal Information Processing Standards (FIPS) em um contêiner do AL2023. Para obter mais informações sobre FIPS, consulte:
+ [Federal Information Processing Standard (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Perguntas frequentes sobre conformidade: Federal Information Processing Standards](https://www.nist.gov/standardsgov/compliance-faqs-federal-information-processing-standards-fips)

**nota**  
Esta seção documenta como habilitar o modo FIPS em um contêiner do AL2023. Ela não abrange o status de certificação dos módulos criptográficos do AL2023.

**Pré-requisitos**
+ Uma instância AL2023 (AL2023.2 ou superior) existente do Amazon EC2 com acesso à Internet para baixar os pacotes necessários. Para obter mais informações sobre como iniciar uma instância de AL2023 Amazon EC2, consulte [Inicializar o AL2023 usando o console do Amazon EC2](ec2.md#launch-from-ec2-console).
+ Você deve se conectar à sua instância do Amazon EC2 usando SSH ou AWS Systems Manager. Para obter mais informações, consulte [Conexão com AL2023 instâncias](connecting-to-instances.md).

**Importante**  
O comando `fips-mode-setup` não funcionará corretamente de dentro do contêiner. Leia as etapas abaixo para configurar corretamente o modo FIPS em um contêiner do AL2023.

**Habilitar o modo FIPS em um contêiner do AL2023**

1. O modo FIPS deve primeiro ser habilitado no host do contêiner do AL2023. Siga as instruções em [Habilitar o modo FIPS no AL2023](fips-mode.md) para habilitar o modo FIPS no host.

1. Conecte-se à instância de host do contêiner do AL2023 usando SSH ou AWS Systems Manager.

1. O modo FIPS será habilitado automaticamente em um contêiner do AL2023 se o host do AL2023 estiver no modo FIPS e `/proc/sys/crypto/fips_enabled` puder ser acessado de dentro do contêiner. Se o conteúdo de `/proc/sys/crypto/fips_enabled` é `0`, o FIPS não está habilitado, enquanto um valor de `1` indica que o modo FIPS está habilitado.

   Você pode verificar se o FIPS está habilitado executando o seguinte comando no host do AL2023 e no contêiner:

   ```
   cat /proc/sys/crypto/fips_enabled
   ```

1. Depois, habilite as políticas de criptografia do FIPS dentro do contêiner. Há várias maneiras de fazer isso, descritas nas opções abaixo. Use a opção mais adequada para o seu ambiente.

   1. Habilite as políticas de criptografia do FIPS manualmente dentro do contêiner usando o comando `update-crypto-policies`:

      ```
      # Run these commands inside the container
      dnf install -y crypto-policies-scripts
      update-crypto-policies --set FIPS
      ```

   1. Crie montagens `bind` no contêiner do AL2023 (isso é semelhante ao funcionamento de `podman` em outras distribuições):

      ```
      # Run these commands inside the container
      mount --bind /usr/share/crypto-policies/back-ends/FIPS /etc/crypto-policies/back-ends
      echo "FIPS" > /usr/share/crypto-policies/default-fips-config
      mount --bind /usr/share/crypto-policies/default-fips-config /etc/crypto-policies/config
      ```

   1. Também é possível criar uma montagem vinculada para que o contêiner do AL2023 corresponda às políticas de criptografia do host do AL2023. O conteúdo a seguir é apenas um exemplo. Essa configuração pode causar problemas se houver diferenças incompatíveis nas políticas de criptografia e nas versões de pacotes entre o contêiner e o host:

      ```
      sudo docker pull amazonlinux:2023
      sudo docker run --mount type=bind,readonly,src=/etc/crypto-policies,dst=/etc/crypto-policies -it amazonlinux:2023
      ```

1. Depois de executar as etapas acima, você pode verificar novamente se o FIPS está habilitado no contêiner com os seguintes comandos:

   ```
   $ cat /etc/crypto-policies/config
   FIPS
   
   $ cat /proc/sys/crypto/fips_enabled
   1
   ```

# Trocar de provedor de OpenSSL FIPS no AL2023
<a name="fips-openssl-swap-provider"></a>

Esta seção explica como alternar entre provedores de OpenSSL FIPS `latest` e `certified` no AL2023.

Para obter mais informações sobre FIPS, consulte:
+ [Federal Information Processing Standard (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Perguntas frequentes sobre conformidade: Federal Information Processing Standards](https://www.nist.gov/standardsgov/compliance-faqs-federal-information-processing-standards-fips)
+ [FedRAMP Policy for Cryptographic Module Selection and Use](https://www.fedramp.gov/rev5/fips/)

**Importante**  
No AL2023.7 e posterior, o provedor de OpenSSL FIPS padrão é o pacote `openssl-fips-provider-latest`, que recebe correções de bugs e atualizações de segurança regulares.  
As instruções abaixo são apenas para clientes que desejam fixar o pacote `openssl-fips-provider-certified`. Essa versão do provedor de FIPS corresponderá à soma de verificação do certificado NIST e pode não ter as atualizações mais recentes.  
Consulte [AL2023 FAQ](https://aws.amazon.com/linux/amazon-linux-2023/faqs/) para obter mais informações sobre módulos certificados para FIPS e versões de pacotes.

**Pré-requisitos**
+ Uma instância AL2023 (AL2023.7 ou superior) existente do Amazon EC2 com acesso à Internet para baixar os pacotes necessários. Para obter mais informações sobre como iniciar uma instância de AL2023 Amazon EC2, consulte [Inicializar o AL2023 usando o console do Amazon EC2](ec2.md#launch-from-ec2-console).
+ Você deve se conectar à sua instância do Amazon EC2 usando SSH ou AWS Systems Manager. Para obter mais informações, consulte [Conexão com AL2023 instâncias](connecting-to-instances.md).
+ Para habilitar o modo FIPS no AL2023, siga as instruções em [Habilitar o modo FIPS no AL2023](fips-mode.md).

**Alternar entre `openssl-fips-provider-latest` e `openssl-fips-provider-certified`**

1. Use `dnf` para trocar o provedor de OpenSSL FIPS:

   ```
   sudo dnf -y swap openssl-fips-provider-latest openssl-fips-provider-certified
   ```

1. Verifique se você está usando o provedor de OpenSSL FIPS certificado. Com o AL2023 no modo FIPS, execute o seguinte comando:

   ```
   openssl list -providers
   ```

   A seguinte saída deverá ser mostrada:

   ```
   Providers:
     base
       name: OpenSSL Base Provider
       version: 3.2.2
       status: active
     default
       name: OpenSSL Default Provider
       version: 3.2.2
       status: active
     fips
       name: Amazon Linux 2023 - OpenSSL FIPS Provider
       version: 3.0.8-d694bfa693b76001
       status: active
   ```

# AL2023 Endurecimento do kernel
<a name="kernel-hardening"></a>

 O kernel Linux 6.1 AL2023 é configurado e construído com várias opções e recursos de fortalecimento. 

## Opções de fortalecimento do kernel (independente da arquitetura)
<a name="kernel-hardening-common"></a>


| Opção do `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ACPI_CUSTOM_METHOD`](#CONFIG_ACPI_CUSTOM_METHOD)  |  n  |  n  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_BINFMT_MISC`](#CONFIG_BINFMT_MISC)  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_BUG`](#CONFIG_BUG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_BUG_ON_DATA_CORRUPTION`](#CONFIG_BUG_ON_DATA_CORRUPTION)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_CFI_CLANG`](#CONFIG_CFI_CLANG)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_CFI_PERMISSIVE`](#CONFIG_CFI_PERMISSIVE)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_COMPAT`](#CONFIG_COMPAT)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_COMPAT_BRK`](#CONFIG_COMPAT_BRK)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_COMPAT_VDSO`](#CONFIG_COMPAT_VDSO)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_DEBUG_CREDENTIALS`](#CONFIG_DEBUG_CREDENTIALS)  |  n  |  n  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_DEBUG_LIST`](#CONFIG_DEBUG_LIST)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_DEBUG_NOTIFIERS`](#CONFIG_DEBUG_NOTIFIERS)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEBUG_SG`](#CONFIG_DEBUG_SG)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEBUG_VIRTUAL`](#CONFIG_DEBUG_VIRTUAL)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEBUG_WX`](#CONFIG_DEBUG_WX)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEFAULT_MMAP_MIN_ADDR`](#CONFIG_DEFAULT_MMAP_MIN_ADDR)  |  65536  |  65536  |  65536  |  65536  |  65536  |  65536  | 
|  [`CONFIG_DEVKMEM`](compare-with-al2-kernel.md#CONFIG_DEVKMEM)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_DEVMEM`](compare-with-al2-kernel.md#CONFIG_DEVMEM)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_EFI_DISABLE_PCI_DMA`](#CONFIG_EFI_DISABLE_PCI_DMA)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_FORTIFY_SOURCE`](compare-with-al2-kernel.md#CONFIG_FORTIFY_SOURCE)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HARDENED_USERCOPY`](#CONFIG_HARDENED_USERCOPY)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HARDENED_USERCOPY_FALLBACK`](#CONFIG_HARDENED_USERCOPY_FALLBACK)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_HARDENED_USERCOPY_PAGESPAN`](#CONFIG_HARDENED_USERCOPY_PAGESPAN)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_HIBERNATION`](#CONFIG_HIBERNATION)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HW_RANDOM_TPM`](#CONFIG_HW_RANDOM_TPM)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_INET_DIAG`](#CONFIG_INET_DIAG)  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_INIT_ON_ALLOC_DEFAULT_ON`](#CONFIG_INIT_ON_ALLOC_DEFAULT_ON)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_INIT_ON_FREE_DEFAULT_ON`](#CONFIG_INIT_ON_FREE_DEFAULT_ON)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_INIT_STACK_ALL_ZERO`](#CONFIG_INIT_STACK_ALL_ZERO)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_IOMMU_DEFAULT_DMA_STRICT`](#CONFIG_IOMMU_DEFAULT_DMA_STRICT)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_IOMMU_SUPPORT`](#CONFIG_IOMMU_SUPPORT)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_IO_STRICT_DEVMEM`](compare-with-al2-kernel.md#CONFIG_IO_STRICT_DEVMEM)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_KEXEC`](#CONFIG_KEXEC)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_KFENCE`](#CONFIG_KFENCE)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LDISC_AUTOLOAD`](compare-with-al2-kernel.md#CONFIG_LDISC_AUTOLOAD)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LEGACY_PTYS`](#CONFIG_LEGACY_PTYS)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY`](#CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_MODULES`](#CONFIG_MODULES)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_MODULE_SIG`](#CONFIG_MODULE_SIG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_MODULE_SIG_ALL`](#CONFIG_MODULE_SIG_ALL)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_MODULE_SIG_FORCE`](#CONFIG_MODULE_SIG_FORCE)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_MODULE_SIG_HASH`](#CONFIG_MODULE_SIG_HASH)  |  sha512  |  sha512  |  sha512  |  sha512  |  sha512  |  sha512  | 
|  [`CONFIG_MODULE_SIG_KEY`](#CONFIG_MODULE_SIG_KEY)  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  | 
|  [`CONFIG_MODULE_SIG_SHA512`](#CONFIG_MODULE_SIG_SHA512)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_PAGE_POISONING`](#CONFIG_PAGE_POISONING)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_PAGE_POISONING_NO_SANITY`](#CONFIG_PAGE_POISONING_NO_SANITY)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_PAGE_POISONING_ZERO`](#CONFIG_PAGE_POISONING_ZERO)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_PANIC_ON_OOPS`](compare-with-al2-kernel.md#CONFIG_PANIC_ON_OOPS)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_PANIC_TIMEOUT`](#CONFIG_PANIC_TIMEOUT)  |  0  |  0  |  0  |  0  |  0  |  0  | 
|  [`CONFIG_PROC_KCORE`](#CONFIG_PROC_KCORE)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT`](#CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_RANDOM_TRUST_BOOTLOADER`](#CONFIG_RANDOM_TRUST_BOOTLOADER)  |  y  |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_RANDOM_TRUST_CPU`](#CONFIG_RANDOM_TRUST_CPU)  |  y  |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_REFCOUNT_FULL`](#CONFIG_REFCOUNT_FULL)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_SCHED_CORE`](#CONFIG_SCHED_CORE)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_SCHED_STACK_END_CHECK`](#CONFIG_SCHED_STACK_END_CHECK)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECCOMP`](#CONFIG_SECCOMP)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECCOMP_FILTER`](#CONFIG_SECCOMP_FILTER)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY`](#CONFIG_SECURITY)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_DMESG_RESTRICT`](compare-with-al2-kernel.md#CONFIG_SECURITY_DMESG_RESTRICT)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_LANDLOCK`](#CONFIG_SECURITY_LANDLOCK)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_LOCKDOWN_LSM`](#CONFIG_SECURITY_LOCKDOWN_LSM)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_LOCKDOWN_LSM_EARLY`](#CONFIG_SECURITY_LOCKDOWN_LSM_EARLY)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_BOOTPARAM`](#CONFIG_SECURITY_SELINUX_BOOTPARAM)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_DEVELOP`](#CONFIG_SECURITY_SELINUX_DEVELOP)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_DISABLE`](compare-with-al2-kernel.md#CONFIG_SECURITY_SELINUX_DISABLE)  |  n  |  n  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_SECURITY_WRITABLE_HOOKS`](#CONFIG_SECURITY_WRITABLE_HOOKS)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_SECURITY_YAMA`](#CONFIG_SECURITY_YAMA)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SHUFFLE_PAGE_ALLOCATOR`](#CONFIG_SHUFFLE_PAGE_ALLOCATOR)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLAB_FREELIST_HARDENED`](#CONFIG_SLAB_FREELIST_HARDENED)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLAB_FREELIST_RANDOM`](#CONFIG_SLAB_FREELIST_RANDOM)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLUB_DEBUG`](#CONFIG_SLUB_DEBUG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STACKPROTECTOR`](#CONFIG_STACKPROTECTOR)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STACKPROTECTOR_STRONG`](#CONFIG_STACKPROTECTOR_STRONG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STATIC_USERMODEHELPER`](#CONFIG_STATIC_USERMODEHELPER)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_STRICT_DEVMEM`](compare-with-al2-kernel.md#CONFIG_STRICT_DEVMEM)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_STRICT_KERNEL_RWX`](#CONFIG_STRICT_KERNEL_RWX)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STRICT_MODULE_RWX`](#CONFIG_STRICT_MODULE_RWX)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SYN_COOKIES`](#CONFIG_SYN_COOKIES)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_VMAP_STACK`](#CONFIG_VMAP_STACK)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_WERROR`](#CONFIG_WERROR)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_ZERO_CALL_USED_REGS`](#CONFIG_ZERO_CALL_USED_REGS)  |  n  |  n  |  n  |  n  |  n  |  n  | 

### Permitir que os métodos ACPI estejam inserted/replaced em tempo de execução (CONFIG\$1ACPI\$1CUSTOM\$1METHOD)
<a name="CONFIG_ACPI_CUSTOM_METHOD"></a>

O Amazon Linux desativa essa opção, pois permite que os usuários `root` gravem na memória arbitrária do kernel.

Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings).

### Formatos binários diversos (`binfmt_misc`)
<a name="CONFIG_BINFMT_MISC"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Em AL2023, esse recurso é opcional e é construído como um módulo do kernel. 

### Suporte a `BUG()`
<a name="CONFIG_BUG"></a>

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `BUG()` se o kernel encontrar corrupção de dados ao verificar a validade das estruturas de memória do kernel
<a name="CONFIG_BUG_ON_DATA_CORRUPTION"></a>

 Algumas partes do kernel Linux verificarão a consistência interna das estruturas de dados e podem `BUG()` quando detectarem dados corrompidos. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `COMPAT_BRK`
<a name="CONFIG_COMPAT_BRK"></a>

 Com essa opção desativada (que é como o Amazon Linux configura o kernel), a configuração de `randomize_va_space` `sysctl` é retornada para `2`, o que também permite a randomização de heap sobre o topo da base `mmap`, pilha e randomização da página VDSO. 

 Essa opção existe no kernel para fornecer compatibilidade com alguns binários `libc.so.5` antigos de 1996 e anteriores. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `COMPAT_VDSO`
<a name="CONFIG_COMPAT_VDSO"></a>

 Essa opção de configuração é relevante para `x86-64` o `aarch64`. Ao definir isso como `n`, o kernel do Amazon Linux não torna um objeto compartilhado dinâmico (VDSO) virtual de 32 bits visível em um endereço previsível. A mais recente `glibc` conhecida por ser quebrada por essa opção sendo definida por `n` é `glibc` 2.3.3, de 2004. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `CONFIG_DEBUG`endurecimento fechado
<a name="CONFIG_DEBUG_KERNEL"></a>

 As opções de configuração do kernel Linux gated by `CONFIG_DEBUG` são normalmente projetadas para uso em kernels criados para problemas de depuração, e coisas como desempenho não são uma prioridade. AL2023 ativa a opção de `CONFIG_DEBUG_LIST` endurecimento. 

### Desative o DMA para dispositivos PCI no stub EFI antes de configurar o IOMMU
<a name="CONFIG_EFI_DISABLE_PCI_DMA"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Fortalecimento para copiar memória entre o kernel e o espaço do usuário
<a name="CONFIG_HARDENED_USERCOPY"></a>

 Quando o kernel precisa copiar a memória para ou do espaço do usuário, essa opção ativa algumas verificações que podem proteger contra algumas classes de problemas de estouro de pilha. 

 A opção `CONFIG_HARDENED_USERCOPY_FALLBACK` existia nos kernels 4.16 a 5.15 para ajudar os desenvolvedores do kernel a descobrir quaisquer entradas ausentes da lista de permissões por meio de uma `WARN()`. Como AL2023 vem com um kernel 6.1, essa opção não é mais relevante para o. AL2023 

 A `CONFIG_HARDENED_USERCOPY_PAGESPAN` opção existia nos kernels principalmente como uma opção de depuração para desenvolvedores e não se aplica mais ao kernel 6.1 em. AL2023 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Suporte de hibernação
<a name="CONFIG_HIBERNATION"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Essa opção precisa ser ativada para oferecer suporte à capacidade de [hibernar sua instância sob demanda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) e para oferecer suporte à capacidade de [hibernar instâncias spot interrompidas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernate-spot-instances.html). 

### Geração de números aleatórios
<a name="kernel-rng"></a>

 O kernel do AL2023 é configurado para garantir que a entropia adequada esteja disponível para uso no EC2. 

### `CONFIG_INET_DIAG`
<a name="CONFIG_INET_DIAG"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Em AL2023, esse recurso é opcional e é construído como um módulo do kernel. 

### Zere toda a memória do alocador de páginas e placas do kernel na alocação e desalocação
<a name="kernel-init-on-alloc-free"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Essas opções estão desativadas AL2023 devido ao possível impacto no desempenho da ativação dessa funcionalidade por padrão. O comportamento `CONFIG_INIT_ON_ALLOC_DEFAULT_ON` pode ser ativado adicionando `init_on_alloc=1` à linha de comando do kernel e o comportamento `CONFIG_INIT_ON_FREE_DEFAULT_ON` pode ser ativado adicionando `init_on_free=1`. 

### Inicialize todas as variáveis da pilha como zero (`CONFIG_INIT_STACK_ALL_ZERO`)
<a name="CONFIG_INIT_STACK_ALL_ZERO"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Esta opção requer GCC 12 ou mais, embora seja AL2023 fornecida com o GCC 11. 

### Assinatura do módulo Kernel
<a name="kernel-config-modules"></a>

 AL2023 assina e valida as assinaturas dos módulos do kernel. A opção `CONFIG_MODULE_SIG_FORCE`, que exigiria que os módulos tivessem uma assinatura válida, não está habilitada para preservar a compatibilidade dos usuários que criam módulos de terceiros. Para usuários que desejam garantir que todos os módulos do kernel sejam assinados, [Módulo de segurança Linux (LSM) Lockdown](#CONFIG_SECURITY_LOCKDOWN_LSM) pode ser configurado para impor isso. 

### `kexec`
<a name="CONFIG_KEXEC"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Essa opção está ativada para que a funcionalidade `kdump` possa ser usada. 

### `IOMMU`Support
<a name="CONFIG_IOMMU_SUPPORT"></a>

 AL2023 ativa o suporte ao IOMMU. A opção `CONFIG_IOMMU_DEFAULT_DMA_STRICT` não está habilitada por padrão, mas essa funcionalidade pode ser configurada adicionando `iommu.passthrough=0 iommu.strict=1` à linha de comando do kernel. 

### `kfence`
<a name="CONFIG_KFENCE"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Suporte de `pty` antigo
<a name="CONFIG_LEGACY_PTYS"></a>

 AL2023 usa a PTY interface moderna (`devpts`). 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Módulo de segurança Linux (LSM) Lockdown
<a name="CONFIG_SECURITY_LOCKDOWN_LSM"></a>

 AL2023 constrói o `lockdown` LSM, que bloqueará automaticamente o kernel ao usar o Secure Boot. 

 A opção `CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY` não está ativada. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Quando não estiver usando o Secure Boot, é possível habilitar o LSM de bloqueio e configurá-lo conforme desejado. 

### Envenenamento de páginas
<a name="CONFIG_PAGE_POISONING"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Da mesma forma[Zere toda a memória do alocador de páginas e placas do kernel na alocação e desalocação](#kernel-init-on-alloc-free), isso está desativado no AL2023 kernel devido ao possível impacto no desempenho. 

### Protetor de pilha
<a name="CONFIG_STACKPROTECTOR"></a>

 O AL2023 kernel é construído com o recurso de proteção de pilha GCC ativado com a opção. `-fstack-protector-strong` 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### seccomp BPFAPI
<a name="CONFIG_SECCOMP"></a>

 O recurso de fortalecimento de seccomp é usado por softwares, como `systemd` e tempos de execução de contêineres, para fortalecer os aplicativos do espaço do usuário. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### tempo esgotado para `panic()`
<a name="CONFIG_PANIC_TIMEOUT"></a>

 O AL2023 kernel é configurado com esse valor definido como`0`, o que significa que o kernel não será reinicializado após entrar em pânico. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Isso é configurável por meio de `sysctl`, `/proc/sys/kernel/panic` e na linha de comando do kernel. 

### Modelos de segurança
<a name="CONFIG_SECURITY"></a>

 AL2023 ativa SELinux no modo Permissivo por padrão. Para obter mais informações, consulte [Configurando modos do SELinux para o AL2023](selinux-modes.md). 

 Os módulos [Módulo de segurança Linux (LSM) Lockdown](#CONFIG_SECURITY_LOCKDOWN_LSM) e `yama` também estão habilitados. 

### `/proc/kcore`
<a name="CONFIG_PROC_KCORE"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Randomização do deslocamento da pilha do kernel na entrada do syscall
<a name="CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Isso pode ser ativado configurando `randomize_kstack_offset=on` na linha de comando do kernel. 

### Verificações de contagem de referência (`CONFIG_REFCOUNT_FULL`)
<a name="CONFIG_REFCOUNT_FULL"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. No momento, essa opção não está habilitada devido ao possível impacto no desempenho. 

### Conhecimento do núcleos SMT pelo programador (`CONFIG_SCHED_CORE`)
<a name="CONFIG_SCHED_CORE"></a>

 O AL2023 kernel é construído com`CONFIG_SCHED_CORE`, o que permite o uso de aplicativos de espaço de usuário. `prctl(PR_SCHED_CORE)` Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Verifique se há corrupção na pilha em chamadas para `schedule()` (`CONFIG_SCHED_STACK_END_CHECK`)
<a name="CONFIG_SCHED_STACK_END_CHECK"></a>

 O AL2023 kernel é construído com `CONFIG_SCHED_STACK_END_CHECK` enabled. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Fortalecimento do alocador de memória
<a name="kernel-allocator-hardening"></a>

 O AL2023 kernel permite o fortalecimento do alocador de memória do kernel com as opções, e. `CONFIG_SHUFFLE_PAGE_ALLOCATOR` `CONFIG_SLAB_FREELIST_HARDENED` `CONFIG_SLAB_FREELIST_RANDOM` Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### suporte de depuração SLUB
<a name="CONFIG_SLUB_DEBUG"></a>

 O AL2023 kernel é ativado`CONFIG_SLUB_DEBUG`, pois essa opção ativa recursos opcionais de depuração para o alocador que podem ser ativados na linha de comando do kernel. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### CONFIG\$1STATIC\$1USERMODEHELPER
<a name="CONFIG_STATIC_USERMODEHELPER"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Isso ocorre porque `CONFIG_STATIC_USERMODEHELPER` requer suporte especial da distribuição que atualmente não está presente no Amazon Linux. 

### Texto do kernel somente para leitura e rodata (`CONFIG_STRICT_KERNEL_RWX` e `CONFIG_STRICT_MODULE_RWX`)
<a name="CONFIG_STRICT_KERNEL_RWX"></a>

 O AL2023 kernel é configurado para marcar o texto e a memória do kernel e do módulo do kernel como somente leitura, e a rodata memória não textual marcada como não executável. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### TCP suporte syncookie (`CONFIG_SYN_COOKIES`)
<a name="CONFIG_SYN_COOKIES"></a>

 O AL2023 kernel é construído com suporte para cookies de sincronização TCP. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Pilha virtualmente mapeada com páginas de proteção (`CONFIG_VMAP_STACK`)
<a name="CONFIG_VMAP_STACK"></a>

 O AL2023 kernel é construído com`CONFIG_VMAP_STACK`, permitindo pilhas de kernel mapeadas virtualmente com páginas de proteção. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Crie com avisos do compilador como erros (`CONFIG_WERROR`)
<a name="CONFIG_WERROR"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Registre a zeragem na função exit (`CONFIG_ZERO_CALL_USED_REGS`)
<a name="CONFIG_ZERO_CALL_USED_REGS"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Endereço mínimo para alocação de espaço de usuário
<a name="CONFIG_DEFAULT_MMAP_MIN_ADDR"></a>

 Essa opção de fortalecimento pode ajudar a reduzir o impacto dos bugs do ponteiro NULL do kernel. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `clang`opções específicas de endurecimento
<a name="kernel-hardening-clang"></a>

 O AL2023 kernel é construído com GCC em vez declang, portanto, a opção de `CONFIG_CFI_CLANG` fortalecimento não pode ser ativada, o que também torna `CONFIG_CFI_PERMISSIVE` inaplicável. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

## Opções de fortalecimento de kernel específicas do x86-64
<a name="kernel-hardening-x86-64"></a>


| Opção do `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_AMD_IOMMU`](#CONFIG_AMD_IOMMU)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_AMD_IOMMU_V2`](#CONFIG_AMD_IOMMU_V2)  | N/D |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_IA32_EMULATION`](#CONFIG_IA32_EMULATION)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_INTEL_IOMMU`](#CONFIG_INTEL_IOMMU)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_INTEL_IOMMU_DEFAULT_ON`](#CONFIG_INTEL_IOMMU_DEFAULT_ON)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_INTEL_IOMMU_SVM`](#CONFIG_INTEL_IOMMU_SVM)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_LEGACY_VSYSCALL_NONE`](#CONFIG_LEGACY_VSYSCALL_NONE)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_MODIFY_LDT_SYSCALL`](#CONFIG_MODIFY_LDT_SYSCALL)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_PAGE_TABLE_ISOLATION`](#CONFIG_PAGE_TABLE_ISOLATION)  | N/D |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_RANDOMIZE_MEMORY`](#CONFIG_RANDOMIZE_MEMORY)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_64`](#CONFIG_X86_64)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_MSR`](#CONFIG_X86_MSR)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_VSYSCALL_EMULATION`](#CONFIG_X86_VSYSCALL_EMULATION)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_X32`](#CONFIG_X86_X32)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_X86_X32_ABI`](#CONFIG_X86_X32_ABI)  | N/D |  n  | N/D |  n  | N/D |  n  | 

### Suporte para x86-64
<a name="CONFIG_X86_64"></a>

 O suporte básico para x86-64 inclui o suporte a bits Physical Address Extension (PAE) e no-execute (NX). Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Suporte para AMD e Intel IOMMU
<a name="kernel-x86-64-iommu"></a>

 O AL2023 kernel é construído com suporte para AMD e Intel. IOMMUs Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

 A opção `CONFIG_INTEL_IOMMU_DEFAULT_ON` não está definida, mas pode ser ativada passando `intel_iommu=on` para a linha de comando do kernel. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

 A `CONFIG_INTEL_IOMMU_SVM` opção não está habilitada no momento em AL2023. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Support para espaço de usuário de 32 bits
<a name="kernel-hardening-32bit-support"></a>

**Importante**  
 O suporte para espaço de usuário x86 de 32 bits está obsoleto e o suporte para execução de binários de espaço de usuário de 32 bits pode ser removido em uma futura versão principal do Amazon Linux. 

**nota**  
 Embora AL2023 não inclua mais pacotes de 32 bits, o kernel ainda suportará a execução de espaço de usuário de 32 bits. Consulte [Pacotes x86 (i686) de 32 bits](compare-with-al2.md#i686) para obter mais informações. 

 Para oferecer suporte à execução de aplicativos de espaço de usuário de 32 bits, AL2023 não ativa a `CONFIG_X86_VSYSCALL_EMULATION` opção e ativa as opções `CONFIG_IA32_EMULATION``CONFIG_COMPAT`, e. `CONFIG_X86_VSYSCALL_EMULATION` Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

 A ABI x32 nativa de 32 bits para processadores de 64 bits não está habilitada (`CONFIG_X86_X32` e `CONFIG_X86_X32_ABI`). Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Suporte ao registro específico do modelo x86 (MSR)
<a name="CONFIG_X86_MSR"></a>

 A opção `CONFIG_X86_MSR` está ativada para oferecer suporte `turbostat`. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### `modify_ldt` syscall
<a name="CONFIG_MODIFY_LDT_SYSCALL"></a>

 AL2023 não permite que programas de usuário modifiquem a Tabela Descritora Local (LDT) x86 com o syscall. `modify_ldt` Essa chamada é necessária para executar código segmentado ou de 16 bits e sua ausência pode interromper softwares `dosemu`, como a execução de alguns programas em WINE e algumas bibliotecas de threading muito antigas. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Remover o mapeamento do kernel no modo de usuário
<a name="CONFIG_PAGE_TABLE_ISOLATION"></a>

 AL2023 configura o kernel para que a maioria dos endereços do kernel não seja mapeada no espaço do usuário. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Randomize seções de memória do kernel
<a name="CONFIG_RANDOMIZE_MEMORY"></a>

 AL2023 configura o kernel para randomizar os endereços virtuais básicos das seções de memória do kernel. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

## Opções de endurecimento de kernel específicas do aarch64
<a name="kernel-hardening-aarch64"></a>


| Opção do `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ARM64_BTI`](#CONFIG_ARM64_BTI)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_ARM64_BTI_KERNEL`](#CONFIG_ARM64_BTI_KERNEL)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_ARM64_PTR_AUTH`](#CONFIG_ARM64_PTR_AUTH)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_ARM64_PTR_AUTH_KERNEL`](#CONFIG_ARM64_PTR_AUTH_KERNEL)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_ARM64_SW_TTBR0_PAN`](#CONFIG_ARM64_SW_TTBR0_PAN)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_UNMAP_KERNEL_AT_EL0`](#CONFIG_UNMAP_KERNEL_AT_EL0)  |  y  | N/D |  y  | N/D |  y  | N/D | 

### Identificação do alvo da filial
<a name="CONFIG_ARM64_BTI"></a>

 O AL2023 kernel habilita o suporte para Branch Target Identification (`CONFIG_ARM64_BTI`). Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

 [A `CONFIG_ARM64_BTI_KERNEL` opção não está habilitada porque é construída comGCC, e o suporte para compilar o kernel com essa opção está [atualmente desabilitado no kernel upstream devido a](https://github.com/torvalds/linux/commit/c0a454b9044fdc99486853aa424e5b3be2107078) um bug do gcc. AL2023 ](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671) Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Autenticação de ponteiro (`CONFIG_ARM64_PTR_AUTH`)
<a name="CONFIG_ARM64_PTR_AUTH"></a>

 O AL2023 kernel é construído com suporte para a extensão Pointer Authentication (parte das extensões ARMv8 .3), que pode ser usada para ajudar a mitigar as técnicas de Programação Orientada ao Retorno (ROP). O suporte de hardware necessário para autenticação de ponteiro no [Graviton](https://aws.amazon.com/ec2/graviton) foi introduzido com o Graviton 3. 

 A opção `CONFIG_ARM64_PTR_AUTH` está habilitada e comporta autenticação de ponteiro no espaço do usuário. Como a `CONFIG_ARM64_PTR_AUTH_KERNEL` opção também está ativada, o AL2023 kernel pode usar a proteção do endereço de retorno para si mesmo. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Emule o acesso privilegiado, nunca usando a comutação `TTBR0_EL1`
<a name="CONFIG_ARM64_SW_TTBR0_PAN"></a>

 Essa opção impede que o kernel acesse diretamente a memória do espaço do usuário, com `TTBR0_EL1` sendo definido apenas temporariamente como um valor válido pelas rotinas de acesso do usuário. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Desmapear o kernel ao executar no espaço do usuário
<a name="CONFIG_UNMAP_KERNEL_AT_EL0"></a>

 O AL2023 kernel é configurado para desmapear o kernel ao ser executado em userspace (). `CONFIG_UNMAP_KERNEL_AT_EL0` Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

# Login de metadados do repositório AL2023
<a name="repo-metadata-signing"></a>

A partir do lançamento`2023.11.20260406`, os AL2023 repositórios incluem assinaturas criptográficas para os metadados do repositório. Cada `repomd.xml` arquivo do repositório é acompanhado por um arquivo de assinatura GPG separado (`repomd.xml.asc`) que você pode usar para verificar a autenticidade e a integridade dos metadados do repositório antes que os pacotes sejam baixados.

Essa assinatura é adicional à assinatura do pacote RPM existente (`gpgcheck`), que verifica pacotes individuais. A assinatura de metadados do repositório verifica os metadados que descrevem o conteúdo do repositório, como a lista de pacotes disponíveis e suas somas de verificação.

## Como funciona a assinatura de metadados do repositório
<a name="repo-metadata-signing-overview"></a>

Quando AL2023 os repositórios são publicados, os metadados do repositório (`repomd.xml`) são assinados usando uma AWS chave KMS. A assinatura separada resultante (`repomd.xml.asc`) é colocada ao lado dos metadados no repositório.

Quando você habilita `repo_gpgcheck` na configuração do seu repositório, baixa e verifica DNF automaticamente a `repomd.xml.asc` assinatura em relação à chave pública GPG antes de usar os metadados do repositório. Se a verificação da assinatura falhar, DNF rejeita os metadados do repositório e não prossegue com as operações de pacote desse repositório. Para obter mais informações sobre`repo_gpgcheck`, consulte a [Referência DNF de configuração](https://dnf.readthedocs.io/en/latest/conf_ref.html).

Os seguintes AL2023 repositórios incluem metadados assinados:
+ Repositório principal () `amazonlinux`
+ Repositório Kernel Livepatch () `kernel-livepatch`
+ Repositório NVIDIA () `amazonlinux-nvidia`
+ Pacotes suplementares para o repositório Amazon Linux () `amazonlinux-spal`

## Diferença entre `gpgcheck` e `repo_gpgcheck`
<a name="repo-metadata-signing-gpgcheck-vs-repo-gpgcheck"></a>


| Configuração | O que ele verifica | Padrão em AL2023 | 
| --- | --- | --- | 
| gpgcheck=1 | Verifica a assinatura GPG de pacotes RPM individuais antes da instalação. | Habilitado | 
| repo\$1gpgcheck=1 | Verifica a assinatura GPG dos metadados do repositório (repomd.xml) antes de usar o repositório. | Desativado (ativado por padrão a partir da versão 2023.12 trimestral) | 

É altamente recomendável que você habilite os dois `gpgcheck` `repo_gpgcheck` e. Isso garante que os metadados do repositório e os pacotes individuais sejam verificados antes do uso.

## Habilitando a verificação de metadados do repositório
<a name="repo-metadata-signing-enable"></a>

Você pode habilitar a verificação de metadados do repositório para repositórios individuais atualizando seus arquivos de configuração.

**Importante**  
A partir da versão `2023.12` trimestral, `repo_gpgcheck=1` será habilitado por padrão nos arquivos de configuração do AL2023 repositório.

### Habilitar para um repositório específico
<a name="repo-metadata-signing-enable-per-repo"></a>

Os arquivos de configuração do AL2023 repositório são `/etc/yum.repos.d/` definidos `repo_gpgcheck=0` por padrão. Para habilitar a verificação de metadados do repositório, altere esse valor para `1` na configuração do repositório. Por exemplo, para habilitá-lo para o repositório principal:

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

## Verificando se a assinatura de metadados do repositório está funcionando
<a name="repo-metadata-signing-verify"></a>

Depois de habilitar`repo_gpgcheck=1`, você pode verificar se a verificação de metadados está funcionando limpando o DNF cache e atualizando os metadados:

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

Se a verificação de metadados for bem-sucedida, DNF importe a chave GPG (se ainda não tiver sido importada) e criará o cache de metadados sem erros. Você verá uma saída semelhante à seguinte:

```
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
Amazon Linux 2023 repository                      18 MB/s |  55 MB     00:03
Metadata cache created.
```

Se a verificação da assinatura falhar, DNF será exibida uma mensagem de erro indicando uma falha na verificação da assinatura GPG e falha na criação do cache de metadados.

## Chaves públicas GPG para repositórios AL2023
<a name="repo-metadata-signing-gpg-keys"></a>

As chaves públicas GPG usadas para verificação de metadados do repositório são instaladas pela configuração do repositório correspondente em. RPMs `/etc/pki/rpm-gpg/` A tabela a seguir lista as chaves públicas usadas por cada repositório.


| Repositório | Chave de assinatura do pacote | Chave de assinatura Repodata | Distribuído em | 
| --- | --- | --- | --- | 
| Núcleo (amazonlinux) | RPM-GPG-KEY-amazon-linux-2023 | RPM-GPG-KEY-amazon-linux-2023 | system-release | 
| Livepatch do Kernel () 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 | 

Essas chaves são instaladas automaticamente quando você instala o RPM de configuração do repositório correspondente.

# Inicialização segura UEFI ativada AL2023
<a name="uefi-secure-boot"></a>

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 saber mais, consulte [Requisitos para executar uma instância do EC2 no modo de inicialização da UEFI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launch-instance-boot-mode.html) no *Guia do usuário do Amazon EC2*.

AL2023 instâncias com UEFI Secure Boot habilitada aceitam somente código em nível de kernel, incluindo o kernel Linux e módulos, que são assinados por, para que você Amazon possa garantir que sua instância execute somente códigos em nível de kernel assinados por. AWS

 Para saber mais sobre instâncias do Amazon EC2 e UEFI Secure Boot, consulte [UEFI Secure Boot para instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) no *Guia do usuário do Amazon EC2*.

**Pré-requisitos**
+ Você deve estar usando uma AMI com a AL2023 versão 2023.1 ou superior.
+ O tipo de instância deve permitir a inicialização segura do UEFI. Para saber mais, consulte [Requisitos para executar uma instância do EC2 no modo de inicialização da UEFI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launch-instance-boot-mode.html) no *Guia do usuário do Amazon EC2*.

## Ativar a inicialização segura UEFI em AL2023
<a name="enablement"></a>

O padrão AL2023 AMIs incorpora um bootloader e um kernel assinado 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 no padrão AL2023 AMIs.

O modo de inicialização de AL2023 AMIs é definido para garantir `uefi-preferred` que as instâncias executadas com elas 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 saber mais 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) no *Guia do usuário do Amazon EC2*.

**Topics**
+ [Ativar a inicialização segura UEFI em AL2023](#enablement)
+ [Inscrição de uma instância existente](#enrollment-existing-instance)
+ [Registrar imagem do instantâneo](#secure-boot-amis)
+ [Atualizações de revogação](#revocation-updates)
+ [Como o UEFI Secure Boot funciona em AL2023](#shim-use)
+ [Inscrevendo suas próprias chaves](#enrolling-own-keys)

## Inscrição de uma instância existente
<a name="enrollment-existing-instance"></a>

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
   ```

1. 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**  
 AMIs No momento, o Amazon Linux não oferece 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
<a name="secure-boot-amis"></a>

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 saber mais sobre como criar e usar um blob binário, consulte [Criar um blob binário contendo um armazenamento de variáveis pré-preenchido](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami-with-uefi-secure-boot.html#uefi-secure-boot-optionB) 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 a AL2023 AMIs 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 usada para AL2023 criar a AMI.

Ao registrar uma imagem, recomendamos usar o parâmetro `BootMode` da API [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage.html) 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 saber mais sobre o NitroTPM, consulte [NitroTPM para instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) no *Guia do usuário do Amazon EC2*.

## Atualizações de revogação
<a name="revocation-updates"></a>

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 o UEFI Secure Boot funciona em AL2023
<a name="shim-use"></a>

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 saber mais sobre o UEFI Secure Boot, consulte [Como o UEFI Secure Boot funciona com instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-uefi-secure-boot-works.html) no *Guia do usuário do Amazon EC2*.

## Inscrevendo suas próprias chaves
<a name="enrolling-own-keys"></a>

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 em. 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami-with-uefi-secure-boot.html#uefi-secure-boot-optionA)) ou criar um blob binário pré-preenchido (consulte [ Criar um blob binário contendo um armazenamento de variáveis pré-preenchido](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami-with-uefi-secure-boot.html#uefi-secure-boot-optionB)).