<div dir="ltr">This API was implemented in keystone in grizzly for centralized policy storage:<div><br></div><div>  <a href="https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/markdown/identity-api-v3.md#create-policy-post-policies">https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/markdown/identity-api-v3.md#create-policy-post-policies</a></div>
</div><div class="gmail_extra"><br clear="all"><div><div><br></div>-Dolph</div>
<br><br><div class="gmail_quote">On Fri, May 3, 2013 at 2:54 AM, Flavio Percoco <span dir="ltr"><<a href="mailto:flavio@redhat.com" target="_blank">flavio@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Greetings,<br>
<br>
Lately, I've been working on de-duplicating[0] policy's code throughout<br>
OpenStack. As part of the effort to improve policy's code, we had a<br>
brief discussion on #opnestack-glance that I'd like to bring up to the<br>
list.<br>
<br>
So far, projects have been using an on-host policy.json file to manage their<br>
RBAC rules - which certainly has made implementations easier and faster -<br>
However, there are some issues related to that:<br>
<br>
1) It is awkward for horizontally scaled deployments: It currently<br>
requires to be copied on all nodes running an instance of the<br>
application.<br>
2) It's more difficult to keep updated and aligned: When changing a<br>
rule, it needs to be updated on all nodes.<br>
<br>
In order to improve the above, it is necessary to have a common,<br>
per-app, database / cache for policies, which will allow apps for<br>
managing their policies from a "centralized" source and with less<br>
effort.<br>
<br>
For that to happen, current policy's implementation needs further<br>
modifications so that it can read those policies either from a file, a<br>
database or a cache.<br>
<br>
Some considerations:<br>
<br>
1) The change would be backward compatible.<br>
2) It would still support file based RBAC.<br>
3) Policy's form wont change. It would still be based on dictionaries<br>
and it'd be up to storage to de-normalize rules.<br>
4) Policies could be imported from a file.<br>
5) Policies could be updated using a manage command or by modifying a<br>
single policy file that is kept updated.<br>
<br>
Before digging more into this, I would like to have some feedback from<br>
you and see if there are some issues not being considered in the above.<br>
<br>
Any feedback is welcome!<br>
Cheers,<br>
FF<br>
<br>
<br>
[0] <a href="https://review.openstack.org/#/c/27721/" target="_blank">https://review.openstack.org/#<u></u>/c/27721/</a><span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
{ name: "Flavio Percoco",<br>
  gpg: "87112EC1",   internal: "8261386",<br>
  phone: "<a href="tel:%2B390687502386" value="+390687502386" target="_blank">+390687502386</a>",<br>
  irc: ["fpercoco", "flaper87"]}<br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</font></span></blockquote></div><br></div>