libvirt/docs/schemas
Eric Blake 6cb4acce8b seclabel: extend XML to allow per-disk label overrides
When doing security relabeling, there are cases where a per-file
override might be appropriate.  For example, with a static label
and relabeling, it might be appropriate to skip relabeling on a
particular disk, where the backing file lives on NFS that lacks
the ability to track labeling.  Or with dynamic labeling, it might
be appropriate to use a custom (non-dynamic) label for a disk
specifically intended to be shared across domains.

The new XML resembles the top-level <seclabel>, but with fewer
options (basically relabel='no', or <label>text</label>):

<domain ...>
  ...
  <devices>
    <disk type='file' device='disk'>
      <source file='/path/to/image1'>
        <seclabel relabel='no'/> <!-- override for just this disk -->
      </source>
      ...
    </disk>
    <disk type='file' device='disk'>
      <source file='/path/to/image1'>
        <seclabel relabel='yes'> <!-- override for just this disk -->
          <label>system_u:object_r:shared_content_t:s0</label>
        </seclabel>
      </source>
      ...
    </disk>
    ...
  </devices>
  <seclabel type='dynamic' model='selinux'>
    <baselabel>text</baselabel> <!-- used for all devices without override -->
  </seclabel>
</domain>

This patch only introduces the XML and documentation; future patches
will actually parse and make use of it.  The intent is that we can
further extend things as needed, adding a per-device <seclabel> in
more places (such as the source of a console device), and possibly
allowing a <baselabel> instead of <label> for labeling where we want
to reuse the cNNN,cNNN pair of a dynamically labeled domain but a
different base label.

First suggested by Daniel P. Berrange here:
https://www.redhat.com/archives/libvir-list/2011-December/msg00258.html

* docs/schemas/domaincommon.rng (devSeclabel): New define.
(disk): Use it.
* docs/formatdomain.html.in (elementsDisks, seclabel): Document
the new XML.
* tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.xml:
New test, to validate RNG.
2011-12-30 10:57:58 +08:00
..
basictypes.rng Use a common xml type for ceph secret usage. 2011-10-28 16:01:14 -06:00
capability.rng Fix capabilities XML to use generic terms for suspend targets 2011-11-30 10:12:29 +00:00
domain.rng snapshot: update rng to support full domain in xml 2011-09-03 08:12:13 -06:00
domaincommon.rng seclabel: extend XML to allow per-disk label overrides 2011-12-30 10:57:58 +08:00
domainsnapshot.rng snapshot: also support disks by path 2011-09-05 07:03:04 -06:00
interface.rng xml: create an RNG file for common types and move some definitions there 2011-07-05 12:33:21 -04:00
Makefile.am snapshot: update rng to support full domain in xml 2011-09-03 08:12:13 -06:00
network.rng link-state: conf: Add element to XML for controling link state 2011-09-06 16:08:15 +08:00
networkcommon.rng bandwidth: Define schema and create documentation 2011-07-25 13:49:06 +08:00
nodedev.rng npiv: Expose fabric_name outside 2011-12-07 18:42:08 +08:00
nwfilter.rng Add support for STP filtering 2011-11-22 15:12:03 -05:00
secret.rng Use a common xml type for ceph secret usage. 2011-10-28 16:01:14 -06:00
storageencryption.rng Remove accidentally added UUID re-definition in storage schema 2009-09-14 19:11:13 +01:00
storagepool.rng Fix parsing of port attribute in storage XML configuration 2010-11-23 14:55:33 +00:00
storagevol.rng maint: convert leading TABs in *.rng files to equivalent spaces 2010-03-01 20:19:20 +01:00