volume type apis missing context.elevated
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
High
|
Mitsuhiro Tanino |
Bug Description
Within cinder volume types class api -> class VolumeTypesMana
The _create, _delete, _update methods all check to see if
the user is authorized to run this action.
The all have a
authorize(
call.
And the policy file looks like this:
etc/cinder/
"volume_
The problem is once you get down to
volume_type_create, volume_type_update, volume_type_destroy
these methods all have a decorator
@require_
What is missing is a context.elevated when each of the api routines
calls volume_
and volume_
This allows the operator to use the policy to control access through the api
Changed in cinder: | |
importance: | Undecided → High |
milestone: | none → mitaka-3 |
Changed in cinder: | |
assignee: | nobody → Mitsuhiro Tanino (mitsuhiro-tanino) |
Changed in cinder: | |
milestone: | mitaka-3 → mitaka-rc1 |
Hi,
I'm trying to understand more detail of this problem.
Currently, if a user have admin role, the user can create, delete, update volume types without problem based on the policy.json.
Why do we need context.elevated to these APIs? types.create, volume_ types.update, and volume_ types.destroy
- volume_
When I changed followings, or_owner" in policy.json delete/ update volume types.
- Add context.elevated to these APIs
- Change rule from "rule:admin_api" to "rule:admin_
all users who belongs different projects could create/
I think this situation is not desirable.
Am I missing something?