Skip to content
  • Daniel P. Berrangé's avatar
    c8c99887
    authz: add QAuthZList object type for an access control list · c8c99887
    Daniel P. Berrangé authored
    
    
    Add a QAuthZList object type that implements the QAuthZ interface. This
    built-in implementation maintains a trivial access control list with a
    sequence of match rules and a final default policy. This replicates the
    functionality currently provided by the qemu_acl module.
    
    To create an instance of this object via the QMP monitor, the syntax
    used would be:
    
      {
        "execute": "object-add",
        "arguments": {
          "qom-type": "authz-list",
          "id": "authz0",
          "props": {
            "rules": [
               { "match": "fred", "policy": "allow", "format": "exact" },
               { "match": "bob", "policy": "allow", "format": "exact" },
               { "match": "danb", "policy": "deny", "format": "glob" },
               { "match": "dan*", "policy": "allow", "format": "exact" },
            ],
            "policy": "deny"
          }
        }
      }
    
    This sets up an authorization rule that allows 'fred', 'bob' and anyone
    whose name starts with 'dan', except for 'danb'. Everyone unmatched is
    denied.
    
    It is not currently possible to create this via -object, since there is
    no syntax supported to specify non-scalar properties for objects. This
    is likely to be addressed by later support for using JSON with -object,
    or an equivalent approach.
    
    In any case the future "authz-listfile" object can be used from the
    CLI and is likely a better choice, as it allows the ACL to be refreshed
    automatically on change.
    
    Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Tested-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Signed-off-by: default avatarDaniel P. Berrange <berrange@redhat.com>
    c8c99887
    authz: add QAuthZList object type for an access control list
    Daniel P. Berrangé authored
    
    
    Add a QAuthZList object type that implements the QAuthZ interface. This
    built-in implementation maintains a trivial access control list with a
    sequence of match rules and a final default policy. This replicates the
    functionality currently provided by the qemu_acl module.
    
    To create an instance of this object via the QMP monitor, the syntax
    used would be:
    
      {
        "execute": "object-add",
        "arguments": {
          "qom-type": "authz-list",
          "id": "authz0",
          "props": {
            "rules": [
               { "match": "fred", "policy": "allow", "format": "exact" },
               { "match": "bob", "policy": "allow", "format": "exact" },
               { "match": "danb", "policy": "deny", "format": "glob" },
               { "match": "dan*", "policy": "allow", "format": "exact" },
            ],
            "policy": "deny"
          }
        }
      }
    
    This sets up an authorization rule that allows 'fred', 'bob' and anyone
    whose name starts with 'dan', except for 'danb'. Everyone unmatched is
    denied.
    
    It is not currently possible to create this via -object, since there is
    no syntax supported to specify non-scalar properties for objects. This
    is likely to be addressed by later support for using JSON with -object,
    or an equivalent approach.
    
    In any case the future "authz-listfile" object can be used from the
    CLI and is likely a better choice, as it allows the ACL to be refreshed
    automatically on change.
    
    Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Tested-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Signed-off-by: default avatarDaniel P. Berrange <berrange@redhat.com>
Loading