Amazone
Bottlerocket (d'ailleurs le nom donné aux petites fusées à poudre noire faites maison) n'est pas le premier système d'exploitation pour conteneurs, mais il est probable qu'il se généralisera grâce à l'intégration par défaut avec les services AWS. Bien que le système soit axé sur le cloud Amazon, le code open source permet de le construire n'importe où : localement sur un serveur, sur un Raspberry Pi, dans n'importe quel cloud concurrent, et même dans un environnement sans conteneur.
Il s'agit d'un remplacement tout à fait digne de la distribution CoreOS que Red Hat a enterrée.
En fait, la division Amazon Web Services dispose déjà d'Amazon Linux, récemment sorti dans sa deuxième version : il s'agit d'une distribution à usage général qui peut être exécutée dans un conteneur Docker ou avec Linux KVM, Microsoft Hyper-V et VMware. Hyperviseurs ESXi. Il a été optimisé pour fonctionner sur le cloud AWS, mais avec la sortie de Bottlerocket, tout le monde est encouragé à passer à un nouveau système plus sécurisé, plus moderne et utilisant moins de ressources.
AWS a annoncé Bottlerocket
Minimalisme extrême
Linux est débarrassé de tout ce qui n'est pas nécessaire pour exécuter des conteneurs. Cette conception, selon l’entreprise, réduit la surface d’attaque.
Cela signifie que moins de packages sont installés sur le système de base, ce qui facilite la maintenance et la mise à jour du système d'exploitation, et réduit également le risque de problèmes dus aux dépendances, réduisant ainsi l'utilisation des ressources. Fondamentalement, tout ici fonctionne dans des conteneurs séparés et le système sous-jacent est pratiquement nu.
Amazon a également supprimé tous les shells et interprètes, éliminant ainsi le risque qu'ils soient utilisés ou que les utilisateurs élèvent accidentellement leurs privilèges. Par souci de minimalisme et de sécurité, l'image de base n'inclut pas de shell de commande, de serveur SSH ou de langages interprétés comme Python. Les outils d'administration sont placés dans un conteneur de services distinct, qui est désactivé par défaut.
Le système est géré de deux manières : via l'API et l'orchestration.
Au lieu d'un gestionnaire de packages qui met à jour des logiciels individuels, Bottlerocket télécharge une image complète du système de fichiers et y redémarre. Si un chargement échoue, il revient automatiquement en arrière, et un échec de charge de travail peut déclencher une restauration manuelle (commande via API).
Cadre /etc
monté avec le système de fichiers en RAM /etc
non pris en charge : pour enregistrer les paramètres, vous devez utiliser l'API ou déplacer la fonctionnalité dans des conteneurs séparés.
Schéma de mise à jour de l'API
sécurité
Les conteneurs sont créés par des mécanismes standard du noyau Linux - cgroups, espaces de noms et seccomp, et sont utilisés comme système de contrôle d'accès forcé, c'est-à-dire pour une isolation supplémentaire
Par défaut, les stratégies sont activées pour partager les ressources entre les conteneurs et le noyau. Les binaires sont protégés par des indicateurs pour empêcher les utilisateurs ou les programmes de les exécuter. Et si l'on accède au système de fichiers, Bottlerocket propose un outil pour vérifier et suivre les modifications apportées.
Le mode « démarrage vérifié » est implémenté via la fonction device-mapper-verity (
Il y a aussi un filtre dans le système
Modèle d'exécution
Défini par l'utilisateur
Compilation
sécurité
Mode de défaillance
Accès aux ressources
Utilisateur
défi
oui
Tout
droits de l'utilisateur
interrompre l'exécution
appel système, erreur
noyau
défi
aucun
statique
aucun
panique du noyau
прямой
FPB
événement
oui
JIT, CO-RE
vérification, JIT
Message d'erreur
aides limitées
En quoi BPF diffère du code au niveau de l'utilisateur ou du noyau standard
AWS a déclaré que Bottlerocket "utilise un modèle d'exploitation qui améliore encore la sécurité en empêchant les connexions aux serveurs de production avec des privilèges administratifs" et est "adapté aux grands systèmes distribués où le contrôle sur chaque hôte individuel est limité".
Un conteneur administrateur est fourni pour les administrateurs système. Mais AWS ne pense pas qu'un administrateur aura souvent besoin de travailler au sein de Bottlerocket : « Le fait de se connecter à une instance distincte de Bottlerocket est destiné à des opérations peu fréquentes : débogage et dépannage avancés. »
Langue rouille
L'instrumentation du système d'exploitation au-dessus du noyau est principalement écrite en Rust. Cette langue est par nature
Les drapeaux sont appliqués par défaut lors de la construction --enable-default-pie
и --enable-default-ssp
pour permettre la randomisation de l'espace d'adressage des fichiers exécutables (
Pour les packages C/C++, des indicateurs supplémentaires sont inclus -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
и -fstack-clash-protection
.
Outre Rust et C/C++, certains packages sont écrits en Go.
Intégration avec les services AWS
La différence avec les systèmes d'exploitation de conteneurs similaires est qu'Amazon a optimisé Bottlerocket pour fonctionner sur AWS et s'intégrer à d'autres services AWS.
L'orchestrateur de conteneurs le plus populaire est Kubernetes, c'est pourquoi AWS a introduit l'intégration avec son propre service Enterprise Kubernetes (EKS). Les outils d'orchestration sont fournis dans un conteneur de contrôle séparé
Il sera intéressant de voir si Bottlerocket décolle, compte tenu de l’échec de certaines initiatives similaires dans le passé. Par exemple, PhotonOS de Vmware s'est avéré non réclamé et RedHat a acheté CoreOS et
L'intégration de Bottlerocket dans les services AWS rend ce système unique à sa manière. C'est peut-être la principale raison pour laquelle certains utilisateurs peuvent préférer Bottlerocket à d'autres distributions telles que CoreOS ou Alpine. Le système est initialement conçu pour fonctionner avec EKS et ECS, mais nous répétons que cela n'est pas nécessaire. Premièrement, Bottlerocket peut
Le code source de Bottlerocket est publié sur GitHub sous la licence Apache 2.0. Les développeurs ont déjà
Comme la publicité
VDSina offre
Source: habr.com