Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epic: API Export Permissions on Binding #1219

Closed
13 of 25 tasks
shawn-hurley opened this issue Jun 6, 2022 · 9 comments
Closed
13 of 25 tasks

Epic: API Export Permissions on Binding #1219

shawn-hurley opened this issue Jun 6, 2022 · 9 comments
Assignees
Labels
area/apiexports epic Represents a larger feature with multiple stories milestone-blocker Blocks closing out a milestone
Milestone

Comments

@shawn-hurley
Copy link

shawn-hurley commented Jun 6, 2022

Demo Objective

  • Service provider should be able to ask for additional permissions when creating an API Export for when the API is bound
  • API Binding users must accept or deny the specific permissions when binding to the APIExport
  • When accepted and bound, the objects granted access should be projected into the APIExports virtual workspace.

Demo Steps

  1. Service Provider creates an APIExport but asks for permissions to a secrets
  2. User binds to the API and accepts the permissions
  3. Service provider can access the secret from the virtual workspace.

Stories

------ 0.6 cut line

------- 0.7 cut line

------- 0.7.1 cut line

  • Add e2e test cases Add more e2e test cases for permission claims #1864
    • When an APIExport removes a permission claim, its apiexport virtual workspace no longer serves that resource
    • When an APIBinding changes an accepted claim to rejected, the apiexport virtual workspace no longer serves that resource (was: Test: APIExport should be able to update permission claims at any time #1501)
    • When an APIBinding has not accepted a claim (it's neither accepted nor rejected), the apiexport virtual workspace does not include resources from the binding's workspace
  • 💣🔒 APIExport VW should restrict for a given workspace based on bindings acceptance or rejection fixed in main
  • Pending/approval life-cycle in APIBindings
    • add binding.status.exportPermissionClaims

------- 0.8 cut line

-------- MVP complete – testing-ready --------

@shawn-hurley shawn-hurley added the epic Represents a larger feature with multiple stories label Jun 6, 2022
@sttts sttts added this to kcp Jun 6, 2022
@sttts sttts moved this to New in kcp Jun 6, 2022
@sttts sttts added this to the v0.6.0 milestone Jun 7, 2022
@sttts sttts added milestone-blocker Blocks closing out a milestone area/apiexports labels Jun 7, 2022
@sttts sttts changed the title API Export Permissions on Binding Epic: API Export Permissions on Binding Jun 14, 2022
@sttts sttts modified the milestones: v0.6.0, v0.7.0 Jul 12, 2022
@robinbobbitt
Copy link
Contributor

@shawn-hurley the controller my team is building currently needs to be able to create a service account, cluster role, and cluster role bindings through the virtual workspace. Please let me know if you need additional detail. Thanks!

@pweil-
Copy link
Member

pweil- commented Aug 22, 2022

@shawn-hurley 0.8 check in here.

Demo objectives
Service provider should be able to ask for additional permissions when creating an API Export for when the API is bound - I believe this can be checked off as complete. The remaining tasks seem to be about limiting scope and security. Correct?

Stories

are these scoped for delivery in 0.8? If not can you update the description with expected delivery items?

  • APIExport VW for a claim should not override MaximalPermissionPolicy of the owning APIExport of the resource (if that is the case, we need an e2e)
  • Pending/approval life-cycle in APIBindings

@pweil-
Copy link
Member

pweil- commented Aug 24, 2022

cc @stevekuznetsov for 0.8 check in

@ncdc
Copy link
Member

ncdc commented Sep 2, 2022

Moved #1337 to after 0.8. All claim-related work for 0.8 is now done. Moving epic milestone to v0.9

@ncdc ncdc modified the milestones: v0.8, v0.9 Sep 2, 2022
@ncdc
Copy link
Member

ncdc commented Sep 6, 2022

APIExport can add authorization and limit what a user can do in their own namespace using permission claims.

@sttts how is this different from the local MaximalPermissionPolicy?

@ncdc
Copy link
Member

ncdc commented Sep 6, 2022

re

Add permissions: read, create, write, delete
Add object selection
 single object names
 by namespace
 by labels
 object reference selector (e.g. secrets referenced in PodSepc), maybe JSONPath
 Adding regex pattern selector (on name or namespace)

I'd say the most basic use case here is "API provider must only be allowed to see the resources it needs and no more", or to be more specific: "you can't see all my secrets" 😄.

@stevekuznetsov
Copy link
Contributor

I've expanded on the remaining bullets here to create full issues and migrated this issue to a project view.

Repository owner moved this from New to Done in kcp Sep 9, 2022
@kylape
Copy link
Contributor

kylape commented Sep 14, 2022

@stevekuznetsov that link gives me a 404

@stevekuznetsov
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/apiexports epic Represents a larger feature with multiple stories milestone-blocker Blocks closing out a milestone
Projects
Status: Done
Development

No branches or pull requests

9 participants