[Openstack] [openstack-dev][cinder] Nested Quota Driver and policy.json changes

Adam Young ayoung at redhat.com
Thu Jul 23 03:23:27 UTC 2015


On 07/22/2015 12:42 AM, Vilobh Meshram wrote:
> Hi,
>
> While developing Nested Quota Driver for Cinder, when performing 
> show/update/delete following restrictions apply :-
>
> 1. show : Only user who is admin or admin in parent or admin in root 
> project should be able to perform show/view the quota of the leaf 
> projects.
>
> 2. update : Only user admin in parent or admin in root project should 
> be able to perform update.
>
> 3. delete : Only user admin in parent or admin in root project should 
> be able to perform delete.
>
> In order to get the parent information or child list in nested 
> hierarchy calls need to be made to keystone. So as part of these 
> changes do we want to introduce 2 new roles in cinder one for 
> project_admin and one for root_admin so that the token can be scoped 
> at project/root level and only the permissible operation at the 
> respective levels as described above can be allowed.
>
> For example  :-
>
> A
>  |
> B
>  |
> C
>
> cinder quota-update C (should only be permissible from B or A)
>
> This can achieved either by :-
> 1. Introducing project_admin or cloud_admin rule in policy.json and 
> later populate the [1] with respective target[2][3]. Minises code 
> changes and gives the freedom to operators to modify policy.json and 
> tune changes accordingly.
> 2. Not introduce these 2 roles in policy.json by just make code 
> changes and additional logic in code to handle this but using this 
> option we can go to at max 1 level of heirarchy as in-order to fetch 
> more parent we will need to make a keystone call.


Try to think of the token scoping to the thing you are querying;  if you 
can avoid having to know the hierarchy, policy will be learer and easier 
to enforce.

I think it is safer to make a user get a token scoped to the project 
they want to query than to use a parent project token.

>
> Need opinion on which option can be helpful in longterm.
>
> -Vilobh
> [1] 
> https://github.com/openstack/cinder/blob/master/cinder/api/contrib/quotas.py#L33
> [2] 
> https://github.com/openstack/cinder/blob/master/cinder/api/extensions.py#L379
> [3] 
> https://github.com/openstack/cinder/blob/master/cinder/api/contrib/quotas.py#L109
>
>
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20150722/2a453ddf/attachment.html>


More information about the Openstack mailing list