Está disponível o Bottlerocket 1.8, uma distribuição baseada em contêineres isolados

Foi publicado o lançamento da distribuição Linux Bottlerocket 1.8.0, desenvolvida com a participação da Amazon para executar contêineres isolados de forma eficaz e segura. O kit de ferramentas e os componentes de controle da distribuição são escritos em Rust e distribuídos sob as licenças MIT e Apache 2.0. Ele suporta a execução do Bottlerocket nos clusters Amazon ECS, VMware e AWS EKS Kubernetes, bem como a criação de compilações e edições personalizadas que permitem diferentes orquestrações e ferramentas de tempo de execução para contêineres.

A distribuição fornece uma imagem de sistema indivisível atualizada de forma atômica e automática que inclui o kernel do Linux e um ambiente de sistema mínimo que inclui apenas os componentes necessários para executar contêineres. O ambiente inclui o gerenciador de sistema systemd, a biblioteca Glibc, a ferramenta de compilação Buildroot, o carregador de inicialização GRUB, o configurador de rede perverso, o tempo de execução de contêiner isolado containerd, a plataforma de orquestração de contêineres Kubernetes, o aws-iam-authenticator e o agente Amazon ECS .

As ferramentas de orquestração de contêiner vêm em um contêiner de gerenciamento separado que é habilitado por padrão e gerenciado por meio da API e do AWS SSM Agent. A imagem base carece de um shell de comando, um servidor SSH e linguagens interpretadas (por exemplo, sem Python ou Perl) - as ferramentas administrativas e de depuração são movidas para um contêiner de serviço separado, que está desabilitado por padrão.

A principal diferença de distribuições semelhantes, como Fedora CoreOS, CentOS/Red Hat Atomic Host, é o foco principal em fornecer segurança máxima no contexto de fortalecer a proteção do sistema contra possíveis ameaças, complicando a exploração de vulnerabilidades em componentes do sistema operacional e aumentando o isolamento do contêiner. Os contêineres são criados usando os mecanismos regulares do kernel do Linux - cgroups, namespaces e seccomp. Para isolamento adicional, a distribuição usa o SELinux no modo "imposição".

A partição raiz é montada no modo somente leitura e a partição com configurações /etc é montada em tmpfs e restaurada ao seu estado original após uma reinicialização. A modificação direta de arquivos no diretório /etc, como /etc/resolv.conf e /etc/containerd/config.toml, não é suportada - para salvar permanentemente as configurações, você deve usar a API ou mover a funcionalidade para contêineres separados. Para verificação criptográfica da integridade da partição raiz, o módulo dm-verity é usado e, se for detectada uma tentativa de modificar os dados no nível do dispositivo de bloco, o sistema é reinicializado.

A maioria dos componentes do sistema é escrita em Rust, que fornece ferramentas seguras de memória para evitar vulnerabilidades causadas pelo endereçamento de uma área de memória após ela ter sido liberada, desreferenciando ponteiros nulos e saturações de buffer. Ao compilar, os modos de compilação "--enable-default-pie" e "--enable-default-ssp" são usados ​​por padrão para habilitar a randomização do espaço de endereço de arquivos executáveis ​​(PIE) e proteção contra estouros de pilha por meio da substituição de rótulo canário. Para pacotes escritos em C/C++, os sinalizadores "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" e "-fstack-clash" são adicionais incluído -proteção.

Na nova versão:

  • O conteúdo dos contêineres administrativos e de controle foi atualizado.
  • O tempo de execução para contêineres isolados foi atualizado para a ramificação containerd 1.6.x.
  • Os processos em segundo plano que coordenam o trabalho dos contêineres são reiniciados após alterações no armazenamento de certificados.
  • A capacidade de definir parâmetros de inicialização do kernel por meio da seção Configuração de inicialização é fornecida.
  • Habilitado ignorando blocos vazios ao verificar a integridade da partição raiz usando dm-verity.
  • Forneceu a capacidade de vincular nomes de host estaticamente em /etc/hosts.
  • A capacidade de gerar uma configuração de rede usando o utilitário netdog foi fornecida (o comando generate-net-config foi adicionado).
  • Novas opções de distribuição com suporte para Kubernetes 1.23 são propostas. Tempo de inicialização reduzido para pods no Kubernetes desativando o modo configMapAndSecretChangeDetectionStrategy. Adicionadas novas configurações do kubelet: ID do provedor e podPidsLimit.
  • Uma nova distribuição 'aws-ecs-1-nvidia' para Amazon Elastic Container Service (Amazon ECS) foi proposta e vem com drivers NVIDIA.
  • Adicionado suporte para dispositivos de armazenamento Microchip Smart Storage e MegaRAID SAS. Suporte expandido para placas Ethernet baseadas em chips Broadcom.
  • Versões atualizadas de pacotes e dependências para linguagens Go e Rust, bem como versões de pacotes com programas de terceiros. O Bottlerocket SDK foi atualizado para a versão 0.26.0.

Fonte: opennet.ru

Adicionar um comentário