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

Bottlerocket 1.3.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」フラグが追加されます。保護が含まれています。

新しいリリースでは:

  • アクセス権の不正な設定に関連し、特権のないユーザーがベースを超えることを可能にしていた、Docker およびランタイムcontainerd ツールの脆弱性 (CVE-2021-41089、CVE-2021-41091、CVE-2021-41092、CVE-2021-41103) を修正しました。ディレクトリに移動し、外部プログラムを実行します。
  • IPv6 サポートが kubelet と pluto に追加されました。
  • 設定を変更した後、コンテナを再起動することができます。
  • Amazon EC2 M6i インスタンスのサポートが eni-max-pods パッケージに追加されました。
  • Open-vm-tools には、Cilium ツールキットに基づいたデバイス フィルターのサポートが追加されました。
  • x86_64 プラットフォームの場合、ハイブリッド ブート モードが実装されています (EFI および BIOS をサポート)。
  • Rust 言語のパッケージ バージョンと依存関係を更新しました。
  • Kubernetes 8 に基づくディストリビューション バリアント aws-k1.17s-1.17 のサポートは廃止されました。 Kubernetes 8 をサポートする aws-k1.21s-1.21 バージョンを使用することをお勧めします。 k8s バリアントは、cgroup runtime.slice 設定と system.slice 設定を使用します。

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

コメントを追加します