隔離されたコンテナに基づくディストリビューション、Bottlerocket 1.7 のリリース

Bottlerocket 1.7.0 Linux ディストリビューションのリリースが公開されました。これは、分離されたコンテナーを効果的かつ安全に実行するために Amazon の参加のもとに開発されました。 ディストリビューションのツールキットと制御コンポーネントは Rust で書かれており、MIT および Apache 2.0 ライセンスに基づいて配布されます。 Amazon ECS、VMware、AWS EKS Kubernetes クラスター上での Bottlerocket の実行をサポートするほか、コンテナーのさまざまなオーケストレーションやランタイム ツールを可能にするカスタム ビルドやエディションの作成もサポートします。

このディストリビューションは、Linux カーネルと、コンテナーの実行に必要なコンポーネントのみを含む最小限のシステム環境を含む、アトミックかつ自動的に更新される分割できないシステム イメージを提供します。 この環境には、systemd システム マネージャー、Glibc ライブラリ、Buildroot ビルド ツール、GRUB ブートローダー、wicked network configurator、containerd 分離コンテナ ランタイム、Kubernetes コンテナ オーケストレーション プラットフォーム、aws-iam-authenticator、および Amazon ECS エージェントが含まれます。 。

コンテナ オーケストレーション ツールは、デフォルトで有効になり、API および AWS SSM エージェントを通じて管理される別の管理コンテナに含まれています。 基本イメージには、コマンド シェル、SSH サーバー、およびインタープリタ言語 (たとえば、Python や Perl がありません) がありません。管理ツールとデバッグ ツールは別のサービス コンテナに移動され、デフォルトでは無効になっています。

Fedora CoreOS、CentOS/Red Hat Atomic Host などの同様のディストリビューションとの主な違いは、潜在的な脅威に対するシステム保護の強化、OS コンポーネントの脆弱性の悪用の複雑化、コンテナの分離の強化という観点から、最大限のセキュリティを提供することに主に焦点を当てていることです。 コンテナーは、Linux カーネルの通常のメカニズム (cgroup、名前空間、seccomp) を使用して作成されます。 分離を強化するために、ディストリビューションでは SELinux を「強制」モードで使用します。

ルート パーティションは読み取り専用モードでマウントされ、/etc 設定を持つパーティションは tmpfs にマウントされ、再起動後に元の状態に復元されます。 /etc/resolv.conf や /etc/containerd/config.toml など、/etc ディレクトリ内のファイルの直接変更はサポートされていません。設定を永続的に保存するには、API を使用するか、機能を別のコンテナに移動する必要があります。 ルート パーティションの整合性の暗号検証には dm-verity モジュールが使用され、ブロック デバイス レベルでデータを変更しようとする試みが検出されると、システムが再起動されます。

ほとんどのシステム コンポーネントは Rust で書かれており、解放後のメモリ領域のアドレス指定、null ポインタの逆参照、バッファ オーバーランによって引き起こされる脆弱性を回避するためのメモリ安全なツールを提供します。 ビルド時に、デフォルトでコンパイル モード「--enable-default-pie」および「--enable-default-ssp」が使用され、実行可能ファイル (PIE) のアドレス空間ランダム化と、カナリア ラベル置換によるスタック オーバーフローに対する保護が有効になります。 C/C++ で書かれたパッケージの場合、「-Wall」、「-Werror=format-security」、「-Wp,-D_FORTIFY_SOURCE=2」、「-Wp,-D_GLIBCXX_ASSERTIONS」、および「-fstack-clash」フラグが追加されます。保護が含まれています。

新しいリリースでは:

  • RPM パッケージをインストールするときに、プログラムのリストを JSON 形式で生成し、それを /var/lib/bottlerocket/inventory/application.json ファイルとしてホスト コンテナーにマウントして、利用可能なパッケージに関する情報を取得することができます。
  • 「admin」コンテナと「control」コンテナが更新されました。
  • Go および Rust 言語のパッケージ バージョンと依存関係を更新しました。
  • サードパーティプログラムを使用したパッケージの更新バージョン。
  • kmod-5.10-nvidia の tmpfilesd 構成の問題を解決しました。
  • tuftool をインストールすると、依存関係のバージョンがリンクされます。

出所: オープンネット.ru

コメントを追加します