14:01:17 #startmeeting OpenLMI (2013-11-04) 14:01:17 Meeting started Mon Nov 4 14:01:17 2013 UTC. The chair is sgallagh. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:01:17 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:01:26 #meetingname OpenLMI Public IRC Meeting 14:01:27 The meeting name has been set to 'openlmi_public_irc_meeting' 14:01:33 #chair sgallagh tsmetana jsafrane rdoty 14:01:34 Current chairs: jsafrane rdoty sgallagh tsmetana 14:01:40 #info Meetings are recorded and will be posted on www.openlmi.org. Opinions expressed do not necessarily reflect the reviews of the participant's employer. 14:01:49 #topic Roll Call 14:01:53 Who is around today? 14:02:05 Russ Doty 14:02:13 Klaus Kämpf 14:02:18 Praveen Paladugu 14:02:24 Jan Safranek 14:02:27 Radek Novacek 14:04:11 #info Attendance: Stephen Gallagher, Russ Doty, Klaus Kämpf, Praveen Paladugu, Jan Safranek, Radek Novacek 14:04:23 Tomas Smetana 14:04:27 #undo 14:04:28 Removing item from minutes: 14:04:36 #info Attendance: Stephen Gallagher, Russ Doty, Klaus Kämpf, Praveen Paladugu, Jan Safranek, Radek Novacek, Tomas Smetana 14:04:52 #topic Follow-ups 14:05:11 So last week we had a very lively discussion with praveen_pk 14:05:45 There were two main topics: access to the BMC and access-control at the provider level. 14:06:44 For publishing the BMC information, we worked out the initial model, and we should be good to start working o it 14:07:02 praveen_pk: That was discussed on the mailing list, yes? 14:07:11 sgallagh: yes 14:07:40 I saw rdoty's reply, but I'd also like to hear from one of the more low-level developers on the project about whether the models seem sensible. 14:07:40 For access-control at the provider level, I sent out an update to the mailing list on Friday 14:08:32 #info praveen_pk: For publishing the BMC information, we worked out the initial model, and we should be good to start working on it 14:09:08 I think that we need more groups - like storage op, storage admin, networking op, networking admin etc. 14:09:13 So as far as the access-control, the determination was that this wasn't being done by the CIMOM itself, but was instead being handed off to the providers to validate. 14:09:37 yes 14:09:38 jsafrane: Groups where? 14:09:54 (Sorry, trying to maintain context) 14:10:25 sgallagh: groups/roles of the users, like BMC's Administrator / Operator 14:10:39 Ah, in addition to those listed in the image attached to the email 14:10:53 Do we really want a policy layer in the cimom (resp. the providers) ? 14:10:57 wouldn't the groups have to be more or less hardcoded in the providers? 14:11:01 #url https://lists.fedorahosted.org/pipermail/openlmi-devel/2013-November/001858.html 14:11:10 #link https://lists.fedorahosted.org/pipermail/openlmi-devel/2013-November/001858.html 14:11:40 Let's back up a minute - what are our goals for access controls? 14:11:49 Delegation of ability to make changes? 14:11:57 I was thinking about a layer between the CIMOM and the provider - like CMPI authorization proxy 14:11:59 Control over who can read what? 14:12:01 #info In Dell's system, the user identity is passed to each individual provider for access-control determination. It is not performed by the CIMOM. 14:12:09 How would it be used? 14:12:53 iirc sfcb allows to run a provider with user-level privileges. This seems to be a more viable model as it hands off privilege control to the operating system. 14:13:11 the down-side is that only one user can access one provider :-/ 14:13:13 kkaempf: also pegasus can do that 14:13:40 kkaempf: Well, presumably a provider could be designed to fork/exec a worker process as a user 14:13:46 And that's irrespective of the CIMOM in use 14:13:52 Ack 14:15:19 I just fear we're adding lots of complexity for little use. 14:15:37 So I think Russ's point should be addressed first. 14:15:49 What are the goals we want to accomplish with access-control? 14:16:06 A system administrator should have full root access to the system. 14:16:15 What other users and roles are needed? 14:16:34 (And why?) 14:16:43 rdoty: Auditing comes readily to mind 14:17:12 How would that work? 14:17:43 We need to be able to pass the user's identity down as far as possible. 14:18:03 So we know exactly whose account was used to format the database partition, for example. 14:18:09 rdoty, the other big use case, is being able to see stuff, but not change stuff through an openlmi provider 14:18:26 stefw: can you provide some examples? 14:18:28 ie: monitor a system vs. configure it 14:18:34 yes, you want to be able to see disk state 14:18:40 We can already set read-only access in Pegasus 14:18:40 of all the servers on a network 14:18:45 #info Attendance: Stef Walter 14:18:55 but you don't want to be able to make changes 14:18:57 rdoty, that's good news 14:19:12 right now we can only set it globally for a user 14:19:14 so you can give the cimom policy that says certain users can only see things, but not run commands? 14:19:15 I think we already have user name available in the providers 14:19:28 that's a good start 14:19:50 ideally integrating with PolicyKit would allow cimom policy to be decided that way 14:19:51 stefw: Meaning that they either have no access, read-only access or full access to 100% of the providers. 14:20:07 Or rather, the providers in a namespace 14:20:24 But the inter-relationships of those providers tend to be so tight that separating the namespaces is... difficult 14:20:24 right 14:20:56 I'm working on a patch to OpenPegasus to enhance this limited access control to at least support groups 14:21:00 Right now it's a user whitelist only 14:22:24 But again, let's talk about requirements before implementations 14:22:25 kkaempf: what has been your experience with CIM and access controls? Badly needed or not an issue? 14:22:41 #topic Requirements of access control 14:23:00 #info rdoty: A system administrator should have full root access to the system. 14:23:23 #info stefw: being able to see stuff, but not change stuff through an openlmi provider 14:23:24 rdoty: Somewhere in between. There are no strict requirements but I do see the use-cases like 'read-only' or auditing. So I do support access control. 14:23:34 #info stefw: monitor a system vs. configure it 14:23:54 kkaempf: do we need anything more than read/write and readonly? 14:24:03 #info OpenPegasus has very limited trinary access control right now (user whitelist): No access, Read-Only and Read-Write on a user in a namespace 14:24:07 rdoty: I just fear we're opening a can of worms here. 14:24:11 it's not just about access control though 14:24:30 although that is a solid issue to tackle 14:24:33 kkaempf: Yes! How big is the can and how many worms? 14:24:39 it's about preserving the identity of the user performing the operation 14:24:42 rdoty: r/w and r/o plus logging the user identity for audit is sufficient imho 14:24:52 And are the worms harmless or poisonous? 14:25:04 rdoty: Your metaphor is falling apart 14:25:06 and making that identity available to auditing, access control, and session management 14:25:07 rdoty: we need to work upstream (cmpi definition) to get this properly established 14:25:24 That's an interesting place to put the work 14:26:10 kkaempf: One of the questions that has been raised is "do we need to let certain groups only see part of the CIM data?" 14:26:17 And if so, how do we regulate that? 14:27:17 Also, praveen_pk - you probably have the most experience of anyone on access controls for CIM. What are your observations? 14:27:17 rdoty: Such details belong to the application level. I can't imagine doing this properly on the cimom/provider level. 14:27:32 That's really the crux of the question to my mind. Assuming that we maintain the user identity all the way down the stack, do we have need of more detailed access-control than the trinary states I described above. 14:27:45 kkaempf: Ummm... Can you expand on "application"? 14:28:06 rdoty: the code issuing the cim/xml requests to the cimom. 14:28:12 Of course, I'm interested to hear jsafrane's thoughts on a CMPI authz proxy. 14:28:21 rdoty: unfortunately, don't have much experience with CIM access controls. One of our Dell Internal teams does, which I am not part of. 14:28:39 kkaempf: If we do it client side, can't people work around it by writing directly to CIM/XML? 14:28:52 praveen_pk: Would it be possible to convince a representative of such a team to participate in the email discussion or at next week's IRC meeting? 14:29:02 Our major focus is on providing CLI and scripting; I don't see how client side controls would work... 14:29:06 sgallagh, will try 14:29:17 praveen_pk: Thanks! 14:29:49 #action praveen_pk to attempt to recruit Dell access-control representation 14:30:05 rdoty: only if they have credentials to the cimom 14:30:34 rdoty: in sfcb you need to belong to the sfcb group 14:31:10 Right, and in Pegasus (right now), it's a per-user whitelist, defaulting only to 'root' and 'pegasus' (with the latter being disabled on the system by default) 14:32:16 We need to figure out how much security is enough. 14:32:40 And how much people will use. Which may not be the same... 14:32:48 stefw: If we got the user identity down to the CIMOM and had it logging its calls to the provider, is that sufficient for auditing in your mind? 14:32:51 and how much is a requirement... 14:33:00 ie: like auditing needs 14:33:17 Or is it more important to bring the user all the way into the provider (running *as* the user) and using something like PolicyKit to grant the escalation back up to invoke the change? 14:33:54 my assumption is that it is the latter, but it may be worth asking sgrubb about auditing requirements. 14:34:07 just for the record, AFAIK Microsoft has list of allowed users for a namespace, no 'roles'/'groups' 14:34:07 the entity doing auditing is a trusted part of the audit system 14:34:35 Well, sgrubb will always tell you that it must be audited at the kernel, but he's a purist :) 14:34:41 heh 14:35:01 i'm not against having caller do access control 14:35:16 in the cockpit project (a UI for servers) 14:35:19 stefw: how would that work? 14:35:22 we've talked about how we migth implement that 14:35:23 https://raw.github.com/cockpit-project/cockpit/master/doc/cockpit-transport.png 14:35:33 stefw: for the CLI/script case? 14:35:46 no, this is specific to UI cases 14:35:54 I can see how to do it inside Cockpit, but not for the API 14:36:06 we've discussed how we would not use the CIMOM for remote access at all 14:36:10 and not use it for authentication 14:36:12 Right, and the key question here is: how important is that? 14:36:27 (That was for Russ) 14:36:31 but locally connect to it once we have already authenticated and checked with system policy about a given CIM request. 14:37:03 stefw: Sure, but we do have the option to talk about moving that policy into either the CMPI layer or the provider layer 14:37:19 right, that would be the rigth architecture, in my opinion. 14:37:27 Given what praveen_pk has reported about Dell's usage, this seems to be acceptable to the CIM standard as well 14:37:34 that's good to hear 14:37:53 Umm, is Dell's implementation DMTF/CIM compliant? 14:37:55 So to me, it's a matter of striking the right balance between control and difficulty of implementation 14:38:08 the wrapper/local-access approach seems like a workaround for current identity/audit/access-control lacks in our cimom 14:38:18 rdoty: As near as I can tell, the providers are just returning an error when it can't complete 14:38:22 Which is perfectly valid 14:38:38 (without enough control, implementation may be moot; there is a minimum degree of security sysadmins will require) 14:39:23 sgallagh: my understanding is that Dell is using the DMTF/CIM technology stack for communications. 14:39:43 fche: don't sysadmins use root or su today? 14:39:59 fche: what security do sysadmins require? 14:40:15 that could be sufficient, but 'course we're talking across-the-network, so it's trickier 14:40:33 rdoty, sudo has auditability... 14:40:35 that's exactly the point 14:40:45 you get a loginuid assigned to thte process tree started from your ssh login 14:40:50 then when you sudo, your loginuid stays the same 14:40:58 so the kernel auditing infrastructure can tell it's rdoty doing that action 14:41:00 Sure, we need to have audit; no argument there. 14:41:03 even though he is now uid = 0 14:41:11 What about fine grain access controls? 14:41:25 from the cockpit perspective, we want to have roles, such as monitoring roles, or junior admin roles 14:42:24 just like you can give someone access to tail /var/log/messages 14:42:29 but not necessarily change it 14:44:00 in most cases the current crop of system management daemons allow for this. 14:44:10 stefw: I agree that this is ideal. I'm asking what level is *necessary*. 14:44:12 for example realmd lets you see what domain you're joined to, but not leave a domain, withuot credentials. 14:44:29 sgallagh, as i said above none of this is *necessary* if we wrap the CIMOM and only use local access 14:44:45 or not use CIM for certain operations 14:44:45 Well, that's from the perspective of a single consumer. 14:44:54 right 14:45:04 If we're talking about OpenLMI as the definitive remote scripting interface... discuss :) 14:45:08 CIM and OpenLMI retains it's current use cases without such modifications 14:45:34 in order to grow into further use cases, additional architecture requirements become apparent 14:48:57 I get the feeling we're all talking past one another. 14:49:20 sgallagh, yes perhaps 14:49:53 We acknowledge that we *can* implement as fine-grained an access control as one could possibly want. We can do the CMPI authz proxy or we can have all providers fork/exec as the user and request PolicyKit escalations. 14:50:25 But the question I'm trying to answer is: how much do we absolutely have to do (and will people be willing to actually configure)? 14:50:32 Where's our biggest bang for the buck? 14:51:06 to me, that really depends on the scripting requirement for access control 14:51:25 praveen_pk: it would be very helpful to have some information on how iDRAC users configure the access controls. 14:51:33 because from a UI perspective the solution of wrapping the CIMOM access and just using it locally, is a really decent solution. 14:51:47 Do they use them, do they just give everyone full access, or something in the middle? 14:51:56 rdoty: What are your thoughts on that: how much control (let's ignore auditing for the moment), do you think customers want from the scripting environment? 14:52:12 rdoty: will check and get back how the access controls are defined 14:52:30 sgallagh: that's the question we are wrestling with. 14:52:46 My take is that system administrators need full access (with auditing) 14:53:05 #info All agree that proper auditing is necessary 14:53:20 Other users, especially monitoring, may get by with restricted access. But how/where? 14:53:22 #info Much debate as to the level of access-control that is sufficient vs. complete. 14:53:50 #info rdoty My take is that system administrators need full access (with auditing) 14:53:56 I don't see a real use case for "allow this user the ability to configure storage but not see network configuration details" 14:54:00 #info rdoty Other users, especially monitoring, may get by with restricted access 14:54:12 #info rdoty I don't see a real use case for "allow this user the ability to configure storage but not see network configuration details" 14:54:22 I find myself largely in agreement with that assessment. 14:54:33 that's because that is completely the wrong granularity 14:54:42 I would suggest that we need specific real-world use cases for restricted access, which we can evaluate on a case by case basis. 14:54:44 when you see everything in terms of providers, then yes, it does look awkward. 14:55:08 For the moment, we should proceed with the Pegasus trinary model 14:55:08 stefw: What perspective do you see? 14:55:23 that within a provider a user may be able to do some operations, but not others 14:55:36 for example someone may be able to place a spare into a raid array 14:55:43 but not necessarily destroy the array 14:55:52 i'm speaking to the ideal here 14:56:06 and i understand this is hard to implement within the current architecture of the cimom 14:56:13 * sgallagh nods 14:56:21 PolicyKit and the various system management daemons that we have today, do have the architecture to implement this. 14:56:32 although not all do, and we don't take advantage of this 14:56:45 Ah. That is a critical point. 14:56:52 but in the future 14:56:56 stefw: So I take it that you recommend the "have all the providers run as the user and authorize with PolicyKit" approach? 14:56:57 "We aren't doing it today, but we could" 14:57:03 we *are* doing it today 14:57:06 but not everyone is doing it. 14:57:14 and it's not as fine grained as it it could be 14:57:16 Expand, please 14:57:18 by default 14:57:18 yes 14:57:35 * sgallagh cautions that we have two minutes remaining. 14:57:48 Let's take this to the mailing list. 14:57:59 I'd like to see details on use cases and capabilities. 14:58:12 but again to frame all of this 14:58:16 we have a solution 14:58:16 And I have grave reservations about the use of fine grain access control in the real world. 14:58:20 to implement these things 14:58:25 by not using all parts of the CIM stack 14:58:30 and it's a decent approach 14:58:34 if CIM wishes to fill more roles 14:58:43 then there's that balance between complexity of a requirement 14:58:44 rdoty: Well, the nice thing about fine-grained access control is that you can still flip all the bits to "yes" 14:58:48 compared with the use cases that it facilitates 14:59:12 sgallagh: at which point your investment is not justified... 14:59:34 rdoty: Yes, I realize that. 14:59:37 And if people are going to do that, why build the controls? 15:00:06 Well, the infrastructure to do that also overlaps very well with the infrastructure needed for in-depth auditing 15:00:24 So it may not be much extra effort atop that 15:00:32 sgallagh: should we have an in-depth discussion of auditing next week? 15:00:40 In any case, we're at the top of the hou 15:00:42 *hour 15:00:59 rdoty: Yes, I think we should consider having a formal agenda next week 15:01:27 #info Auditing will be the primary agenda item for next week's meeting 15:01:43 Thank you everyone for coming, sorry we ran a couple minutes over. 15:01:54 Please continue the discussion on the mailing list. 15:02:00 #endmeeting