Earlier  
Posted Nick Remark
#openstack-nova - 2026-04-07
21:00:40 melwitt as far as I could find it goes down to the model and object level, so always been that way
21:01:15 melwitt (this was just me looking in the code)
21:01:30 dansmith yeah I really thought we were told that it was specific to the user and not the project
21:02:12 sean-k-mooney melwitt: maybe https://opendev.org/openstack/barbican/commit/cd9b0ba9f0b4606193858d3cf05acd413a66ba1e
21:02:34 sean-k-mooney they use to enforce _SECRET_CREATOR = "user_id:%(target.secret.creator_id)s"
21:03:09 sean-k-mooney ... storybaord 2010235 has more info
21:03:38 sean-k-mooney huh its actully working https://storyboard.openstack.org/#!/story/2010235
21:03:47 sean-k-mooney i guess the bots doen know about story board
21:05:37 sean-k-mooney ya so in https://opendev.org/openstack/barbican/commit/cd9b0ba9f0b4606193858d3cf05acd413a66ba1e the allowed project member not jsut teh orgial secreat creator to decrpte the secrete adn basiclly mange it
21:06:24 melwitt lol storyboard
21:06:30 sean-k-mooney without the need for acls so that proably shoudl ahve at least had a release note... or a doc update....
21:07:20 sean-k-mooney https://review.opendev.org/c/openstack/barbican/+/853680 apprently that was aslo cherry-picked which is qustionable
21:07:24 melwitt yeah that's a pretty major change
21:07:34 sean-k-mooney although i coudl eb misreading those polices but i dont think i am
21:08:00 dansmith but these are API policies - doesn't barbican also have a more robust internal ACL system?
21:08:03 dansmith I guess I thought that
21:08:12 dansmith is what we were talking about here and not just API policy
21:08:27 melwitt I guess the old rule had rule:secret_project_admin which allows project admin also
21:08:34 sean-k-mooney hum actully on gerrit i think i might be https://review.opendev.org/c/openstack/barbican/+/853680/9/barbican/common/policies/secrets.py#72
21:09:15 melwitt secrets are not as secret as I had thought :P
21:09:26 sean-k-mooney im not familar with rule:secret_is_not_private
21:09:59 melwitt that's the project_access thing. project_access=false=private. at least that's how it is today
21:10:09 sean-k-mooney ah
21:10:33 sean-k-mooney so seperatly form the acl you can mark it as prive to a user or public to the project
21:11:05 sean-k-mooney i assume acls were an evoltion of that with more granualatiy or someitng in later release
21:11:08 melwitt no that is the ACL. i.e. if you want to change it, it's a PUT to the /acl API
21:11:28 dansmith so the api policy defines the default but I can still ACL individual secrets however I want?
21:12:11 melwitt as far as I can tell the default is hard-coded, I don't think you can change it
21:12:16 melwitt *don't think you can change the default
21:12:33 melwitt and you can't create a secret to have project_access=false from the get go
21:12:34 sean-k-mooney https://docs.openstack.org/barbican/latest/api/reference/acls.html
21:12:53 sean-k-mooney so apprenlty the acl is on tdefien on indeivual secrets but the contienr the sectes are contied in
21:13:10 sean-k-mooney it feels like this is not fully baked based on teh documantion warning
21:14:37 melwitt yeah... kinda also why I was thinking cross-project at the ptg, to just get a sanity check from barbican experts if they are out there
21:14:37 sean-k-mooney https://docs.openstack.org/api-guide/key-manager/acls.html#default-acl
21:15:02 sean-k-mooney {
21:15:04 sean-k-mooney "read":{
21:15:06 sean-k-mooney "project-access": true
21:15:08 sean-k-mooney }
21:15:10 sean-k-mooney }
21:15:19 sean-k-mooney so that apprently the default os i guess whne they added acls it change the behvior
21:15:45 melwitt ok so you are saying before ACLs even existed, it was like private secrets?
21:17:13 melwitt vtpm was added in the victoria release which was in 2020
21:17:37 sean-k-mooney im not sure
21:17:43 sean-k-mooney bu tjsut skiming ther eapi ref
21:17:56 sean-k-mooney i think if we anted to chagne teh bhvior we would need 3 calls minium
21:18:04 sean-k-mooney 1 to create a metadata only secrete
21:18:09 sean-k-mooney then to apply the acl to it
21:18:15 sean-k-mooney and finaly to upload the data
21:18:47 sean-k-mooney i would assume we are not doing that today
21:19:12 melwitt yeah that's exactly what I thought we would have to do and no we are not doing that today
21:19:18 sean-k-mooney so when we are creatign the "user" secreat its likely project scoped
21:19:34 melwitt secrets in nova have always been create with the default acl, so have always been open to project
21:20:16 melwitt I don't know why I thought they were private to a user :(
21:21:54 sean-k-mooney so its the secret:decrypt
21:22:00 sean-k-mooney polyc that we care about rahter then get
21:22:07 melwitt correct
21:22:07 sean-k-mooney get is just the metadata
21:22:19 melwitt yes
21:23:26 melwitt man the test_resize_reschedule_uses_host_lists_3_fails unit test is going crazy in CI
21:23:48 sean-k-mooney https://opendev.org/openstack/barbican/blame/commit/661386a517fac2f81d6b35706dd360b045955c3f/barbican/common/policies/secrets.py#L21
21:24:03 sean-k-mooney so that acl rules has been there for at least 10 years
21:24:47 sean-k-mooney so in effect they have never been user scoped unless you change the acl
21:24:58 melwitt I don't think so right because of this https://opendev.org/openstack/barbican/src/commit/661386a517fac2f81d6b35706dd360b045955c3f/barbican/common/policies/base.py#L50-L52
21:25:14 melwitt oh wait that's not decrypt
21:25:49 sean-k-mooney righ if you look at https://opendev.org/openstack/barbican/blame/commit/661386a517fac2f81d6b35706dd360b045955c3f/barbican/common/policies/secrets.py#L21
21:26:03 melwitt https://opendev.org/openstack/barbican/src/commit/661386a517fac2f81d6b35706dd360b045955c3f/barbican/common/policies/base.py#L53-L55
21:26:03 sean-k-mooney that has the 'rule:secret_acl_read' rule alaready
21:26:30 melwitt if I read that right it was allow project admin, project observer, project creator
21:26:44 melwitt so it's true it was not project member
21:26:55 sean-k-mooney right os creator was the old role they mapped to member
21:27:00 sean-k-mooney and observer i guess was reader
21:27:24 sean-k-mooney so before srbac to us babican at all admin had to assing you the creator role
21:30:21 sean-k-mooney melwitt: i think this is perhaps the relvent spec https://github.com/openstack/barbican-specs/blob/master/specs/kilo/add-creator-only-option.rst
21:30:50 sean-k-mooney well and https://github.com/openstack/barbican-specs/blob/master/specs/kilo/add-per-secret-policy.rst
21:31:34 melwitt ok yeah that is showing that private secrets was a new feature at the time. wasn't even possible originally
21:32:05 sean-k-mooney rigth so the second spec is the one that intouced tha acl api
21:32:33 sean-k-mooney and the first was specificly usignit for providign diffent options for the creator role
21:32:53 melwitt interesting. good to know
21:34:06 sean-k-mooney i hate to say this but.... this would allwo a 4 mode of operations
21:35:03 sean-k-mooney we could have a "delegated" for lack fo a beter term mode where the secret is owned by the end user isntead of the nova user but we just add an acl for ti when creating it for the nova user to be able to read it when needed
21:35:17 sean-k-mooney and do that only for the tpm secrets that we are cretaing on there behalf
21:35:58 sean-k-mooney that almost what the deployment mode is with the only delta being the secret remaisn owned by the project that owns the vm
21:36:11 melwitt yeah .. that would work I think
21:36:30 sean-k-mooney you coudl also upgrae to that by backfilling the ACL
21:36:56 melwitt honestly that seems easier because then the service project thing doesn't come up
21:37:33 sean-k-mooney although well it kind of does but only in the sense that what ever auth cred we are usign to talk to it need to be one form our config
21:37:51 sean-k-mooney but just lookign at master for a second
21:37:53 sean-k-mooney https://opendev.org/openstack/barbican/src/branch/master/barbican/common/policies/secrets.py#L19-L26
21:38:08 sean-k-mooney rule:secret_project_admin
21:38:17 melwitt yeah but I mean if we do it by giving the nova user access via acl, then it's never open to the service project right
21:38:37 sean-k-mooney i asumem that is someone wiht the admin role that has a project scoped token for that project right
21:38:58 melwitt I think that's what that means, yes
21:39:06 sean-k-mooney oh well there may or may not be a shared service project
21:39:20 sean-k-mooney we do that in devstack but in our down stream we dont i belive
21:39:28 melwitt true, but the "common" deployment is done that way
21:39:43 sean-k-mooney it woudl allow use to restict ti to just the nova user however
21:39:52 sean-k-mooney if ther was a shared service proejct so that still better
21:41:04 sean-k-mooney well not nessicarly "beter" then owned by nova in genreal jsut better then "accsabel by anyone in the service project"
21:41:38 melwitt right

Earlier   Later