13:01:50 #startmeeting barbican 13:01:51 Meeting started Tue Feb 26 13:01:50 2019 UTC and is due to finish in 60 minutes. The chair is redrobot. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:01:52 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:01:54 The meeting name has been set to 'barbican' 13:01:59 o/ 13:02:01 #topic Roll Call 13:02:22 Courtesy ping for ade_lee hrybacki jamespage Luzi lxkong moguimar raildo rm_work xek 13:02:33 o/ 13:02:49 As usual our agenda can be found here: 13:02:54 o/ 13:03:02 #link https://etherpad.openstack.org/p/barbican-weekly-meeting 13:03:38 Good mornin' y'all! 13:03:51 * redrobot is moving a little slow from lack of coffee 13:04:27 Still awake rm_work ? 13:04:34 Ok, let's get started 13:04:43 #topic Action Items from last meeting 13:04:48 o/ 13:04:57 #link http://eavesdrop.openstack.org/meetings/barbican/2019/barbican.2019-02-19-13.00.html 13:05:05 There was only one action item 13:05:22 redrobot to follow up with Ade about Castellan Feature Freeze this Friday 13:05:35 I did look into that. 13:05:44 Thanks to moguimar we got a Castellan release 13:05:54 thanks to bnemec =P 13:06:15 I think he released it yesterday 13:06:47 #link https://pypi.org/project/castellan/#history 13:06:55 moguimar, :) 13:07:01 moguimar, looks like it was 13 hours ago 13:07:06 probably still warm from the oven 13:07:28 so not yesterday in my local time xD 13:07:43 And that reminds me 13:07:53 let's talk about Castellan 13:07:56 #topic Castellan 13:08:26 I honestly don't think Castellan is ready for prod use 13:08:48 My main concern is about how much access a single instance of Castellan has to a Vault backend 13:09:06 Originally we needed a root token, which is an anti-pattern 13:09:17 anything specific? that was the purpose of some of my changes re approle and backend configuration options 13:09:52 jamespage, my main concern is that even with the approle, a single instance of Castellan still needs read/write access to the root of a KV mount 13:10:04 well, it doesn't need to be a root token 13:10:20 i think people don't want security -- they want to say they are using "industry acceptable security" and move on with having a working cloud, lol 13:10:29 no its a token issued via the approle, which will have a very specific policy for access if done correctly 13:10:51 check-box security :P 13:11:19 jamespage, but the Vault backend still stores secrets under /kv/XXXXXXX 13:11:30 jamespage, so nothing else can use that same backend 13:11:39 kv mounts are inexpensive so giving each castellan consuming app a different KV backend provides a level of segregation 13:11:40 unless I'm completely misunderstanding approles 13:11:43 if you use it read only, you can have better policy for tokens 13:12:06 but there is no way to predict new secret ids to get policies to match that 13:12:18 unless we can change the mount point 13:12:40 and there is no option to update a secret 13:12:59 jamespage, hmm... does typical use of Vault include creating dozens of KV mountpoints? 13:13:30 because each app that uses Castellan would need its own KV mountpoint to get its own policy 13:13:50 I was working on a patch to get path support so that Castellan doesn't stuff everything in the root of the KV 13:13:50 depends on what you call mount point 13:13:52 #link https://review.openstack.org/#/c/638742/ 13:13:54 well not dozens 13:14:08 some - in my use case its 2 13:14:27 you can mount to secrets/vm-0001 13:14:37 let's say I wanted to keep my octavia and cinder secrets separate so that each service cannot access the other 13:14:44 right now I'd nead once KV mountpoint for each one. 13:15:05 secrets/octavia and secrets/cinder 13:15:14 different tokens with different policies 13:15:33 I think the point is that barbican is providing that isolation, not vault 13:15:38 well, now it would be octavia/ and cider/ right now. IIRC. secrets/ is the default KV mountpoint. 13:15:43 the KV is associated to barbican via castellan 13:16:02 Castellan is typically used when you don't want to use Barbican though 13:16:29 right - so in that case you would have a KV mountpoint for each castellan consumer 13:16:29 which brings me to point #2 why Castellan is not ready for prod: 13:17:09 right, which would result in potentially dozens of mountpoints ... 13:17:10 so you wanna state that on the project readme? 13:17:20 with that patch I linked you could have arbitrary paths in a single KV mountpoint 13:17:23 i don't know that it's "if you don't want barbican" 13:17:25 it's a way to be generic 13:17:40 rm_work +1 13:17:42 so people CAN use barbican ... OR just vault 13:17:51 depending on their needs 13:17:56 or be ready for the next one to come 13:18:01 some providers really don't need to enforce that level of isolation 13:18:17 so you could have a policy for secrets/cinder/* and secrets/octavia/*, etc 13:18:17 IE, non-public-clouds, with basically one group using it 13:19:19 which comes back to, some deployers really don't care about security so long as they can say 'we tried', or maybe really they just want SOMETHING to work 13:19:46 Heh yea 13:19:56 but then why not use simple crypto? 13:20:00 in any case, point #2 13:20:11 Castellan behaves differently if you have Barbican vs Vault backends 13:20:13 I agree that the security of the backend is entirely dependent on the approles, policy and backend configuration 13:20:41 jamespage, do you think being able to use arbitrary paths for secret storage is helpful? 13:20:52 i.e. not stuffing everything in root 13:21:43 seems less costly to me to add a new path + policy when adding a new castellan+vault client than adding a new KV mountpoint 13:22:07 some level of isolation between apps is good; however whether thats N KV mountpoints or subpaths within a single KV mountpoint 13:22:32 cool, I'm going to continue working on that patch 13:22:34 the security is related to the paths applied via policy to the approle 13:22:44 rather than the use of distinct mountpoints 13:23:14 yeah, I think not being able to specify an arbitrary path is an issue, since it does force you to have to add N mountpoints. 13:23:19 redrobot: I think your patch is a useful enhancement but not a blocker for marking castellan/vault as ready for production 13:23:31 that's just point #1 :) 13:23:37 point #2: 13:23:49 Castellan behaves differently when using Barbican backend vs Vault backend 13:24:03 most notably, the Vault backend completely ignores the context being passed in 13:24:26 OK this is an implementation detail I'm not familiar with 13:24:53 #link https://bugs.launchpad.net/castellan/+bug/1776989 13:24:54 Launchpad bug 1776989 in castellan "Vault backend does not check contex for authorization" [Medium,New] - Assigned to Douglas Mendizábal (dougmendizabal) 13:25:38 #link http://git.openstack.org/cgit/openstack/castellan/tree/castellan/key_manager/vault_key_manager.py#n330 13:25:58 Right now it checks that a context was passed in, but doesn't do anything with it 13:26:16 I can literally pass in the string 'bogus' as the context and the Vault backend doesn't care. 13:26:57 i mean, isn't the point of using barbican partially the integration with openstack auth mechanisms like keystone and such? 13:26:58 Also, we had this bug which was fixed by moguimar: 13:27:05 without it... there IS no auth that can be done? 13:27:06 I thought 13:27:07 🧐 we have a context object, LGTM 13:27:20 what is in that / what would it check with? 13:27:22 that's the vault km 13:27:54 #link https://bugs.launchpad.net/castellan/+bug/1817248 13:27:55 Launchpad bug 1817248 in castellan "KeyManager.create_key length parameter is ambiguous" [High,Fix released] - Assigned to Moisés Guimarães de Medeiros (moguimar) 13:28:38 Honestly, there is no way to fix that. It's got keystone roles and suck 13:28:40 *such 13:28:47 that Vault would not be able to use anyway 13:29:00 the only way to fix it is to remove the context from the interface altogether 13:29:18 which brings me to point #3 13:29:26 * moguimar needs to read the barbican km 13:29:52 I don't think there's a way to write code that can use both Vault or Barbican right now. 13:30:02 Cinder/Octavia only work because Vault ignores the context 13:30:04 hmmm i thought octavia could 13:30:06 ah 13:30:07 lolk 13:30:25 and because they both have easy access to either 1) their own keystone credentials or 2) the request context 13:30:30 though to be fair it's entirely theoretical, i don't think anyone has actually TRIED the driver i wrote :P 13:30:55 but, if I wanted to write an app that has to instantiate a context of its own and uses the Vault backend it wouldn't work 13:31:42 IOW the credential factory does not work with the Vault backend 13:31:43 #link http://git.openstack.org/cgit/openstack/castellan/tree/castellan/common/utils.py#n95 13:31:53 right now it only checks for keystone bits in the config 13:32:25 In any case, I just wanted to put this out there so folks can start thinking about it for the Denver Summit 13:34:18 * jamespage thinks 13:34:49 alot 13:34:57 I think removing the context from the interface may be the right thing to do... and it's more in-line with what the TC thinks Castellan should be 13:35:41 #link https://governance.openstack.org/tc/reference/base-services.html#current-list-of-base-services 13:35:44 will the barbican km survive without the context? 13:35:50 unfortunately that would be a backwards-incompatible change. 13:36:27 moguimar, yes, it would mean that Castellan->Barbican would behave more like Castellan->Vault where all secrets stored would be owned by a single account 13:37:00 if castellan starts supporting keystone auth and such ... wouldn't that just ... make it barbican? 13:37:25 rm_work, right, that's why I'm pushing for getting rid of context in Castellan :) 13:37:33 lolk 13:38:01 yeah it seems a little bit like people are remaking barbican bits at a time by committee without realizing it, because they didn't like barbican for some reason :D 13:38:07 Anyway... food for thought... I'm sure y'all will have awesome ideas next time we talk about this. 13:38:30 rm_work, haha, yes 13:38:41 ok, moving on 13:39:15 #topic Denver Forum Sessions - Ideas, etc 13:39:29 Obvs, we should definitely take some time to talk about Castellan 13:39:44 we desperately need better gate tests 13:39:57 esp. tests that will find discrepancies between different backends 13:40:17 yeah, testing leaves some things to be desired 13:40:29 i recently ran into some unit tests that are really not unit tests <_< 13:40:34 (dogtag tests) 13:40:44 I was shocked no one ever found that bits vs bytes issue 13:40:58 rm_work, heh 13:41:07 if you happen to have the dogtag libs installed, it will try to run against a real dogtag instance in the *unit tests* 13:41:14 I mean we _do_ want to unit test that backend 13:41:18 and explode if you don't have *configuration properly set* 13:41:26 yes but not by connecting to one? <_< 13:41:27 lol, ok that's bad 13:41:34 maybe mocks lol 13:41:36 like normal units 13:41:42 put the existing ones in functional if you want 13:41:51 sounds good to me 13:41:57 anyway, you can replicate -- run units, go into the tox env, install the dogtag lib, and then try running tests 13:42:03 it explodes at *discovery* 13:42:59 rm_work, wanna add a story to storyboard to track it? 13:43:18 not really :P 13:43:20 but uhh 13:43:33 I guess I could maybe 13:43:37 😁😁😁 13:43:51 #action rm_work to add a story about fixing the dogtag unit tests 13:44:13 Any other ideas for Denver Forum Sessions? 13:44:53 hmmm not sure what went through / if i missed anything, just got bumped when my VPN died 13:45:49 i was trying to say "not really, but i guess i could maybe do that" :P 13:46:06 rm_work, all you missed was me assigning an action item to you for doing that 13:46:14 kk 13:46:26 maybe i'll even remember when i wake up ;) 13:46:49 Oh man, I guess we could talk about content-types :trollface: 13:47:02 but really though, content types are still a mess 13:47:12 especially when it comes to the cli 13:47:29 and I'd like to deprecate defaulting to opaque in the cli at some point 13:47:46 because I have a feeling EVERYTHING EVERYONE STORES is opaque at this point 13:48:27 do y'all have things to talk about at the summit? 13:48:32 ~summit~ forum? 13:48:57 * redrobot thinks his slack-fu is showing 13:49:13 lol not really from me 13:49:56 i'm mostly doing upgrade projects at the moment, across all of cloud <_< so unable to focus much on specific projects. but 13:50:08 right on 13:50:19 oh another Castellan point 13:50:20 i had one thing i wanted to put out there -- https://review.openstack.org/#/c/638526/ :D pretty sure it works -- was surprised this wasn't done a while ago. not a priority though. 13:50:27 moguimar, reminded me about hvac the other day 13:50:36 * redrobot looks 13:51:02 so I think long term we may want to rewrite the Vault backend using hvac, so that we're not maintaining our own Vault client 13:52:14 ok, well, keep thinking about the Forum and possible topics 13:52:19 and we can re-visit it next week 13:52:35 #topic Open Discussion 13:52:38 any other topics? 13:52:48 ah, the one i put there ^^ 13:52:56 jumped the gun a minute 13:52:59 rm_work, added to my review queue 13:53:09 seems pretty straight-forward 13:54:46 * redrobot waves at dave-mccowan 13:55:04 hello, I'm wondering (again) if we could get any feedback (positive or negative) on this bugfix https://review.openstack.org/544557 13:55:08 hi redrobot 13:55:22 dave-mccowan, you caught the tail-end of the meeting 13:55:28 dave-mccowan, any last minute topics? 13:55:53 nothing from me 13:56:55 cool cool 13:58:16 ok, just about out of time 13:58:26 thanks for coming everyone! 13:58:33 #endmeeting