Rilascio di Bottlerocket 1.1, una distribuzione basata su contenitori isolati

È disponibile il rilascio della distribuzione Linux Bottlerocket 1.1.0, sviluppata con la partecipazione di Amazon per il lancio efficiente e sicuro di contenitori isolati. Gli strumenti e i componenti di controllo della distribuzione sono scritti in Rust e distribuiti sotto le licenze MIT e Apache 2.0. Supporta l'esecuzione di Bottlerocket nei cluster Amazon ECS e AWS EKS Kubernetes, oltre alla creazione di build ed edizioni personalizzate che consentono l'uso di vari strumenti di orchestrazione e runtime per i contenitori.

La distribuzione fornisce un'immagine di sistema indivisibile aggiornata atomicamente e automaticamente che include il kernel Linux e un ambiente di sistema minimo, inclusi solo i componenti necessari per eseguire i contenitori. L'ambiente include il gestore di sistema systemd, la libreria Glibc, lo strumento di compilazione Buildroot, il boot loader GRUB, il configuratore di rete Wicked, il runtime containerd per contenitori isolati, la piattaforma di orchestrazione dei contenitori Kubernetes, aws-iam-authenticator e Amazon Agente ECS.

Gli strumenti di orchestrazione dei container sono forniti in un container di gestione separato, abilitato per impostazione predefinita e gestito tramite l'API e l'agente AWS SSM. L'immagine di base è priva di shell dei comandi, server SSH e linguaggi interpretati (ad esempio, niente Python o Perl): gli strumenti di amministrazione e di debug sono collocati in un contenitore di servizi separato, che è disabilitato per impostazione predefinita.

La differenza fondamentale rispetto a distribuzioni simili come Fedora CoreOS, CentOS/Red Hat Atomic Host è l'obiettivo principale di fornire la massima sicurezza nel contesto del rafforzamento della protezione del sistema da possibili minacce, rendendo più difficile sfruttare le vulnerabilità nei componenti del sistema operativo e aumentando l'isolamento dei contenitori . I contenitori vengono creati utilizzando i meccanismi standard del kernel Linux: cgroup, spazi dei nomi e seccomp. Per ulteriore isolamento, la distribuzione utilizza SELinux in modalità “enforcing”.

La partizione root è montata in sola lettura e la partizione delle impostazioni /etc è montata in tmpfs e ripristinata al suo stato originale dopo un riavvio. La modifica diretta dei file nella directory /etc, come /etc/resolv.conf e /etc/containerd/config.toml, non è supportata: per salvare in modo permanente le impostazioni, è necessario utilizzare l'API o spostare la funzionalità in contenitori separati. Il modulo dm-verity viene utilizzato per verificare crittograficamente l'integrità della partizione root e, se viene rilevato un tentativo di modificare i dati a livello del dispositivo a blocchi, il sistema si riavvia.

La maggior parte dei componenti di sistema sono scritti in Rust, che fornisce funzionalità di sicurezza della memoria per evitare vulnerabilità causate da accessi successivi alla memoria libera, dereferenziazioni di puntatori nulli e sovraccarichi del buffer. Durante la compilazione per impostazione predefinita, le modalità di compilazione "-enable-default-pie" e "-enable-default-ssp" vengono utilizzate per abilitare la randomizzazione dello spazio degli indirizzi dei file eseguibili (PIE) e la protezione contro gli overflow dello stack tramite la sostituzione canary. Per i pacchetti scritti in C/C++, i flag “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” e “-fstack-clash” sono inoltre protezione abilitata".

Nella nuova versione:

  • Sono state proposte due nuove opzioni di distribuzione aws-k8s-1.20 e vmware-k8s-1.20 con supporto per Kubernetes 1.20. Queste varianti, così come la versione aggiornata aws-ecs-1, utilizzano la nuova versione del kernel Linux 5.10. La modalità di blocco è impostata su "integrità" per impostazione predefinita (le funzionalità che consentono di apportare modifiche al kernel in esecuzione dallo spazio utente sono bloccate). Il supporto per la variante aws-k8s-1.15 basata su Kubernetes 1.15 è stato interrotto.
  • Amazon ECS supporta la modalità di rete awsvpc, che consente di allocare interfacce di rete e indirizzi IP interni separati per ciascuna attività.
  • Aggiunte impostazioni per controllare vari parametri Kubernetes, tra cui QPS, limiti del pool e la possibilità di connettersi a provider cloud diversi da AWS.
  • Il contenitore bootstrap fornisce la restrizione dell'accesso ai dati dell'utente utilizzando SELinux.
  • Aggiunta l'utilità resize2fs.

Fonte: opennet.ru

Aggiungi un commento