Amazon-selskapet первый значительный выпуск специализированного Linux-distribusjon , designet for å effektivt og sikkert kjøre isolerte containere. Distribusjonens verktøy og kontrollkomponenter er skrevet i Rust og Lisensiert under MIT- og Apache 2.0-lisensene. Prosjektet utvikles på GitHub og er åpent for bidrag fra fellesskapet. Systemdistribusjonsavbildningen er bygget for arkitekturene x86_64 og Aarch64. Operativsystemet er tilpasset for å kjøre på Amazon ECS- og AWS EKS Kubernetes-klynger. verktøy for å lage tilpassede bygg og utgaver som kan bruke andre orkestreringsverktøy, kjerner og kjøretider for containere.
Дистрибутив предоставляет ядро Linux и минимальное системное окружение, включающие только компоненты, необходимые для запуска контейнеров. Среди задействованных в проекте пакетов отмечаются системный менеджер systemd, библиотека Glibc, сборочный инструментарий
Buildroot, GRUB bootloader, nettverkskonfigurator , kjøretid for isolerte containere , Kubernetes-containerorkestreringsplattformen, aws-iam-authenticator-autentikatoren og Amazon ECS-agenten.
Distribusjonen oppdateres atomisk og leveres som et udelelig systembilde. To diskpartisjoner er allokert til systemet, hvorav den ene inneholder det aktive systemet, og den andre brukes til å kopiere oppdateringen. Etter at oppdateringen er distribuert, blir den andre partisjonen aktiv, mens den første partisjonen lagrer den forrige versjonen av systemet til neste oppdatering kommer, slik at brukere kan gå tilbake til den hvis det oppstår problemer. Oppdateringer installeres automatisk, uten administratorinnblanding.
Hovedforskjellen fra lignende distribusjoner som Fedora CoreOS er CentOS/Red Hat Atomic Host является первичная ориентация на обеспечение в контексте усиления защиты системы от возможных угроз, усложнения эксплуатации уязвимостей в компонентах ОС и повышения изоляции контейнеров. Контейнеры создаются при помощи штатных механизмов ядра Linux — cgroups, navnerom og seccomp. For ytterligere isolasjon bruker distribusjonen SELinux в режиме «enforcing», а для криптографической верификации целостности корневого раздела задействован модуль Hvis det oppdages et forsøk på å endre data på blokkenhetsnivå, starter systemet på nytt.
Rotpartisjonen er montert skrivebeskyttet, og konfigurasjonspartisjonen /etc er montert på en tmpfs-partisjon og gjenoppretter sin opprinnelige tilstand etter en omstart. Direkte endring av filer i /etc-katalogen, for eksempel /etc/resolv.conf og /etc/containerd/config.toml, støttes ikke. For å beholde innstillingene, bruk API-et eller flytt denne funksjonaliteten til separate containere.
De fleste systemkomponentene er skrevet i Rust, som tilbyr minnesikre funksjoner for å forhindre sårbarheter forårsaket av use-after-free, nullpeker-dereferanse og bufferoverløp. Standardbygget bruker kompileringsmodusene "--enable-default-pie" og "--enable-default-ssp" for å aktivere randomisering av adresserom for kjørbare filer () og beskyttelse mot stakkoverløp via canary-substitusjon.
For pakker skrevet i C/C++ er det inkludert ekstra flagg.
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash-protection".
Verktøy for containerorkestrering leveres separat , som er aktivert som standard og kontrolleres gjennom og AWS SSM Agent. Basisbildet mangler et kommandoskall, SSH-server og tolkede språk (for eksempel ingen Python eller Perl) – administratorverktøy og feilsøkingsverktøy finnes i , som er deaktivert som standard.
Kilde: opennet.ru
