การเปิดตัว Bottlerocket 1.1 ซึ่งเป็นการจำหน่ายตามภาชนะที่แยกได้

Доступен выпуск Linux-дистрибутива Bottlerocket 1.1.0, развиваемого при участии компании Amazon для эффективного и безопасного запуска изолированных контейнеров. Инструментарий и управляющие компоненты дистрибутива написаны на языке Rust и распространяются под лицензиями MIT и Apache 2.0. Поддерживается запуск Bottlerocket в кластерах Amazon ECS и AWS EKS Kubernetes, а также создание произвольных сборок и редакций, допускающих применение различных инструментов оркестровки и runtime для контейнеров.

การกระจายให้อิมเมจระบบที่แบ่งแยกไม่ได้และอัปเดตโดยอัตโนมัติซึ่งรวมถึงเคอร์เนล Linux และสภาพแวดล้อมระบบขั้นต่ำที่มีเฉพาะส่วนประกอบที่จำเป็นในการรันคอนเทนเนอร์ สภาพแวดล้อมประกอบด้วยตัวจัดการระบบ systemd, ไลบรารี Glibc, เครื่องมือบิลด์ Buildroot, bootloader ของ GRUB, ตัวกำหนดค่าเครือข่ายที่ชั่วร้าย, รันไทม์คอนเทนเนอร์แบบแยกคอนเทนเนอร์, แพลตฟอร์ม Kubernetes container orchestration, aws-iam-authenticator และตัวแทน Amazon ECS .

เครื่องมือการจัดการคอนเทนเนอร์มาในคอนเทนเนอร์การจัดการแยกต่างหากที่เปิดใช้งานตามค่าเริ่มต้นและจัดการผ่าน API และ AWS SSM Agent อิมเมจพื้นฐานไม่มีเชลล์คำสั่ง เซิร์ฟเวอร์ SSH และภาษาที่ตีความ (เช่น ไม่มี Python หรือ Perl) - เครื่องมือการดูแลระบบและการดีบักจะถูกย้ายไปยังคอนเทนเนอร์บริการแยกต่างหาก ซึ่งถูกปิดใช้งานตามค่าเริ่มต้น

ข้อแตกต่างที่สำคัญจากการกระจายที่คล้ายคลึงกัน เช่น Fedora CoreOS, CentOS/Red Hat Atomic Host คือการมุ่งเน้นหลักในการให้ความปลอดภัยสูงสุดในบริบทของการเสริมความแข็งแกร่งในการป้องกันระบบจากภัยคุกคามที่เป็นไปได้ การใช้ประโยชน์จากช่องโหว่ในส่วนประกอบระบบปฏิบัติการที่ซับซ้อน และเพิ่มการแยกคอนเทนเนอร์ คอนเทนเนอร์ถูกสร้างขึ้นโดยใช้กลไกปกติของเคอร์เนล Linux - cgroups, namespaces และ seccomp สำหรับการแยกเพิ่มเติม การแจกจ่ายใช้ SELinux ในโหมด "บังคับใช้"

พาร์ติชันรูทถูกเมาท์ในโหมดอ่านอย่างเดียว และพาร์ติชันที่มีการตั้งค่า /etc ถูกเมาท์ใน tmpfs และกู้คืนเป็นสถานะดั้งเดิมหลังจากรีสตาร์ท ไม่รองรับการแก้ไขไฟล์โดยตรงในไดเร็กทอรี /etc เช่น /etc/resolv.conf และ /etc/containerd/config.toml หากต้องการบันทึกการตั้งค่าอย่างถาวร คุณควรใช้ API หรือย้ายฟังก์ชันไปยังคอนเทนเนอร์แยกต่างหาก สำหรับการตรวจสอบความสมบูรณ์ของพาร์ติชันรูทด้วยการเข้ารหัส จะใช้โมดูล dm-verity และหากตรวจพบความพยายามในการแก้ไขข้อมูลที่ระดับอุปกรณ์บล็อก ระบบจะรีบูต

ส่วนประกอบของระบบส่วนใหญ่เขียนขึ้นใน Rust ซึ่งมีเครื่องมือที่ปลอดภัยสำหรับหน่วยความจำเพื่อหลีกเลี่ยงช่องโหว่ที่เกิดจากการกำหนดพื้นที่หน่วยความจำหลังจากที่พื้นที่หน่วยความจำว่างลง การยกเลิกการอ้างอิงพอยน์เตอร์ว่าง และบัฟเฟอร์เกิน เมื่อสร้าง โหมดการคอมไพล์ "--enable-default-pie" และ "--enable-default-ssp" จะถูกใช้เป็นค่าเริ่มต้นเพื่อเปิดใช้งานการสุ่มพื้นที่แอดเดรสของไฟล์เรียกทำงาน (PIE) และป้องกันการล้นของสแต็กผ่านการแทนที่ป้ายกำกับ canary สำหรับแพ็กเกจที่เขียนใน C/C++ แฟล็ก "-Wall", "-Werror=format-security", "-Wp, -D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" และ "-fstack-clash" รวม - การป้องกัน

ในรุ่นใหม่:

  • Предложено два новых варианта дистрибутива aws-k8s-1.20 и vmware-k8s-1.20 c поддержкой Kubernetes 1.20. В данных вариантах, а также в обновлённом варианте aws-ecs-1, задействован новый выпуск ядра Linux 5.10. Режим lockdown по умолчанию переведён в значение «integrity» (блокируются возможности, позволяющие вносить изменения в работающее ядро из пространства пользователя). Прекращена поддержка варианта aws-k8s-1.15 на базе Kubernetes 1.15.
  • Для Amazon ECS реализована поддержка сетевого режима awsvpc, позволяющего выделять отдельные сетевых интерфейсы и внутренние IP-адреса для каждой задачи.
  • Добавлены настройки для управления различными параметрами Kubernetes, включая QPS, лимиты на пулы и возможность подключения к облачным провайдерам, отличным от AWS.
  • В bootstrap-контейнере обеспечено ограничение доступа к данным пользователя при помощи SELinux.
  • Добавлена утилита resize2fs.

ที่มา: opennet.ru

เพิ่มความคิดเห็น