On Wed, Apr 12, 2017 at 09:30:42AM -0400, Lance Richardson wrote:
> > From: "Lance Richardson" <lrich...@redhat.com>
> > To: "Ben Pfaff" <b...@ovn.org>
> > Cc: d...@openvswitch.org, "mickeys dev" <mickeys....@gmail.com>, "Russell 
> > Bryant" <russ...@ovn.org>
> > Sent: Thursday, 6 April, 2017 12:19:46 PM
> > Subject: Re: [RFC 0/5] role-based access controls for ovsdb-server, ovn-sb
> > 
> > > From: "Ben Pfaff" <b...@ovn.org>
> > > To: "Lance Richardson" <lrich...@redhat.com>
> > > Cc: d...@openvswitch.org, russe...@ovn.org, "mickeys dev"
> > > <mickeys....@gmail.com>
> > > Sent: Thursday, 6 April, 2017 12:03:44 PM
> > > Subject: Re: [RFC 0/5] role-based access controls for ovsdb-server, ovn-sb
> > > 
> > > On Mon, Mar 27, 2017 at 02:56:08PM -0400, Lance Richardson wrote:
> > > > This series implements role-based access control infrastructure for
> > > > ovsdb-server, and uses that infrastructure to apply role-based access
> > > > controls to the OVN_Southbound database. This implementation follows
> > > > the outline discussed at:
> > > > 
> > > >      
> > > > https://mail.openvswitch.org/pipermail/ovs-dev/2017-March/329801.html
> > > > 
> > > > With this series applied, enabling role-based ACLs is a matter of:
> > > > 
> > > >     - Configuring southbound ovsdb-server and ovn-controller to use SSL,
> > > >       configuring an ovn-controller "role" for SSL connections via e.g.:
> > > >          ovn-sbctl set-connection role=ovn-controller pssl:6642
> > > >     - Using unique certificates for each ovn-controller with a unique
> > > >       CN for each chassis, generated e.g. via:
> > > >          ovs-pki -B 1024 req+sign chassis1 switch
> > > >          ovs-pki -B 1024 req+sign chassis2 switch
> > > >          ovs-pki -B 1024 req+sign chassis3 switch
> > > >     - Starting the southbound ovsdb-server with the "--rbac" 
> > > > command-line
> > > >       option:
> > > >          --rbac=db:OVN_Southbound,RBAC_Role
> > > 
> > > This series is promising.
> > > 
> > > I'm a little concerned about additional per-DB command-line options
> > > because it makes it hard to add and remove databases at runtime.
> > > 
> 
> Hi Ben,
> 
> Could we extend the database schema format to add something like:
> 
>     "_rbac_role": <rbac-role-table-id>
> 
> If so, I think we could eliminate the need to do anything extra for RBAC
> support as databases are added/removed at runtime, and the --rbac= command-
> line option would no longer be necessary.

It's difficult to gracefully extend the database schema format because
of downgrades: if you start from an upgraded schema and then want to
downgrade to an older version of the schema, you can only do it with a
newer ovsdb-tool that understands the new feature, because the older
version of ovsdb-tool will reject it.  (The schema language could have
been designed better to avoid this problem in common cases, but I was
not insightful enough at the time.)  So, except for very important
features, I prefer to avoid extending the schema format.

In this case, I'm having trouble seeing the harm if ovsdb-server simply
treats any table named "RBAC_Role" as the RBAC role table.  I guess that
there is a risk that someone could start an older ovsdb-server with such
a schema, expecting that the RBACs are in effect, but actually leaving
the server fully open to any client.  I don't know whether that is
something to worry about.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to