Κυκλοφορία του Bottlerocket 1.2, μια διανομή που βασίζεται σε απομονωμένα δοχεία

Διατίθεται η κυκλοφορία της διανομής Linux Bottlerocket 1.2.0, η οποία αναπτύχθηκε με τη συμμετοχή της Amazon για την αποτελεσματική και ασφαλή εκτόξευση απομονωμένων κοντέινερ. Τα εργαλεία και τα στοιχεία ελέγχου της διανομής είναι γραμμένα σε Rust και διανέμονται υπό τις άδειες MIT και Apache 2.0. Υποστηρίζει την εκτέλεση του Bottlerocket σε συμπλέγματα Amazon ECS, VMware και AWS EKS Kubernetes, καθώς και τη δημιουργία προσαρμοσμένων δομών και εκδόσεων που επιτρέπουν τη χρήση διαφόρων εργαλείων ενορχήστρωσης και χρόνου εκτέλεσης για κοντέινερ.

Η διανομή παρέχει μια ατομικά και αυτόματα ενημερωμένη αδιαίρετη εικόνα συστήματος που περιλαμβάνει τον πυρήνα του Linux και ένα ελάχιστο περιβάλλον συστήματος που περιλαμβάνει μόνο τα στοιχεία που απαιτούνται για την εκτέλεση κοντέινερ. Το περιβάλλον περιλαμβάνει το systemd system manager, τη βιβλιοθήκη Glibc, το εργαλείο δημιουργίας Buildroot, τον bootloader GRUB, τον κακόβουλο διαμορφωτή δικτύου, τον χρόνο εκτέλεσης απομονωμένου κοντέινερ, την πλατφόρμα ενορχήστρωσης κοντέινερ Kubernetes, τον 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, το οποίο παρέχει εργαλεία ασφαλή για τη μνήμη για την αποφυγή ευπάθειας που προκαλείται από την αντιμετώπιση μιας περιοχής μνήμης μετά την απελευθέρωσή της, την κατάργηση αναφοράς μηδενικών δεικτών και τις υπερβάσεις buffer. Κατά τη δημιουργία, οι τρόποι μεταγλώττισης "--enable-default-pie" και "--enable-default-ssp" χρησιμοποιούνται από προεπιλογή για να ενεργοποιηθεί η τυχαιοποίηση του χώρου διευθύνσεων των εκτελέσιμων αρχείων (PIE) και η προστασία από υπερχείλιση στοίβας μέσω αντικατάστασης ετικέτας καναρίνι. Για πακέτα γραμμένα σε C/C++, οι σημαίες "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" και "-fstack-clash" είναι επιπλέον περιλαμβάνεται -προστασία.

Στη νέα έκδοση:

  • Προστέθηκε υποστήριξη για καθρέφτες μητρώου εικόνων κοντέινερ.
  • Προστέθηκε η δυνατότητα χρήσης αυτουπογεγραμμένων πιστοποιητικών.
  • Προστέθηκε επιλογή για τη διαμόρφωση του ονόματος κεντρικού υπολογιστή.
  • Η προεπιλεγμένη έκδοση του κοντέινερ διαχείρισης έχει ενημερωθεί.
  • Προστέθηκαν ρυθμίσεις topologyManagerPolicy και topologyManagerScope για το kubelet.
  • Προστέθηκε υποστήριξη για συμπίεση πυρήνα χρησιμοποιώντας τον αλγόριθμο zstd.
  • Παρέχεται η δυνατότητα φόρτωσης εικονικών μηχανών στο VMware σε μορφή OVA (Open Virtualization Format).
  • Η έκδοση διανομής aws-k8s-1.21 έχει ενημερωθεί με υποστήριξη για Kubernetes 1.21. Η υποστήριξη για το aws-k8s-1.16 έχει διακοπεί.
  • Ενημερωμένες εκδόσεις πακέτων και εξαρτήσεις για τη γλώσσα Rust.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο