第1章 OpenShift Sandboxed Containers について
OpenShift Sandboxed Containers は、オプションのランタイムとしてサンドボックスコンテナーを実行するための組み込みサポートを提供します。このランタイムは、専用の仮想マシン (VM) でコンテナーをサポートし、ワークロードの分離を改善します。
1.1. 機能
OpenShift Sandboxed Containers は、次の機能を提供します。
- 特権または信頼できないワークロードを実行する
特権コンテナーを実行することでクラスターノードが危険にさらされることなく、特定の特権を必要とするワークロードを安全に実行できます。特別な権限を必要とするワークロードには、次のものがあります。
- たとえば、低レベルのネットワーク機能にアクセスするために、CRI-O などの標準コンテナーランタイムによって付与されるデフォルトの機能を超えて、カーネルからの特別な機能を必要とするワークロード。
- 特定の物理デバイスにアクセスする場合など、ルート権限の昇格が必要なワークロード。OpenShift Sandboxed Containers を使用すると、特定のデバイスのみを仮想マシン (VM) に渡すことができるため、ワークロードがシステムの残りの部分にアクセスしたり、設定を誤ったりすることはありません。
set-uid
ルートバイナリーをインストールまたは使用するためのワークロード。これらのバイナリーは特別な権限を付与するため、セキュリティーリスクが生じる可能性があります。OpenShift Sandboxed Containers を使用すると、追加の権限は仮想マシンに制限され、クラスターノードへの特別なアクセスは許可されません。一部のワークロードでは、特にクラスターノードを設定するための特権が必要になる場合があります。このようなワークロードは、仮想マシンで実行すると機能しなくなるため、引き続き特権コンテナーを使用する必要があります。
- 各ワークロードのカーネルを確実に分離する
-
カスタムカーネルチューニング (
sysctl
、スケジューラーの変更、キャッシュチューニングなど) とカスタムカーネルモジュール (ツリー外
または特別な引数など) の作成を必要とするワークロードを実行できます。 - テナント全体で同じワークロードを共有する
-
同じ OpenShift Container Platform クラスターを共有するさまざまな組織の複数のユーザー (テナント) をサポートするワークロードを実行できます。このシステムでは、コンテナーネットワーク機能 (CNF) やエンタープライズアプリケーションなど、複数のベンダーのサードパーティーワークロードを実行することもできます。たとえば、サードパーティーの CNF は、カスタム設定がパケットチューニングや他のアプリケーションによって設定された
sysctl
変数に干渉することを望まない場合があります。完全に分離されたカーネル内で実行すると、"ノイジーネイバー" 設定の問題を防ぐのに役立ちます。 - ソフトウェアのテストに適した分離とサンドボックスがあることを確認する
-
既知の脆弱性がある、コンテナー化されたワークロードを実行したり、レガシーアプリケーションの問題を処理したりできます。この分離により、管理者は Pod に対する管理制御を開発者に付与することもできます。これは、開発者が、管理者が通常許可する設定を超えて設定をテストまたは検証したい場合に役立ちます。たとえば、管理者はカーネルパケットフィルタリング (eBPF) を安全かつ確実に開発者に委譲できます。eBPF には
CAP_ADMIN
またはCAP_BPF
権限が必要となるため、標準の CRI-O 設定では許可されません。Container Host ワーカーノード上のすべてのプロセスへのアクセスを許可することになるためです。同様に、管理者は SystemTap などの侵入型ツールへのアクセスを許可したり、開発中にカスタムカーネルモジュールのロードをサポートしたりできます。 - 仮想マシン境界を使用して、デフォルトのリソースに含まれるようにする
- デフォルトでは、CPU、メモリー、ストレージ、ネットワークなどのリソースは、OpenShift Sandboxed Containers でより堅牢で安全な方法で管理されます。OpenShift Sandboxed Containers は仮想マシンにデプロイされるため、分離とセキュリティーのレイヤーを追加することで、リソースへのアクセスをよりきめ細かく制御できます。たとえば、誤ったコンテナーは、仮想マシンで使用できる以上のメモリーを割り当てることができません。逆に、ネットワークカードまたはディスクへの専用アクセスが必要なコンテナーは、他のデバイスにアクセスすることなく、そのデバイスを完全に制御できます。