Ang paglabas ng Bottlerocket 1.7.0 Linux distribution ay nai-publish, na binuo kasama ang partisipasyon ng Amazon upang epektibo at ligtas na magpatakbo ng mga nakahiwalay na lalagyan. Ang toolkit at mga bahagi ng kontrol ng pamamahagi ay nakasulat sa Rust at ipinamahagi sa ilalim ng mga lisensya ng MIT at Apache 2.0. Sinusuportahan nito ang pagpapatakbo ng Bottlerocket sa mga cluster ng Amazon ECS, VMware, at AWS EKS Kubernetes, pati na rin ang paglikha ng mga custom na build at edisyon na nagbibigay-daan para sa iba't ibang mga tool sa orkestrasyon at runtime para sa mga container.
Ang pamamahagi ay nagbibigay ng atomically at awtomatikong na-update na hindi mahahati na imahe ng system na kinabibilangan ng Linux kernel at isang minimal na kapaligiran ng system na kinabibilangan lamang ng mga sangkap na kailangan para magpatakbo ng mga container. Kasama sa kapaligiran ang systemd system manager, ang Glibc library, ang Buildroot build tool, ang GRUB bootloader, ang masamang network configurator, ang containerd isolated container runtime, ang Kubernetes container orchestration platform, ang aws-iam-authenticator, at ang Amazon ECS agent .
Ang mga tool sa orchestration ng container ay nasa isang hiwalay na lalagyan ng pamamahala na naka-enable bilang default at pinamamahalaan sa pamamagitan ng API at AWS SSM Agent. Ang batayang imahe ay walang command shell, isang SSH server, at mga na-interpret na wika (halimbawa, walang Python o Perl) - ang mga tool sa administratibo at pag-debug ay inililipat sa isang hiwalay na lalagyan ng serbisyo, na hindi pinagana bilang default.
Ang pangunahing pagkakaiba sa mga katulad na distribusyon gaya ng Fedora CoreOS, CentOS/Red Hat Atomic Host ay ang pangunahing pagtutok sa pagbibigay ng maximum na seguridad sa konteksto ng pagpapalakas ng proteksyon ng system laban sa mga posibleng banta, pagpapakumplikado sa pagsasamantala ng mga kahinaan sa mga bahagi ng OS at pagtaas ng pagkakahiwalay ng container. Ang mga lalagyan ay nilikha gamit ang mga regular na mekanismo ng Linux kernel - cgroups, namespaces at seccomp. Para sa karagdagang paghihiwalay, ang pamamahagi ay gumagamit ng SELinux sa "pagpapatupad" na mode.
Ang root partition ay naka-mount sa read-only na mode, at ang partition na may mga setting ng /etc ay naka-mount sa tmpfs at naibalik sa orihinal nitong estado pagkatapos ng restart. Ang direktang pagbabago ng mga file sa direktoryo ng /etc, gaya ng /etc/resolv.conf at /etc/containerd/config.toml, ay hindi suportado - upang permanenteng i-save ang mga setting, dapat mong gamitin ang API o ilipat ang functionality sa hiwalay na mga container. Para sa cryptographic na pag-verify ng integridad ng root partition, ginagamit ang dm-verity module, at kung may nakitang pagtatangkang baguhin ang data sa block device level, magre-reboot ang system.
Karamihan sa mga bahagi ng system ay nakasulat sa Rust, na nagbibigay ng mga tool na ligtas sa memorya upang maiwasan ang mga kahinaan na dulot ng pagtugon sa isang lugar ng memorya pagkatapos itong mapalaya, pag-derefer ng mga null pointer, at pag-overrun ng buffer. Kapag bumubuo, ang mga compilation mode na "--enable-default-pie" at "--enable-default-ssp" ay ginagamit bilang default para paganahin ang executable address space randomization (PIE) at proteksyon laban sa mga stack overflow sa pamamagitan ng canary label substitution. Para sa mga package na nakasulat sa C/C++, ang mga flag na "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" at "-fstack-clash" kasama -proteksyon.
Sa bagong release:
- ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ RPM-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² host-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» /var/lib/bottlerocket/inventory/application.json Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ .
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Β«adminΒ» ΠΈ Β«controlΒ».
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ·ΡΠΊΠΎΠ² Go ΠΈ Rust.
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
- Π Π΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ tmpfilesd Π΄Π»Ρ kmod-5.10-nvidia.
- ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ tuftool ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π²Π΅ΡΡΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
Pinagmulan: opennet.ru