16:01:04 #startmeeting policy 16:01:05 Meeting started Wed Dec 21 16:01:04 2016 UTC and is due to finish in 60 minutes. The chair is lbragstad. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:01:06 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:01:08 The meeting name has been set to 'policy' 16:01:21 ping raildo, ktychkova, dolphm, dstanek, rderose, htruta, atrmr, gagehugo, lamt, thinrichs, edmondsw, ruan_11 , ayoung 16:01:23 stevemar 16:01:30 #link agenda https://etherpad.openstack.org/p/keystone-policy-meeting 16:01:35 o/ 16:01:41 o/ 16:01:44 o/ 16:02:20 i imagine there are a few folks on vacation already - but we'll give it a minute or two 16:02:48 o/ 16:02:53 o/ 16:03:39 o/ 16:04:20 :) 16:05:03 alrighty - let's get started 16:05:04 #topic other project work around capability APIs 16:05:40 I'm curious if anyone else has see or looked at what other projects are doing with policy? 16:05:41 Barcelona session #link https://etherpad.openstack.org/p/ocata-xp-unified-capabilities-api 16:05:47 Cinder spec #link https://review.openstack.org/#/c/306930/ 16:06:15 nova and cinder have a need for a capabilities API, which they seem to have specs in place for 16:06:44 and the capability relates to not only policy, but also the abilities of the hardware incorporated into the deployment 16:08:11 so, i did not attend the capabilities session in barcelona, but i thought it wasn't authorization-related at all? 16:08:19 * nova's capabilities session 16:08:55 true 16:09:27 it sounds like the capabilities work is mostly focused on letting people know what a deployment supports from an infrastructure perspective 16:10:00 i did read the cinder spec and they mention using policy.json https://review.openstack.org/#/c/306930/12/specs/newton/discovering-system-capabilities.rst 16:10:02 #link https://review.openstack.org/#/c/306930/12/specs/newton/discovering-system-capabilities.rst 16:10:33 specifically around line 136 16:10:42 Some day OpenStack is actually going to discover Rest 16:10:58 not that they should rename it, but i think you could call it a "features" API 16:11:23 yeah 16:11:26 ayoung: yeah... 16:11:39 hi I am late 16:11:56 either way - i noticed the bits specific to the policy.json file while I was reading their spec 16:12:16 and i wanted to added it so that others could get up to speed on it if they wanted to 16:13:00 also - i followed up with johnthetubaguy on some of the work they have left in nova for the pulling policy into oslo.policy - https://etherpad.openstack.org/p/ocata-xp-unified-capabilities-api 16:13:04 the key piece that is missing between policy.json and the APIs is the mapping. THE API-refs, while a great start, are outside knowledge, and not part of the workflow. This effort seems to be targetting that 16:13:44 And, to be fair, there seems to be no standard way of doing RBAC via REST 16:14:25 ideally, it would be discoverable, say by making a call that does not have the role data on it, that fails, and comes back with a 401 + Here are the roles you need 16:14:43 from a capabilities standapoint, the way we do version discovery is the right approach: 16:15:04 for a keystone server, from /v3/ we should have links to the underlying APIs 16:15:12 sure - that makes sense 16:15:20 perhaps we would only show those to an authenticated user 16:16:09 it also seems like the AUTH_URL should point to a separate microservice than the rest of Keystone, and that micro service should be end user specific. Pretty much just the stuff we have under OS_FEDERATION. 16:16:16 I;'m working backwards here, of course 16:16:51 but...this is why, all those years ago, I wrote the HTML rendering code for Keystone. All this stuff is super clear when you try to do it from a web browser: 16:17:05 *everything* should be discoverable 16:17:31 to include "what role do I need to give to dolphm so he can do work in this new project" 16:17:46 and that is what this cinder propsal is attacking 16:17:54 * ayoung surrenders the conch 16:17:54 right 16:18:31 that's the main reason i wanted to bring that up here - because both cinder and nova are trying to solve that problem and it kinda relates to some discussions we've had around policy 16:19:47 i was thinking it would be a good point of view to consider as we hold this meeting, and keep their perspective in mind (hopefully we can get them in here for discussions that require both teams - but I thought it was a little early for that step right now) 16:20:22 does anyone have questions on this? 16:20:39 sooo lets say I get my RBAC work done 16:20:43 how would we use it? 16:20:57 ayoung you mean how would *they* use it? 16:21:02 lbragstad, yes 16:21:24 ideally, the policy names they have right now would be *like* roles 16:21:28 well - in my eyes, the thing they need from keystone is "what role is required to do this operation" 16:22:01 or - specifically, the information in order to make that decision 16:22:08 I think the current query interface would let them answer that question 16:22:21 once they know that, it is up to them how they want to determine capabilities specific to their project 16:22:22 but it is at the URL level 16:22:38 and there is still no mapping between URL and policy except in the code 16:22:52 that's another reason why I think having their input on your spec would be useful 16:22:53 even the Nova mechanism does not really provide a way to go from URL to policy rule 16:23:16 well - that's because it was derived off the policy.json file 16:23:17 is there anyone from cinder around? Can we pull them into this meeting? 16:23:42 ayoung not that I know of - but I didn't explicitly ask for them to be here 16:23:50 or nova for that matter 16:23:58 Cinder meeting is going on right now. 16:23:59 i think it would be good due diligence for us to review each of the their specs 16:24:14 smcginnis o/ 16:24:25 o/ 16:25:23 how about we, as a group, review #link https://review.openstack.org/#/c/377756/ and #link https://review.openstack.org/#/c/306930/ 16:26:09 to get a feel for how the different projects plan on interacting with keystone for the bits they need, and if there is a way we can smooth that out if possible? 16:26:09 lbragstad: That would be great to get your input on those. 16:26:39 as a follow up - I'd like the next part of that discussion to be involving ayoung's RBAC in middleware spec 16:27:23 Let me find the readable link 16:27:35 at that point - i think it would make sense to come together as a larger group and start discussing the overall direction 16:27:43 http://specs.openstack.org/openstack/keystone-specs/specs/keystone/ongoing/role-check-from-middleware.html 16:28:19 so, since we won't be having a policy meeting next week 16:28:28 THanks to all who reviewed it. I'd like to remind people that specs, just like code, can and should be amended as we learn more 16:28:37 #link http://specs.openstack.org/openstack/keystone-specs/specs/keystone/ongoing/role-check-from-middleware.html 16:28:49 a couple points worth pulling out: 16:28:59 Defaults are going to be super important 16:29:39 if we can make it so the default role for normal operations is "Member" and we can get that enforced everywhere, it makes it safe to then have a read-only role explicitly identified for certain operations 16:29:57 this has been requested for a long, long time 16:30:51 I'll take an action item to follow up with the nova folks about their work with policy (specifically oslo.policy) and #link https://review.openstack.org/#/c/377756/ 16:31:10 is anyone interested in doing the same with the cinder team? 16:31:42 FYI - our next policy meeting will be Tuesday, January 3rd 16:32:47 ayoung: ++ 16:32:54 #action lbragstad to follow up with the nova team on #link https://review.openstack.org/#/c/377756/ 16:34:28 #action lbragstad to follow up with the cinder team on #link https://review.openstack.org/#/c/306930/ 16:35:07 does anyone have questions on this so far? 16:35:22 As a reference to my earlier HTML statements 16:35:34 this is the code here that needs to be primarily changed to make it wo0rk 16:35:36 http://git.openstack.org/cgit/openstack/keystone/tree/keystone/middleware/core.py#n76 16:36:04 The JSON middleware assumes only JSON comes in or out, and that middleware, or a comparable one would have to look at the accepts headers. 16:36:18 I have an abandonded review from back in the XML-also days... 16:36:44 https://review.openstack.org/#/c/24443/ 16:36:52 ayoung ready to move on to the next topic? 16:36:57 yep 16:37:01 cool 16:37:02 #topic review policy use cases 16:37:20 #link https://etherpad.openstack.org/p/keystone-policy-usecases 16:37:23 dstanek has been collapsing a bunch of usecases and documenting them ^ 16:37:39 we've been spending the last few weeks going through them 16:38:02 I wanted to double check with folks to give them another look - and see if we're missing anything 16:38:21 Nicely cleaned up 16:38:59 I wonder if this should now be posted as something like a cross-project spec? 16:39:13 ayoung i would agree with that - as the next logical step 16:39:44 maybe not so much as a cross project spec - but some formal document 16:40:10 something saying "these are things we need in a policy engine" 16:40:34 which actually is a nice transition to our next topic 16:40:40 #topic project tag for RBAC capabilities 16:40:41 Heres a thought 16:40:50 why don't we move the standard roles to the top of that doc 16:40:55 ahhhh...too slow 16:41:01 before we transition... 16:41:02 ayoung go ahead 16:41:17 lets move the standard roles to the top of the etherpad, and break the use cases up under them 16:41:42 for example, we don't wamt a use case with any other actores 16:41:44 liek the one 16:41:52 s a protected resource I want to enforce some level of admin before you can operate on me?? (is this 6.2 above?) 16:42:15 THe protected resource is not the actor, that one should be moved to either the user or the admin 16:42:20 sure - that's one way we could organize it 16:42:40 Let me do that now, and we can drive on. 16:42:51 ayoung want to do that at the bottom so we can keep the original? 16:43:14 ayoung just so we don't lose information 16:43:57 Should not lose info... see? 16:44:03 ayoung yeah - that works 16:44:54 the reason for this topic was that there were discussion in Barcelona about proposing a tag for RBAC 16:45:01 s/tag/project tag/ 16:45:19 I think dolphm was the one who told me about that(?) 16:46:11 and I'm pretty sure this ties back to the cross project dolphm and jamielennox had for standarizing roles across projects 16:46:40 cross project spec* 16:47:17 I personally think its a good idea - and it would be really cool to be able to take a proposal to the PTG in Atlanta 16:47:48 does anyone else have thoughts? 16:48:55 lbragstad: I agree with you 16:49:08 lbragstad: we keystone bootstrap should have a command to setup the default roles 16:49:13 for an openstack deployment 16:49:29 it would be similar to our rolling upgrade tags 16:49:31 It would be great to get the Nova and Cinder teams to agree to have their capabilites meetings jointly, and then make sure we attend 16:49:34 default roles/base roles 16:49:57 https://governance.openstack.org/tc/reference/tags/index.html#project-assertion-tags 16:49:59 #Link https://governance.openstack.org/tc/reference/tags/index.html#project-assertion-tags 16:50:15 it would be similar to those - but geared towards RBAC 16:50:52 It would require some work from us before the PTG to come up with some documentation 16:51:18 a document for new projects to go to for understand how policy works today and what they need to do to get it to work 16:51:44 and a document for existing projects to be able to use as a roadmap for getting RBAC support 16:52:20 One thing that might be good to flesh out is the service specific roles they would want 16:52:32 I've alluded to that in the past in Neutron 16:52:33 ++ 16:52:51 right now that kind of documentation doesn't exist 16:53:11 "I can create a network" "I can only attach to existing networks" seem to be the most common stratification. I wonder if the same exists for Cinder 16:53:26 ayoung that's a good question 16:53:44 and something we'll need to ask them in order to flesh these things out 16:54:27 but it would be awesome to get a start on this right away in the new year so that we can bring it to the PTG in the event we want to propose a project assertion tag for RBAC 16:55:32 any other actions you think we need to do? 16:55:53 ayoung for an RBAC project assertion tag? 16:56:08 or to prep for PTG in general? 16:56:48 well - by the time the PTG is here I want to have detailed discussion with other projects about their approach to RBAC and policy in general 16:57:23 as well as have a document documenting policy in openstack for new and existing projects 16:57:38 (something they can use to achieve sensible RBAC) 16:57:51 and start using keystone as an example 16:58:02 So, based on who submitted the specs, we know who to talk to in Nova and CInder. SHould we id people in the other core projects? 16:58:07 (it's going to be hard to get other projects to follow our lead when we haven't followed it) 16:58:12 And, how wide a net do we need to cast? 16:58:55 I'd love to cast a wider net 16:59:19 but I think we have plenty to work on with the nova and cinder folks to get some work rolling - in the event other projects aren't ready 16:59:50 going to have to wrap up here - if anyone has left over questions, let's head to #openstack-keystone 17:00:00 thanks folks! 17:00:03 #endmeeting