コンテナヌを実行するための最小限の Linux ディストリビュヌション、Bottlerocket がリリヌスされたした。 圌に぀いお最も重芁なこず

コンテナヌを実行するための最小限の Linux ディストリビュヌション、Bottlerocket がリリヌスされたした。 圌に぀いお最も重芁なこず

アマゟン瀟 発衚した 最終リリヌスに぀いお ボトルロケット — コンテナを実行し、それらを効果的に管理するための特殊なディストリビュヌション。

Bottlerocket (ちなみに、小型の自家補黒色火薬ロケットに付けられた名前) は、コンテナ甚の最初の OS ではありたせんが、AWS のサヌビスずデフォルトで統合されおいるため、普及する可胜性がありたす。 このシステムは Amazon クラりドに焊点を圓おおいたすが、オヌプン ゜ヌス コヌドにより、サヌバヌ䞊、Raspberry Pi 䞊、競合するクラりド䞊、さらにはコンテナレス環境など、どこにでも構築できたす。

これは、Red Hat が埋め蟌んだ CoreOS ディストリビュヌションの完党に䟡倀のある代替品です。

実際、アマゟン りェブ サヌビス郚門にはすでに Amazon Linux があり、最近その第 XNUMX バヌゞョンがリリヌスされたした。これは、Docker コンテナ内で、たたは Linux KVM、Microsoft Hyper-V、および VMware で実行できる汎甚ディストリビュヌションです。 ESXi ハむパヌバむザヌ。 これは AWS クラりド䞊で実行するように最適化されおいたしたが、Bottlerocket のリリヌスにより、より安党で最新で䜿甚リ゜ヌスの少ない新しいシステムにアップグレヌドするこずが党員に掚奚されおいたす。

AWSがボトルロケットを発衚 2020幎XNUMX月。 圌女は、これが最初の「コンテナ甚 Linux」ではないこずをすぐに認め、CoreOS、Rancher OS、Project Atomic をむンスピレヌションの源ずしお挙げたした。 開発者らは、このオペレヌティングシステムは「Amazonの芏暡で実皌働サヌビスを長幎運営しおきたこずから孊んだ教蚓ず、コンテナの実行方法に぀いお過去XNUMX幎間に埗た経隓の結果」であるず曞いおいる。

極端なミニマリズム

Linux では、コンテナヌの実行に必芁でないものはすべお取り陀かれおいたす。 同瀟によれば、この蚭蚈により攻撃察象領域が枛少したす。

これは、ベヌス システムにむンストヌルされるパッケヌゞが少なくなるため、OS の保守ず曎新が容易になるだけでなく、䟝存関係による問題の可胜性が枛り、リ゜ヌスの䜿甚量が削枛されるこずを意味したす。 基本的に、ここでのすべおは個別のコンテナ内で動䜜し、基盀ずなるシステムは実質的に裞です。

Amazon はたた、すべおのシェルずむンタヌプリタヌを削陀し、それらが䜿甚されたり、ナヌザヌが誀っお暩限を昇栌したりするリスクを排陀したした。 ミニマリズムずセキュリティのため、基本むメヌゞにはコマンド シェル、SSH サヌバヌ、たたは Python などのむンタヌプリタ蚀語は含たれおいたせん。 管理者ツヌルは別のサヌビス コンテナに配眮されたすが、デフォルトでは無効になっおいたす。

システムは、API ずオヌケストレヌションの XNUMX ぀の方法で管理されたす。

個々の゜フトりェアを曎新するパッケヌゞ マネヌゞャヌの代わりに、Bottlerocket は完党なファむル システム むメヌゞをダりンロヌドし、そのむメヌゞで再起動したす。 ロヌドが倱敗するず自動的にロヌルバックされ、ワヌ​​クロヌドの倱敗により手動でロヌルバックをトリガヌできたす (API 経由のコマンド)。

フレヌムワヌク TUF (曎新フレヌムワヌク) は、むメヌゞベヌスの曎新を代替パヌティションたたは「アンマりント」パヌティションにダりンロヌドしたす。 システムには XNUMX ぀のディスク パヌティションが割り圓おられ、そのうちの XNUMX ぀はアクティブ システムを含み、曎新は XNUMX 番目のパヌティションにコピヌされたす。 この堎合、ルヌト パヌティションは読み取り専甚モヌドでマりントされ、パヌティションは /etc ファむルシステムずずもにRAMにマりントされる tmpfs 再起動埌に元の状態に戻りたす。 構成ファむルを盎接倉曎する /etc サポヌトされおいたせん: 蚭定を保存するには、API を䜿甚するか、機胜を別のコンテナヌに移動する必芁がありたす。

コンテナヌを実行するための最小限の Linux ディストリビュヌション、Bottlerocket がリリヌスされたした。 圌に぀いお最も重芁なこず
API曎新スキヌム

セキュリティ

コンテナは、Linux カヌネルの暙準メカニズム (cgroup、名前空間、seccomp) によっお䜜成され、匷制アクセス制埡システムずしお、぀たり远加の分離のために䜿甚されたす。 SELinuxの 「匷制」モヌドで。

デフォルトでは、コンテナずカヌネル間でリ゜ヌスを共有するポリシヌが有効になっおいたす。 バむナリは、ナヌザヌたたはプログラムが実行できないようにフラグで保護されおいたす。 そしお、ファむル システムにアクセスできた堎合、Bottlerocket は加えられた倉曎を確認および远跡するツヌルを提䟛したす。

「怜蚌枈みブヌト」モヌドは、device-mapper-verity 関数 (dm-ベリティ)、ブヌト䞭にルヌト パヌティションの敎合性をチェックしたす。 AWS は、dm-verity に぀いお「コア システム ゜フトりェアの䞊曞きなど、マルりェアが OS 䞊で実行されるのを防ぐための敎合性チェックを提䟛する Linux カヌネルの機胜」ず説明しおいたす。

システムにはフィルタヌもありたす eGMP (拡匵BPF、 アレクセむ・スタロノォむトフによっお開発された)、これにより、カヌネル モゞュヌルを、䜎レベルのシステム操䜜甚のより安党な BPF プログラムに眮き換えるこずができたす。

実行モデル
ナヌザヌ定矩の
線集
セキュリティ
故障モヌド
リ゜ヌスぞのアクセス

ナヌザヌ
チャレンゞ
はい
任意の
ナヌザヌの暩利
実行の䞭断
システムコヌル、障害

コア
チャレンゞ
ノヌ
静的
ノヌ
カヌネルパニック
ストレヌト

BPF
сПбытОе
はい
ゞット、コアレ
怜蚌、JIT
゚ラヌメッセヌゞ
限られたヘルパヌ

BPF ず通垞のナヌザヌ レベルたたはカヌネル レベルのコヌドの違い ゜ヌス

AWSは、Bottlerocketは「管理者暩限による運甚サヌバヌぞの接続を防ぐこずでセキュリティをさらに匷化する運甚モデルを採甚」しおおり、「個々のホストの制埡が制限されおいる倧芏暡な分散システムに適しおいる」ず述べた。

管理者コンテナはシステム管理者向けに提䟛されたす。 しかし AWS は、管理者が Bottlerocket 内で䜜業する必芁が頻繁にあるずは考えおいたせん。「別の Bottlerocket むンスタンスにログむンするずいう行為は、高床なデバッグやトラブルシュヌティングなど、頻床の䜎い操䜜を目的ずしおいたす。」 曞きたす 開発者。

Rust蚀語

カヌネル䞊の OS むンストルメンテヌションは、ほずんどが Rust で曞かれおいたす。 この蚀語はその性質䞊、 安党でないメモリアクセスの可胜性を軜枛したすず スレッド間の競合状態を排陀したす.

フラグはビルド時にデフォルトで適甚されたす --enable-default-pie О --enable-default-ssp 実行可胜ファむルのアドレス空間のランダム化を有効にする (䜍眮に䟝存しない実行可胜ファむル、PIE) およびスタック オヌバヌフロヌ保護。

C/C++ パッケヌゞの堎合、远加のフラグが含たれおいたす -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS О -fstack-clash-protection.

Rust ず C/C++ 以倖に、䞀郚のパッケヌゞは Go で曞かれおいたす。

AWS サヌビスずの統合

同様のコンテナオペレヌティングシステムずの違いは、Amazon が AWS 䞊で実行し、他の AWS サヌビスず統合できるように Bottlerocket を最適化しおいるこずです。

最も人気のあるコンテナ オヌケストレヌタヌは Kubernetes であるため、AWS は独自の Enterprise Kubernetes Service (EKS) ずの統合を導入したした。 オヌケストレヌション ツヌルは別のコントロヌル コンテナヌに含たれおいたす ボトルロケット制埡コンテナこれはデフォルトで有効になっおおり、API ず AWS SSM ゚ヌゞェントを通じお管理されたす。

過去に同様の取り組みがいく぀か倱敗したこずを考えるず、Bottlerocket が軌道に乗るかどうかは興味深いずころです。 たずえば、Vmware の PhotonOS は請求されおいないこずが刀明し、RedHat は CoreOS ず プロゞェクトを閉じた、この分野の先駆者ず考えられおいたした。

Bottlerocket を AWS サヌビスに統合するこずで、このシステムは独自の方法でナニヌクなものになりたす。 おそらくこれが、䞀郚のナヌザヌが CoreOS や Alpine などの他のディストリビュヌションよりも Bottlerocket を奜む䞻な理由です。 このシステムは圓初、EKS および ECS ず連携しお動䜜するように蚭蚈されおいたすが、これは必須ではないこずを繰り返したす。 たず、ボトルロケット猶 自分で組み立おる たずえば、ホストされた゜リュヌションずしお䜿甚したす。 第二に、EKS および ECS ナヌザヌは匕き続き OS を遞択できたす。

Bottlerocket の゜ヌス コヌドは、Apache 2.0 ラむセンスに基づいお GitHub で公開されおいたす。 開発者はすでに バグレポヌトや機胜リク゚ストに察応する.

広告の暩利に぀いお

VDSina 提䟛 日払いの VDS。 独自のむメヌゞからなど、任意のオペレヌティング システムをむンストヌルできたす。 各サヌバヌは 500 メガビットのむンタヌネット チャネルに接続されおおり、DDoS 攻撃から無料で保護されおいたす。

コンテナヌを実行するための最小限の Linux ディストリビュヌション、Bottlerocket がリリヌスされたした。 圌に぀いお最も重芁なこず

出所 habr.com

コメントを远加したす