On Tue, Dec 6, 2011 at 1:06 PM, Somik Behera <so...@nicira.com> wrote:

> Hello Netstackers,
>
> I have the initial blueprint and associated design wiki available for
> AuthZ in Quantum. I have proposed to implement a simplistic first step
> AuthZ capability in Quantum leveraging Keystone tokens and roles.
>
> Blueprint --
> https://blueprints.launchpad.net/quantum/+spec/authorization-support-for-quantum
> Design wiki -- http://wiki.openstack.org/QuantumAuthZ
>

Hi Somik,

Thanks for putting this together.  A big part of Quantum's value is giving
tenants the ability to define network topologies via the API, so I see
adding authz is one of the things I think we MUST do in the Essex timeframe.

So my understanding of what your proposing is: create a pretty simple Authz
model that is compatible with QuantumManager.  Customer can create
networks, and these networks will be seen by QuantumManager, who actually
does the work of creating ports + attaching interfaces.  Because
QuantumManager is the only entity creating ports + attaching VIFs, we make
these actions "super-user" actions.  This simplifies things because we
don't need to authenticate vif attachments, since the "super user" is
implicitly trusted.   There are two tenant roles, one who can create/delete
networks for the tenant, and another that can only read networks (with the
point that they could understand the topology they get, or use those
networks with the os-create-server extension).

If so, I think this makes sense as a first cut at authz and fits with the
flow we outlined at the Essex summit and will finally let us leverage
keystone, which is great.  Some more comments below.

- It would be helpful if the "New Keystone roles for Quantum" section more
explicitly called out what API calls where allowed, including both the URL
and the METHOD.

- It seems like you propose letting a TenantAdmin and TenantUser read
ports, so they can see the current topology.  I think this makes sense.
Does your design propose that TenantAdmin has the ability to
create/modify/delete ports (other than the attachment)?  I'm not sure there
is really a point to doing so, and doing so prevents the cloud operator
from being able to apply a policy on the port that a tenant cannot
override.  What are your thoughts here?

- Do you expect that Quantum authz would be enabled or disabled by
default?  What does nova/glance do?  Would this be enabled/disabled by
editing the wsgi pipeline directly?

- when naming things and structuring the code, we should keep in mind that
we'll likely end up introducing more advanced authz mechanism in the
future.  If possible, it would be good to separate generic authz from code
that implements this exact authz logic (at least I'm guessing there will be
some common code).

- tenant admin won't actually be able to delete a network if there are
still VMs on it, since Quantum API (I believe) refuses to delete a network
if it has ports (is is it just attached ports?), and the tenant-admin
doesn't have permission to detach or delete ports.  I don't really think
this is a major issue, but I thought I would mention it.

- I assume "global shared" tenant id would commonly be the same value that
the tenant sets for the "quantum_default_tenant_id" flag in Nova, is that
correct?  If so, would probably be good to have the same default and the
same terminology.

- What does this mean in terms of changes to the Quantum client code in
Nova + Dashboard.  I imagine we need some additional flags to set there to
include a keystone auth credential so that client can get the appropriate
keystone token?  Do we have an issue covering this work?
Dan



>
> Thanks,
> Somik
>
> --
> Somik Behera | Nicira Networks, Inc. | so...@nicira.com<sbeh...@nicira.com> |
> office: 650-390-6790 | cell: 512-577-6645
>
> --
> Mailing list: https://launchpad.net/~netstack
> Post to     : netstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~netstack
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 
Mailing list: https://launchpad.net/~netstack
Post to     : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to