I'm looking for a way to allow a user that does not have the admin role to be
able to view and set quota (both Nova/Cinder) for all projects in an OpenStack
cluster. For us, the boundary of a Keystone region is coterminous with an
OpenStack cluster - we don't currently use any sort of federated Keystone.
Background: we are involved in a project (not the Keystone variety) for
integrating Bloomberg's internal budget processes closely with purchasing
compute resources. The idea of this system is that you will purchase some
number of standardized compute units and then you can allocate them to projects
in various OpenStack clusters as you wish. In order to do this, the tool needs
to be able to see what Keystone projects you have access to, see how much quota
that project has, and modify the quota settings for it appropriately.
For obvious reasons, I'd like to keep the API access for this tool to a
minimum. I know that if all else fails, the goal can be accomplished by giving
it admin access, so I'm keeping that in my back pocket, but I'd like to exhaust
all reasonable options first.
Allowing the tool to see project memberships and get project information is
easy. The quota part, however, is not. I'm not sure how to accomplish that
delegation, or how to give the tool admin-equivalent access for a very small
subset of the APIs. I'm unfamiliar with Keystone trusts and am not sure it
would be appropriate here anyway, because it would seem like I'd need to
delegate admin control to the role user in order to allow quota get/set. The
only other thing I can think of, and it seems really off the wall to me, is to:
* create a local domain in Keystone
* create one user in this local domain per every Keystone project and add it to
that project
* give this user a special role that allows it to set quotas for its project
* set up a massive many-to-one web of trusts where all of these users are
delegated back to the tool's account
This solution seems very convoluted, and the number of trusts the tool will
need to know about is going to grow linearly with the number of projects in
Keystone.
The clusters in question are all running Liberty, with Keystone v3 available.
Keystone is in a single-domain configuration, where the default domain is
sourcing users from LDAP and all other information is stored in SQL.
Anyone have any thoughts, or am I SOL and just have to give this thing admin
access and make sure the creds stay under lock and key?
_______________________________________________
OpenStack-operators mailing list
OpenStack-operators@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators