Earlier  
Posted Nick Remark
#openstack-nova - 2019-11-11
15:13:34 sean-k-mooney lyarwood: sure but efried just said it in /etc/libvirt/secrets/ and is just base64 encoded
15:13:46 lyarwood right and that's pretty locked down given the listing above
15:13:47 efried lyarwood: I suspect I'm missing what you're getting at.
15:14:00 efried lyarwood: you mean 600 owned by root locked down?
15:14:03 lyarwood if someone had access to root it's already game over
15:14:10 sean-k-mooney lyarwood: that not good enough in my view
15:14:22 efried pretty sure in jroll's view too.
15:14:23 sean-k-mooney the operator shoudl not be able to see the secreate
15:14:28 lyarwood they could already get in and decrypt various things from the running QEMU process
15:14:46 canori01 Hello, would I evacuate an instance that's running into 'AllocationUpdateFailed: Failed to update allocations for consumer' running on Stein
15:15:00 lyarwood well that just isn't within libvirt's security model AFAIK
15:15:02 canori01 I mean, how would I recover from that
15:15:31 efried lyarwood: Actually I think we're drawing the line at "compromised root is acceptable risk; stolen disk must be secure".
15:16:07 jroll more like we realize compromised root on a running hypervisor is game over anyway, but yeah
15:16:27 lyarwood efried: kk, danpb had a blog about secret handling a while ago that might cover a way around that ./me checks
15:16:27 efried IOW I think it's the nova admin creds that are the root of trust.
15:16:32 efried thanks lyarwood
15:16:43 sean-k-mooney efried: https://libvirt.org/formatsecret.html#SecretAttributes
15:16:53 jroll lyarwood: thanks, I was just going to ask that
15:16:55 sean-k-mooney so it look like you can mare a secret as ephemeral
15:16:56 efried having displayed any understanding whatsoever, lyarwood, you're now permanently on call for support.
15:17:06 sean-k-mooney so its only kept in memory and never on disk
15:17:17 sean-k-mooney so if we store it in barbican and then do that that would be better
15:17:34 efried oh, cool, I saw that but hadn't played with it yet, will have to try that out and see if it does the trick.
15:17:42 sean-k-mooney well ephemeral=yes private=yes
15:17:51 efried The secret I created while playing was private but not ephemeral.
15:18:14 jroll can confirm ephemeral=yes leaves it off of disk
15:18:35 sean-k-mooney so form a nova point of view can we use barbican to store it
15:18:41 efried cool, so the nova user is the root of trust because has access to the barbican entry.
15:18:49 efried yeah, what sean-k-mooney said.
15:18:56 jroll and restarting libvirt nukes an ephemeral secret
15:18:59 jroll \o/
15:19:22 sean-k-mooney jroll: that is proably ok/good
15:19:25 efried now we just gotta hope you don't have to restart libvirt to make it pick up the secret :P
15:19:29 lyarwood thanks sean-k-mooney
15:19:46 jroll efried: fwiw, I didn't need to restart, but I'm on older libvirt playing with tls secrets, not tpm
15:20:10 sean-k-mooney jroll: i dont know if libvirt makes a difference
15:20:21 efried jroll: didn't need to restart to do what?
15:20:56 efried in my case everything appeared to be moving along fine until I tried booting the guest, then the nova log got an exception complaining it couldn't find my secret.
15:21:27 efried anyway, ephemeral would be entirely useless in that case, so it MUST work (famous last words)
15:21:31 jroll efried: ah, I was just doing 'virsh secret-list'
15:21:33 jroll heh
15:21:46 jroll sean-k-mooney: if there's a bug in newer libvirt it might :)
15:22:04 sean-k-mooney oh i ment between secrete usage/types
15:22:18 sean-k-mooney i think it just has a secret that is use for many things
15:22:21 efried jroll: btw, there was a question as to whether we needed to bother providing the non-encrypted version of vTPM support at all.
15:22:23 jroll older libvirt won't let me create a vtpm secret type ¯\_(ツ)_/¯
15:22:44 efried right, that needs to be >=5.6.0, which afaict you have to compile yourself.
15:22:46 jroll efried: I'd be pro-not-supporting that, I don't like footguns
15:22:51 sean-k-mooney e.g. i dont think a secreate for tls or tpm is a different thing internally in libvirt
15:23:09 efried penick indicated the same. Just that the requirements are going to be way more stringent for it if so.
15:23:52 sean-k-mooney for what its worth rhel/fedora will be shiping it relitvly quickly
15:23:59 sean-k-mooney im not sure when exactly
15:24:08 sean-k-mooney but we have an advance virt stream we use for openstack
15:24:17 efried I guess "with ussuri" is soon enough <shrug>
15:24:30 sean-k-mooney that ships a newer version then base rhel
15:24:37 efried but also the barbican requirement
15:25:00 efried anyway, glad you agree jroll, it makes the code & test surface easier.
15:25:37 efried lyarwood: since you mentioned the qemu side -- do you have any idea what's the minimum qemu version to support encrypted vTPM? I couldn't find that in the docs anywhere.
15:26:56 efried canori01: it would help to know why the allocation update is failing (out of resources? provider conflict? other?), and what action is being performed when that happens.
15:28:38 canori01 efried: I am replacing old hardware. So I powered off the old hypervisor and then did a nova-evacuate. All the guests evacuated except for two which gave me the provider conflict
15:29:03 lyarwood efried: I don't sorry
15:29:31 lyarwood efried: 2.12 is listed in the Stein spec FWIW
15:30:02 efried lyarwood: yeah, that was for non-encrypted, and idk if there's a higher req for encrypted.
15:30:23 efried canori01: If it was a provider conflict, you should just be able to "try again".
15:30:33 lyarwood efried: no idea sorry, kashyap is out today otherwise I'd ask him if he could work that out for us.
15:30:49 efried ah, good plan. I'll stalk him, thanks.
15:30:52 sean-k-mooney efried: tpm emulation was added in 2.11 but im not sure if that included encryption
15:31:10 efried it did not
15:31:39 efried But I don't even know whether qemu required any update for that aspect. It might not have.
15:31:49 sean-k-mooney also this is an intersting site https://repology.org/project/libvirt/versions
15:33:22 sean-k-mooney look like apline has the depencyies you need but very little else at teh moment
15:34:28 sean-k-mooney Fedora Rawhide would "work" too although i suspect nova wont be happy with it in general
15:35:06 efried sean-k-mooney: oh, that reminds me, I ran into another weird quirk with the home-built libvirt...
15:35:49 efried sean-k-mooney: When I restarted the libvirt service, it blew up because it was looking in /usr/lib/x86_64-linux-gnu/ which contained the old libvirt 4.xx
15:36:06 efried I had to go into the service and set LD_LIBRARY_PATH=/usr/lib explicitly to make it work.
15:36:11 efried which seems... weird.
15:36:17 efried had to do the same with n-cpu.
15:36:52 sean-k-mooney ya that does seam strange
15:37:02 sean-k-mooney well clearly i have more work to do
15:37:56 dansmith efried: why is that surprising?
15:38:19 dansmith efried: if you have an old version installed in the standard system library path, and start a new daemon binary that requires the new libs,
15:38:24 dansmith you have to tell it where they are
15:38:33 dansmith (if I'm understanding what you're saying)
15:38:36 efried dansmith: Is /usr/lib/x86_64-linux-gnu/ the "standard system library path"?
15:38:47 efried That was the surprising part to me. I would have thought /usr/lib was.
15:39:08 dansmith efried: for multi-arch stuff on fedora-like distros it is I think yeah
15:39:12 sean-k-mooney dansmith: well the devstack plugin uninstalles the packages and libvirt was compiles with --system
15:39:34 efried sean-k-mooney: Doesn't your plugin just use `make install`?
15:39:35 dansmith sean-k-mooney: clearly not if the old version was still there
15:39:54 efried I would have thought that should have covered symlinking or otherwise replacing versions in any "standard" paths.
15:40:05 dansmith efried: not generally
15:40:19 sean-k-mooney efried: yes but the autogen sript was passed --system so when it invoked configure it should have set it up to instll in the default system lib path
15:40:27 dansmith efried: make install usually puts them in /usr/local/lib unless you tell it otherwise
15:40:34 dansmith or, --system would yeah
15:40:36 sean-k-mooney dansmith: well i dont try an nuke the old verions
15:41:12 dansmith efried: cat /etc/ld.so.conf or /etc/ld.so.conf.d/*
15:41:19 dansmith efried: will show you where the loader looks for libs
15:41:22 sean-k-mooney dansmith: this shoudl do the right thing yes? https://opendev.org/x/devstack-plugin-libvirt-qemu/src/branch/master/devstack/libs/libvirt#L94-L96
15:41:32 dansmith efried: even on my ubuntu system, /usr/lib/$arch is in there

Earlier   Later