Atualizações de segurança de patches para nós híbridos - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Atualizações de segurança de patches para nós híbridos

Este tópico descreve o procedimento para executar patches in-loco de atualizações de segurança para pacotes e dependências específicos em execução nos nós híbridos. Como prática recomendada, sugerimos que você atualize regularmente seus nós híbridos para receber CVEs e patches de segurança.

Para ver as etapas de atualização da versão do Kubernetes, consulte Atualizar os nós híbridos do cluster.

Um exemplo de software que pode precisar de patches de segurança é containerd.

Containerd

containerd é o runtime padrão do contêiner Kubernetes e a dependência principal dos EKS Hybrid Nodes, usado para gerenciar o ciclo de vida do contêiner, incluindo a extração de imagens e o gerenciamento da execução do contêiner. Em um nó híbrido, você pode instalar o containerd por meio da CLI do nodeadm ou manualmente. Dependendo do sistema operacional do seu nó, o nodeadm instalará o containerd por meio do pacote distribuído pelo sistema operacional ou do pacote Docker.

Quando um CVE em containerd é publicado, você tem as opções a seguir de atualização para a versão corrigida do containerd em seus nós híbridos.

Etapa 1: verificar se o patch foi publicado nos gerenciadores de pacotes

Você pode verificar se o patch containerd CVE foi publicado em cada gerenciador de pacotes do sistema operacional respectivo consultando os boletins de segurança correspondentes:

Se você usa o repositório Docker como fonte do containerd, pode verificar os anúncios de segurança do Docker para identificar a disponibilidade da versão corrigida no repositório Docker.

Etapa 2: escolher o método para instalar o patch

Existem três métodos para corrigir e instalar atualizações de segurança in-loco nos nós. O método que você pode usar depende de se o patch está ou não disponível no sistema operacional do gerenciador de pacotes:

  1. Instale os patches com nodeadm upgrade que estão publicados nos gerenciadores de pacotes. Consulte a Etapa 2 a.

  2. Instale os patches diretamente com os gerenciadores de pacotes. Consulte a Etapa 2 b.

  3. Instale patches personalizados que não estão publicados nos gerenciadores de pacotes. Observe que há considerações especiais sobre patches personalizados para containerd, Etapa 2 c.

Etapa 2 a: aplicar patches com nodeadm upgrade

Depois de confirmar que o patch containerd da CVE foi publicado nos repositórios do sistema operacional ou do Docker (Apt ou RPM), você pode usar o comando nodeadm upgrade a fim de atualizar para a versão mais recente do containerd. Como não se trata de uma atualização da versão do Kubernetes, você deve passar sua versão atual do Kubernetes para o comando de upgrade do nodeadm.

nodeadm upgrade K8S_VERSION --config-source file:///root/nodeConfig.yaml

Etapa 2 b: aplicar patches com gerenciadores de pacotes do sistema operacional

Alternativamente, você também pode atualizar por meio do respectivo gerenciador de pacotes e usá-lo para atualizar o pacote containerd como se segue.

Amazon Linux 2023

sudo yum update -y sudo yum install -y containerd

RHEL

sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo sudo yum update -y sudo yum install -y containerd

Ubuntu

sudo mkdir -p /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update -y sudo apt install -y --only-upgrade containerd.io

Etapa 2 c: patch Containerd da CVE não publicado nos gerenciadores de pacotes

Se a versão corrigida de containerd estiver disponível apenas por outros meios e não no gerenciador de pacotes, por exemplo, nas versões do GitHub, você poderá instalar o containerd pelo site oficial do GitHub.

  1. Se a máquina já fizer parte do cluster como um nó híbrido, será necessário executar o comando nodeadm uninstall.

  2. Instale os arquivos binários oficiais do containerd . Você pode usar as etapas oficiais de instalação no GitHub.

  3. Execute o comando nodeadm install com o argumento --containerd-source definido como none, o que ignorará a instalação do containerd por meio do nodeadm. Você pode usar o valor de none na origem do containerd para qualquer sistema operacional que o nó estiver executando.

    nodeadm install K8S_VERSION --credential-provider CREDS_PROVIDER --containerd-source none