2.2. sVirt のラベル付け
SELinux の保護下にある他のサービスと同様に、sVirt はプロセスベースのメカニズムと制限を使用して、ゲスト仮想マシンに追加のセキュリティーレイヤーを提供します。通常の使用では、sVirt がバックグラウンドで動作していることに気付くことさえありません。本セクションでは、sVirt のラベリング機能を説明します。
次の出力に示すように、sVirt を使用すると、仮想化された各ゲスト仮想マシンプロセスにラベルが付けられ、動的に生成されたレベルで実行されます。各プロセスは、レベルが異なる他の仮想マシンから分離されています。
# ps -eZ | grep qemu system_u:system_r:svirt_t:s0:c87,c520 27950 ? 00:00:17 qemu-kvm
以下の出力に示すように、実際のディスクイメージには、プロセスに一致するように自動的にラベルが付けられます。
# ls -lZ /var/lib/libvirt/images/* system_u:object_r:svirt_image_t:s0:c87,c520 image1
次の表に、sVirt を使用するときに割り当てることができるさまざまなコンテキストラベルの概要を示します。
SELinux コンテキスト | タイプ/説明 |
---|---|
system_u:system_r:svirt_t:MCS1 | ゲスト仮想マシンのプロセス。MCS1 はランダムな MCS フィールドです。約 500,000 個のラベルがサポートされます。 |
system_u:object_r:svirt_image_t:MCS1 | ゲスト仮想マシンのイメージ。これらのイメージの読み取り/書き込みができるのは、同じ MCS フィールドを持つ svirt_t プロセスのみです。 |
system_u:object_r:svirt_image_t:s0 | ゲスト仮想マシンの共有の読み取り/書き込みコンテンツ。すべての svirt_t プロセスは svirt_image_t:s0 ファイルに書き込むことができます。 |
sVirt を使用する場合は、静的ラベリングを実行することもできます。静的ラベルを使用すると、管理者はゲスト仮想マシンの MCS/MLS フィールドなど、特定のラベルを選択できます。静的にラベルを付けた仮想化ゲスト仮想マシンを実行する管理者は、イメージファイルに正しいラベルを設定する必要があります。ゲスト仮想マシンは常にそのラベルで起動し、sVirt システムは静的にラベル付けされた仮想マシンの内容のラベルを変更しません。これにより、MLS 環境で sVirt コンポーネントを実行できます。また、要件に応じて、システムで異なる機密レベルを持つゲスト仮想マシンを複数実行することもできます。