<div dir="ltr">Hi Johannes,<div><br></div><div>this is still not too optimal, as AFAIK admin role is still global, so admin in tenant also means admin of whole OpenStack, thus it still can assign himself/whomever the 'service' role and get access to global stack list.</div><div><br></div><div>Best solution would probably be to create a separate domain in Keystone, and a service user in it, and check in policy json the actual domain+tenant+some role or username in this tenant. This domain and tenant are completely controlled by Magnum service then (creds are in the magnum config) - all similar to how Heat is working.</div><div><br></div><div>Cheers,</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">Dr. Pavlo Shchelokovskyy<div>Senior Software Engineer</div><div>Mirantis Inc</div><div><a href="http://www.mirantis.com" target="_blank">www.mirantis.com</a></div></div></div></div></div></div>
<br><div class="gmail_quote">On Mon, Jul 4, 2016 at 12:43 PM, Johannes Grassler <span dir="ltr"><<a href="mailto:jgrassler@suse.de" target="_blank">jgrassler@suse.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
Magnum has a periodic task that checks the state of the Heat stacks it creates<br>
for its bays. It does this across all users/tenants that have Magnum bays.<br>
Currently it uses a global stack-list operation to query these Heat stacks:<br>
<br>
<a href="https://github.com/openstack/magnum/blob/master/magnum/service/periodic.py#L83" rel="noreferrer" target="_blank">https://github.com/openstack/magnum/blob/master/magnum/service/periodic.py#L83</a><br>
<br>
Now the Magnum service user does not normally have permission to perform this operation,<br>
hence the Magnum documentation currently suggests the following change to<br>
Heat's policy.json:<br>
<br>
| stacks:global_index: "role:admin",<br>
<br>
This is less than optimal since it allows any tenant's admin user to perform a<br>
global stack-list. Would it be an option to have something like this in Heat's<br>
default policy.json?<br>
<br>
| stacks:global_index: "role:service",<br>
<br>
That way the global stack-list would be restricted to service users and seting<br>
Magnum (or other services that use Heat internally) wouldn't need a change to<br>
Heat's policy.json.<br>
<br>
If that kind of approach is feasible I'd be happy to submit a change.<br>
<br>
Cheers,<br>
<br>
Johannes<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Johannes Grassler, Cloud Developer<br>
SUSE Linux GmbH, HRB 21284 (AG Nürnberg)<br>
GF: Felix Imendörffer, Jane Smithard, Graham Norton<br>
Maxfeldstr. 5, 90409 Nürnberg, Germany<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</font></span></blockquote></div><br></div>