20.20. セキュリティーラベル
<seclabel> 要素により、セキュリティードライバーの動作を制御できます。基本的な動作モードは、'dynamic' で、libvirt が一意のセキュリティーラベルを自動的に生成します。'static' では、アプリケーションまたは管理者がラベルを選択します。'none' では、制限が無効になっています。動的ラベル生成では、libvirt は、仮想マシンに関連付けられたリソースに常に自動的に再ラベル付けします。静的ラベル割り当てでは、デフォルトで、管理者またはアプリケーションは、すべてのリソースにラベルが正しく設定されていることを確認する必要があります。ただし、必要に応じて自動再ラベル付けを有効にすることができます。
libvirt で複数のセキュリティードライバーを使用する場合は、複数の seclabel タグを使用できます。ドライバーごとに 1 つ、各タグで参照されるセキュリティードライバーは、属性
model を使用して定義できます。最上位のセキュリティーラベルの有効な入力 XML 設定は次のとおりです。
図20.69 セキュリティーラベル
入力 XML に
'type' 属性が指定されていない場合は、セキュリティードライバーのデフォルト設定 ('none' または 'dynamic') が使用されます。<baselabel> を設定し、'type' を設定しないと、型が 'dynamic' であると想定されます。自動リソース再ラベル付けが有効な実行中のゲスト仮想マシンの XML を表示する場合は、追加の XML 要素 imagelabel が含まれます。これは出力専用の要素であるため、ユーザー提供の XML ドキュメントでは無視されます。
以下の要素は、以下の値で操作できます。
type- libvirt が一意のセキュリティーラベルを自動的に生成するかどうかを判断するために、static、dynamic、またはnoneを指定します。model- 有効なセキュリティーモデル名で、現在アクティブなセキュリティーモデルと一致しますrelabel-yesまたはnoのいずれかです。動的ラベル割り当てを使用する場合は、これを常にyesにする必要があります。静的ラベル割り当てでは、デフォルトはnoになります。<label>- 静的ラベリングを使用する場合は、仮想ドメインに割り当てる完全なセキュリティーラベルを指定する必要があります。コンテンツの形式は、使用されているセキュリティードライバーによって異なります。SELinux- SELinux のコンテキストです。AppArmor- AppArmor プロファイル。DAC- 所有者とグループをコロンで区切ります。ユーザー/グループ名または uid/gid の両方として定義できます。ドライバーはまずこれらの値を名前として解析しようとしますが、先頭にあるプラス記号を使用すると、ドライバーが値を uid または gid として解析するように強制できます。
<baselabel>- 動的ラベル付けを使用する場合は、ベースセキュリティーラベルを指定するためにオプションで使用できます。コンテンツの形式は、使用されているセキュリティードライバーによって異なります。<imagelabel>- 出力専用の要素です。仮想ドメインに関連付けられたリソースで使用されるセキュリティーラベルを示します。コンテンツの形式は、使用しているセキュリティードライバーによって異なります。再ラベル付けが有効な場合、ラベル付けを無効にすることで、特定のソースファイル名に対して行われるラベル付けを微調整することもできます (ファイルが NFS またはその他に存在する場合に便利です)。セキュリティーラベル付けがないファイルシステム) または代替ラベルの要求 (管理アプリケーションがドメイン間ですべてではないが一部のリソースを共有できるようにする特別なラベルを作成する場合に便利です)。seclabel 要素がトップレベルドメイン割り当てではなく特定のパスに割り当てられている場合は、属性の relabel または sub-element ラベルのみがサポートされます。