20.20. 安全标签
<seclabel>
元素允许对安全驱动程序的操作进行控制。操作的基本模式是 'dynamic'
,其中 libvirt 会自动生成唯一安全标签,即应用程序/管理员选择标签,或 'none'
被禁用。
使用动态标签生成时,libvirt 始终会自动重新标记与虚拟机关联的任何资源。默认情况下,使用静态标签分配时,管理员或应用必须确保在任何资源上正确设置标签。但是,如果需要,可以启用自动重新标记。
如果 libvirt 使用了多个安全驱动程序,则可以使用多个 seclabel 标签,每个驱动程序都有一个,并且每个标签引用的安全驱动程序可以使用属性
模型
Valid input XML 配置来定义:
图 20.69. 安全标签
<seclabel type='dynamic' model='selinux'/> <seclabel type='dynamic' model='selinux'> <baselabel>system_u:system_r:my_svirt_t:s0</baselabel> </seclabel> <seclabel type='static' model='selinux' relabel='no'> <label>system_u:system_r:svirt_t:s0:c392,c662</label> </seclabel> <seclabel type='static' model='selinux' relabel='yes'> <label>system_u:system_r:svirt_t:s0:c392,c662</label> </seclabel> <seclabel type='none'/>
如果在输入 XML 中不提供
"type"
属性,则将使用安全驱动程序默认设置,该设置可以是 "none"
或 "dynamic"。
如果设置了 <baselabel>
,但没有设置 'type'
,则类型被假定为 'dynamic'
。当查看正在运行的客户机虚拟机的 XML 时,将包括自动资源重新标记活跃状态的 XML 元素(一个 XML 元素 imagelabel
)。这是仅限输出的元素,在用户提供的 XML 文档中会忽略它。
可使用以下值处理以下元素:
Type
- Eitherstatic
,dynamic
或none
来确定 libvirt 是否自动生成唯一的安全标签。Model
- 有效的安全模型名称,与当前激活的安全模型匹配重新标记
- Eitheryes
或no
.如果使用了动态标签分配,则必须始终是yes
。如果分配静态标签,它将默认为无
。<label>
- 如果使用静态标记,则必须指定要分配给虚拟域的完整安全标签。内容格式取决于使用中的安全驱动程序:SELinux
:SELinux 上下文.AppArmor
:AppArmor 配置集。DAC
:所有者和组,以冒号分隔。它们可以定义为用户/组名称或 uid/gid。驱动程序首先会尝试将这些值作为名称解析,但前导加号用于强制驱动程序将它们解析为 uid 或 gid。
<baselabel>
- 如果使用动态标记,则可以选择性地指定基础安全标签。内容的格式取决于使用中的安全驱动程序。<imagelabel>
- 这仅输出元素,显示与虚拟域关联的资源所使用的安全标签。内容格式取决于使用何时重新标记时的安全驱动程序,或者对特定源文件名进行的标签进行微调,方法是禁用标签(如果文件在 NFS 上实时或其他文件系统(如果缺少安全标签)或请求备用标签(在管理应用程序创建特殊标签时,不允许使用)来微调标签。当 seclabel 元素附加到特定路径而不是顶层域分配时,只支持属性重新标记或子元素标签。