Amazon publica Bottlerocket 1.0.0, uma distribuição Linux baseada em contêineres isolados

Empresa Amazon apresentado primeiro lançamento significativo de uma distribuição Linux dedicada Foguete de garrafa 1.0.0, projetado para operar contêineres isolados com eficiência e segurança. As ferramentas e componentes de controle da distribuição são escritos em Rust e espalhar sob licenças MIT e Apache 2.0. O projeto está sendo desenvolvido no GitHub e está disponível para participação dos membros da comunidade. A imagem de implantação do sistema é gerada para arquiteturas x86_64 e Aarch64. O sistema operacional é adaptado para rodar em clusters Amazon ECS e AWS EKS Kubernetes. São fornecidos ferramentas para criar seus próprios assemblies e edições, que podem utilizar outras ferramentas de orquestração, kernels e runtime para containers.

A distribuição fornece o kernel Linux e um ambiente de sistema mínimo, incluindo apenas os componentes necessários para executar contêineres. Entre os pacotes envolvidos no projeto estão o gerenciador de sistemas systemd, a biblioteca Glibc e as ferramentas de montagem
Buildroot, bootloader GRUB, configurador de rede perverso, tempo de execução para contêineres isolados contêiner, plataforma de orquestração de contêineres Kubernetes, aws-iam-authenticator e agente Amazon ECS.

A distribuição é atualizada atomicamente e entregue na forma de uma imagem de sistema indivisível. Duas partições de disco são alocadas para o sistema, uma das quais contém o sistema ativo e a atualização é copiada para a segunda. Após a implantação da atualização, a segunda partição fica ativa e, na primeira, até a chegada da próxima atualização, a versão anterior do sistema é salva, para a qual você pode reverter se surgirem problemas. As atualizações são instaladas automaticamente sem intervenção do administrador.

A principal diferença de distribuições similares como Fedora CoreOS, CentOS/Red Hat Atomic Host é o foco principal em fornecer segurança máxima no contexto do reforço da proteção do sistema contra possíveis ameaças, dificultando a exploração de vulnerabilidades em componentes do SO e aumentando o isolamento dos contentores. Os contêineres são criados usando mecanismos padrão do kernel do Linux - cgroups, namespaces e seccomp. Para isolamento adicional, a distribuição usa SELinux no modo “aplicativo” e o módulo é usado para verificação criptográfica da integridade da partição raiz dm-Verity. Se for detectada uma tentativa de modificar dados no nível do dispositivo de bloco, o sistema será reinicializado.

A partição raiz é montada somente leitura e a partição de 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 configurações permanentemente, você deve usar a API ou mover a funcionalidade para contêineres separados.

A maioria dos componentes do sistema são escritos em Rust, que fornece recursos de segurança de memória para evitar vulnerabilidades causadas por acessos de memória pós-liberação, desreferências de ponteiro nulo e saturação de buffer. Ao construir por padrão, os modos de compilação “--enable-default-pie” e “--enable-default-ssp” são usados ​​para permitir a randomização do espaço de endereço de arquivos executáveis ​​(PIE) e proteção contra estouro de pilha por meio de substituição canário.
Para pacotes escritos em C/C++, sinalizadores adicionais estão incluídos
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" e "-fstack-clash-protection".

Ferramentas de orquestração de contêineres são fornecidas separadamente recipiente de controle, que é habilitado por padrão e controlado via API e Agente AWS SSM. A imagem base não possui um shell de comando, servidor SSH e linguagens interpretadas (por exemplo, sem Python ou Perl) - ferramentas administrativas e ferramentas de depuração estão localizadas em contêiner de serviço separado, que está desabilitado por padrão.

Fonte: opennet.ru

Adicionar um comentário