Fine-Grained Access Control

Registered by Joe Savak

In a large implementation, there can be many users each having some level of access to a shared pool of resources. Not all users need that much access though and there are cases where access must be restricted further. V3 introduces policies and that works for restricting access to certain capabilities (only a user with the role "admin" or group "foo" can create server in nova, etc). Policies bloat up though if they need to get down the resource level (only joe can delete server "ABC").

This blue print (which will be expanded upon) introduces the concept of a "resource group" in an attempt to provide highly-available, easily modifiable fine grained access control to OpenStack services.

1. The v3 core spec doesn’t allow for fine-grained access control. You can force it into policy blobs, but that isn’t scalable or transparent enough
2. Identity shouldn’t act as a CMDB, keeping track and storing references to all resources
3. Having a configurable group that represents resources across services is easier to maintain in identity
4. Token scope has layers (all optional), and
     a. Service endpoints the token has access to
     b. Which roles the token is scoped to
     c. Which policies the token is scoped to
5. Likewise, policies should have scope:
     a. Which resource groups the policies apply to
6. Services should make a call available to introspect which servers, files, etc make up that resource group

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Blocked
Milestone target:
None
Started by
Dolph Mathews
Completed by
Morgan Fainberg

Related branches

Sprints

Whiteboard

Current PBAC: http://i.imgur.com/hb1e3gK.png
Swift ACL: http://i.imgur.com/EhaCJXm.png

Given that a "tenant" is a "resource group", this is effectively blocked by asking every openstack service to store a list of owning tenants/projects for every resource, rather than just a single tenant.

This is something we will need to address in the Policy summit session in Kilo. Lets revisit this once we get to the point we have a real direction.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.