| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-03-12 | |||
| 16:08:42 | lbragstad | and then nova doesn't have to fetch a hierarchy of projects from keystone - at least not right now | |
| 16:09:19 | dansmith | not sure how that will yield nova showing you all instances in your sub-projects, | |
| 16:09:24 | dansmith | because we would have to filter for multiples | |
| 16:09:41 | dansmith | we could do it (hence the sure) but I think we'd need the hierarchy | |
| 16:09:55 | lbragstad | right - i think so, too | |
| 16:10:01 | lbragstad | which nova doesn't support today | |
| 16:10:04 | lbragstad | afaict | |
| 16:10:05 | dansmith | right | |
| 16:10:14 | lbragstad | and that might just seem like a lot of extra processing | |
| 16:10:17 | dansmith | you said "works today" so wanted to clarify | |
| 16:10:19 | dansmith | yes | |
| 16:10:34 | sean-k-mooney | did we talk about keystone midelware portentaly being able to provide us with the set of projects | |
| 16:10:47 | lbragstad | what i meant there was that that same domain-admin could have an inherited role assignment on all containing project (this works today in keystone) | |
| 16:11:00 | lbragstad | allowing them to get project-scoped tokens for each project within their domain | |
| 16:11:01 | dansmith | domain admin is really a side thing though, right? unrelated to system_admin and no current focus on supporting it | |
| 16:11:39 | lbragstad | dansmith correct - imho domain-support is on the back-back-burner | |
| 16:11:50 | sean-k-mooney | so with keystone domains today you can have full admin on a subset of a cloud right and create falvors and such | |
| 16:11:52 | dansmith | ack, so back to sean-k-mooney's question about how to handle system admin | |
| 16:12:00 | gmann | yeah, i am also not so clear on use case of it | |
| 16:12:26 | lbragstad | so - so for system-scope, here are my thoughts | |
| 16:13:13 | lbragstad | i was open to leaving it up to the service to determine if they allow system-users to create resources within projects - but it would absolutely require an alternative method for supplying the project_id | |
| 16:13:24 | lbragstad | (e.g., like what glance does with the owner property in the request body) | |
| 16:13:53 | dansmith | I just don't think providing a project_id for every operation is reasonable | |
| 16:14:05 | dansmith | an *alternate* project_id I mean | |
| 16:14:13 | sean-k-mooney | neutorn added suport for project_id for networks and some other reseouce i htink | |
| 16:14:19 | lbragstad | my firm opinion is that i think it would be a bad idea if nova, for example, started using fake project ids to continue allowing system-administrators to create servers on behalf of other users | |
| 16:15:34 | gmann | yeah, we required that for create server on specific host use case but that could be achieving by opening the policy for get hypervisors and project admin or so do it | |
| 16:15:43 | gmann | lbragstad: is there any plan to support system-ids in system scope token instead of 'all' ? i remember that was original proposal for system scope. | |
| 16:15:43 | sean-k-mooney | i could maybe see this being done via midelwhere. where keystone alloed a system-admin toek to be create with a project_id | |
| 16:15:44 | lbragstad | or - if servers could be created under a project called 'system' or something liek that | |
| 16:15:47 | gmann | or that was dropped ? | |
| 16:15:49 | openstackgerrit | Lee Yarwood proposed openstack/nova stable/rocky: [stable-only] gate: Pin CEPH_RELEASE to nautilus in LM hook https://review.opendev.org/c/openstack/nova/+/780286 | |
| 16:15:55 | sean-k-mooney | and then we would use that in nova as if it was a poject token | |
| 16:16:05 | lbragstad | gmann not dropped - just not enough time to implement it | |
| 16:16:08 | dansmith | maybe this is a dumb question, but if I have sysadmin powers and I want to create an instance for someone, can't I get a project token for that project before I create it? | |
| 16:16:10 | gmann | i see | |
| 16:16:15 | sean-k-mooney | lbragstad: basically allow one token type to issuee a lesser scoped token | |
| 16:16:17 | lbragstad | dansmith yes - exactly | |
| 16:16:29 | gmann | dansmith: yes | |
| 16:16:36 | gmann | same way for project user, | |
| 16:16:40 | dansmith | lbragstad: okay so system-scoped tokens need not be able to create resources directly right? | |
| 16:16:42 | lbragstad | if you're an admin - you have access to all of keystone's role assignment API | |
| 16:16:52 | gmann | if they want some system info in their operation then get system token or so.. | |
| 16:17:08 | sean-k-mooney | lbragstad: can you do it with out updateing asignemnt | |
| 16:17:28 | sean-k-mooney | lbragstad: e.g. can i use a system admin credential to issue a proejct scoped token directly | |
| 16:17:38 | sean-k-mooney | without assing a rule to myslef in the project | |
| 16:17:45 | lbragstad | dansmith correct - i think we'd really need to think through the ramifications of doing that consistently if we decided to open that up | |
| 16:17:46 | sean-k-mooney | *role | |
| 16:17:55 | lbragstad | sean-k-mooney no | |
| 16:18:08 | sean-k-mooney | so that would be a non invasive way to do it | |
| 16:18:23 | lbragstad | but it would bypass keystone's delegation mechanism | |
| 16:18:37 | sean-k-mooney | just adding proejct member and create a project toeknb does not feel like an improvment over what we have today | |
| 16:18:43 | dansmith | lbragstad: I would much rather make sure system admins (the people) can get a token to do what they need in a project, vs make every operation take a project (i.e. osc server stop --project $foo) | |
| 16:18:49 | lbragstad | which may have adverse side-effects on auditing | |
| 16:19:04 | openstackgerrit | Lee Yarwood proposed openstack/nova stable/queens: [stable-only] gate: Pin CEPH_RELEASE to nautilus in LM hook https://review.opendev.org/c/openstack/nova/+/780287 | |
| 16:19:16 | lyarwood | elod: ack sorry irc dropped, looking now | |
| 16:19:27 | sean-k-mooney | lbragstad: well im thinki of it kind of like app crentials | |
| 16:19:31 | lyarwood | elod / melwitt ; https://review.opendev.org/q/I1d029ebe78b16ed2d4345201b515baf3701533d5 - btw that should sort the remaining ceph jobs out | |
| 16:19:56 | sean-k-mooney | i have a super set of permision acroos all doemains/proejct as a system admin | |
| 16:20:05 | lbragstad | sean-k-mooney application credentials are currently tied directly to projects and by default prevent you from using them to bypass authorization | |
| 16:20:09 | sean-k-mooney | so i should be able to create a scoped token of a different type | |
| 16:20:24 | sean-k-mooney | lbragstad: this would not be a bypsss though | |
| 16:20:49 | sean-k-mooney | it would be a explict keystoen feature to allow higer privladge tokens ot issue a lower coped token | |
| 16:21:12 | sean-k-mooney | but it sound like that cant be done with keystone current delegation design | |
| 16:21:23 | dansmith | sounds like we should figure out what we need to do for W to not return 500 and then have a video conf about this right? | |
| 16:21:52 | dansmith | i.e. ptg | |
| 16:21:53 | sean-k-mooney | yep proably or wait for our PMs to say we need to support it | |
| 16:22:16 | lbragstad | yeah - introducing a new way to delegate authorization makes me nervous without thinking through it over a longer period of time | |
| 16:22:31 | lbragstad | agree - a video call would help | |
| 16:22:39 | dansmith | we clearly need to understand what the expected usage pattern is, how that will or won't work and go from there | |
| 16:22:56 | gmann | yeah | |
| 16:23:01 | lbragstad | for now though - a system-admin can explicitly give themselves access to a project and do whatever they need to | |
| 16:23:02 | dansmith | because it seems like there's maybe some confusion here (more than just my ignorance) | |
| 16:23:17 | sean-k-mooney | lbragstad: right but today they dont have too | |
| 16:23:34 | sean-k-mooney | lbragstad: i do not need to be a meber of a project as a system admin to stop a vm | |
| 16:23:42 | dansmith | lbragstad: ack, so cutting off resource create for them makes sense for the 500 case currently | |
| 16:24:06 | lbragstad | ok- so in that case | |
| 16:24:24 | lbragstad | if i'm an admin on project `admin` and i use my token to stop a vm in project `foo` | |
| 16:24:29 | lbragstad | what does nova do with my `admin` project id? | |
| 16:25:38 | sean-k-mooney | for vm stop we just need the vm uuid but if we look in the logs we likely will log the action as done by the admin project | |
| 16:25:53 | gmann | so it will be 403 right? | |
| 16:26:02 | sean-k-mooney | no it should be a 200 | |
| 16:26:04 | gmann | with new default project_id is compared for all | |
| 16:26:08 | dansmith | the action has a project_id, I'm looking to see where we get it from, but normally it's context | |
| 16:26:14 | dansmith | because it's the person doing the action | |
| 16:26:21 | dansmith | so that would mean system_admin has to be refused | |
| 16:26:49 | gmann | system admin case there is no proejct id so would not be compared | |
| 16:27:05 | dansmith | which means they can't shut down an instance | |
| 16:27:05 | gmann | i mean system admin power for all projects | |
| 16:27:12 | gmann | they can | |
| 16:27:45 | sean-k-mooney | im going to chefck it now | |
| 16:28:11 | gmann | i mean with our current default policy, system admin can stop any instance, project member/admin can stop their own instance | |
| 16:28:34 | dansmith | https://github.com/openstack/nova/blob/ab07507e5cfce6232fef373d07ff92ea704541da/nova/objects/instance_action.py#L56-L63 | |
| 16:28:36 | sean-k-mooney | gmann: that is what im expecting | |
| 16:28:37 | dansmith | gmann: they can't | |
| 16:28:55 | dansmith | gmann: if their project_id is going to be None, they will not be able to create an InstanceAction | |
| 16:29:05 | dansmith | which likely will fail before we even begin the call to stop the instance | |
| 16:29:55 | gmann | ah i see, they fail later even pass the policy... | |
| 16:30:00 | dansmith | right | |
| 16:30:06 | dansmith | this is what I'm saying, | |