มีการประกาศ เปิด ตัวเวอร์ชันใหม่ของระบบปฏิบัติการ Linux "Bottlerocket 1.3.0"ซึ่งมีการเปลี่ยนแปลงและปรับปรุงหลายอย่าง โดยจุดเด่นคือการเพิ่มข้อจำกัดของ MCS ในนโยบาย SELinuxรวมถึงการแก้ไขปัญหาต่างๆ ของนโยบาย SELinux การรองรับ IPv6 ใน kubelet และ pluto และการรองรับการบูตแบบไฮบริดสำหรับ x86_64
สำหรับผู้ที่ไม่คุ้นเคยกับBottlerocketมันคือระบบปฏิบัติการ Linux ที่พัฒนาขึ้นโดยความร่วมมือกับ Amazon เพื่อใช้งานคอนเทนเนอร์แบบแยกส่วนได้อย่างมีประสิทธิภาพและปลอดภัย เวอร์ชันใหม่นี้ส่วนใหญ่เป็นการอัปเดตแพ็กเกจ แต่ก็มีฟีเจอร์ใหม่บางอย่างรวมอยู่ด้วย
ระบบปฏิบัติการนี้ มีลักษณะเด่นคือ การอัปเดต อิมเมจระบบที่ไม่สามารถแบ่งแยกได้โดยอัตโนมัติและเป็นแบบอะตอมิก ซึ่งประกอบด้วยเคอร์เนลของลินุกซ์และสภาพแวดล้อมระบบขั้นต่ำที่ประกอบด้วยส่วนประกอบที่จำเป็นสำหรับการทำงานของคอนเทนเนอร์เท่านั้น
เกี่ยวกับ Bottlerocket
สภาพแวดล้อมนี้ใช้ระบบจัดการระบบ systemd, ไลบรารี Glibc, Buildroot,ตัวจัดการการบูตGRUB , ตัวกำหนดค่าเครือข่าย wicked, รันไทม์containerdสำหรับการแยกคอนเทนเนอร์, แพลตฟอร์ม Kubernetes, AWS-iam-authenticator และเอเจนต์ Amazon ECS
เครื่องมือจัดการคอนเทนเนอร์ถูกจัดส่งมาในคอนเทนเนอร์การจัดการแยกต่างหาก ซึ่งเปิดใช้งานโดยค่าเริ่มต้นและจัดการผ่าน AWS SSM API และเอเจนต์ อิมเมจพื้นฐานไม่มีเชลล์คำสั่ง เซิร์ฟเวอร์ SSH และภาษาที่ใช้การตีความ (เช่น ไม่มี Python หรือ Perl): เครื่องมือผู้ดูแลระบบและเครื่องมือแก้ไขข้อบกพร่องถูกย้ายไปยังคอนเทนเนอร์บริการแยกต่างหาก ซึ่งปิดใช้งานโดยค่าเริ่มต้น
ความ แตกต่าง ที่สำคัญเมื่อเทียบกับระบบปฏิบัติการอื่นๆ ที่คล้ายคลึงกันเช่น Fedora CoreOS, CentOS/Red Hat Atomic Host คือการมุ่งเน้นไปที่การให้ความปลอดภัยสูงสุดในบริบทของการเสริมความแข็งแกร่งของระบบเพื่อป้องกันภัยคุกคามที่อาจเกิดขึ้น ทำให้ยากต่อการโจมตีช่องโหว่ในส่วนประกอบของระบบปฏิบัติการ และเพิ่มการแยกคอนเทนเนอร์ให้เป็นอิสระมากขึ้น
คุณสมบัติใหม่หลักของ Bottlerocket 1.3.0
เวอร์ชันใหม่ของการแจกจ่ายนี้เน้นการแก้ไขช่องโหว่ใน Docker Toolkitและ Runtime Container (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) ที่เกี่ยวข้องกับการกำหนดค่าสิทธิ์ที่ไม่ถูกต้อง ซึ่งทำให้ผู้ใช้ที่ไม่มีสิทธิ์สามารถออกจากไดเร็กทอรีโฮมและเรียกใช้โปรแกรมภายนอกได้
การเปลี่ยนแปลงที่เกิดขึ้น ได้แก่การเพิ่มการรองรับ IPv6 ให้กับ kubelet และ plutoรวมถึงการเพิ่มความสามารถในการรีสตาร์ทคอนเทนเนอร์หลังจากเปลี่ยนการกำหนดค่า และการเพิ่มการรองรับอินสแตนซ์ Amazon EC2 M6i ให้กับ eni-max-pods
สิ่งที่น่าสนใจอีกประการหนึ่งคือข้อจำกัดใหม่ของ MCS เกี่ยวกับนโยบาย SELinuxรวมถึงการแก้ไขปัญหาต่างๆ เกี่ยวกับนโยบาย SELinux นอกจากนี้ สำหรับแพลตฟอร์ม x86_64 ยังมีการใช้งานโหมดบูตแบบไฮบริด (พร้อมรองรับ EFI และ BIOS) และ Open-vm-tools เพิ่มการรองรับตัวกรองอุปกรณ์โดยใช้ชุดเครื่องมือ Cilium
ในทางกลับกัน ความเข้ากันได้กับเวอร์ชันของการแจกจ่าย aws-k8s-1.17 ที่ใช้ Kubernetes 1.17 ถูกขจัดออกไป ซึ่งเป็นเหตุผลที่แนะนำให้ใช้ตัวแปร aws-k8s-1.21 ที่เข้ากันได้กับ Kubernetes 1.21 นอกเหนือจาก ตัวแปร k8s โดยใช้การตั้งค่า cgroup runtime.slice และ system.slice
การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นในเวอร์ชันใหม่นี้:
- เพิ่มแฟล็กภูมิภาคในคำสั่ง aws-iam-authenticator
- รีสตาร์ทคอนเทนเนอร์โฮสต์ที่แก้ไขแล้ว
- อัปเดตคอนเทนเนอร์ควบคุมเริ่มต้นเป็น v0.5.2
- Eni-max-pods อัปเดตด้วยประเภทอินสแตนซ์ใหม่
- เพิ่มตัวกรองอุปกรณ์ cilium ใหม่ให้กับ open-vm-tools
- รวม / var / log / kdumpen logdog tarballs
- อัพเดทแพ็คเกจบุคคลที่สาม
- เพิ่มคำจำกัดความของ Wave เพื่อการใช้งานที่ช้า
- เพิ่ม 'infrasys' เพื่อสร้าง TUF infra บน AWS
- เก็บถาวรการโยกย้ายเก่า
- การเปลี่ยนแปลงเอกสาร
สุดท้ายนี้หากคุณสนใจเรียนรู้เพิ่มเติมสามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้