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

Add TLD for lakeFS Simplified Authorization #5267

Merged
merged 4 commits into from
Feb 26, 2023
Merged

Conversation

arielshaqed
Copy link
Contributor

No description provided.

Still missing: upgrade process.
@arielshaqed arielshaqed marked this pull request as draft February 16, 2023 14:40
@arielshaqed arielshaqed requested a review from ortz February 19, 2023 13:00
@arielshaqed arielshaqed marked this pull request as ready for review February 19, 2023 13:03
@arielshaqed arielshaqed linked an issue Feb 19, 2023 that may be closed by this pull request
@arielshaqed arielshaqed added new-feature Issues that introduce new feature or capability area/UI Improvements or additions to UI docs Improvements or additions to documentation area/auth IAM, authorization, authentication, audit, AAA, and integrations with all those exclude-changelog PR description should not be included in next release changelog team/cloud-native Team cloud native labels Feb 19, 2023
Copy link
Contributor

@ortz ortz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thank you!
some comments

![Groups page has a dropdown to edit permission for each
group](./groups-with-perms.png)

This gives information about the group and allows editing its permission.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing that I think is worth taking into account, we should block if someone is trying to remove the last admin group available (e.g deleting the group or changing its permissions, and essentially blocking themselves outside of lakefs management)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely! I suggest making the 4 "global" groups immutable and undeletable.

Admins will still be able to lock themselves out by removing all users from Admins. The way out will be to run lakefs superuser.

WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good, so the 4 global groups are associated with all repos and can't be modified, and if you want to scope users to specific repos you'll create new group?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that will be easiest. This is very light enforcement; being able to modify these groups will be too confusing.

I still want to allow creating new groups with Admin ACL. While all groups with this ACL have identical powers ("do anything"), someone might want to label their "admin" users in two groups for management reasons or something.

* For any group, upgrading configured policies follows these rules, possibly
**increasing** access:

1. Any "Deny" rules are stripped, and a warning printed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please make sure the warning message contains a link to our slack workspace or support email if they need any assistance.

Copy link
Contributor Author

@arielshaqed arielshaqed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Asking for a re-review to discuss how we prevent admins locking themselves out.

![Groups page has a dropdown to edit permission for each
group](./groups-with-perms.png)

This gives information about the group and allows editing its permission.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely! I suggest making the 4 "global" groups immutable and undeletable.

Admins will still be able to lock themselves out by removing all users from Admins. The way out will be to run lakefs superuser.

WDYT?

@arielshaqed arielshaqed requested review from ortz and a team February 21, 2023 15:21
Copy link
Contributor

@ortz ortz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙏

![Groups page has a dropdown to edit permission for each
group](./groups-with-perms.png)

This gives information about the group and allows editing its permission.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good, so the 4 global groups are associated with all repos and can't be modified, and if you want to scope users to specific repos you'll create new group?

@arielshaqed
Copy link
Contributor Author

@nopcoder I think you volunteered :-), but please remove yourself if you didn't...

@nopcoder
Copy link
Contributor

yes, I'm still on it

to a statement when the UI posts it back. In effect PBAC statements are the
materialized form of the ui sub-object.

## Milestones
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How the transition will be - I mean we commit everything after all is tested outside main?
Do we plan to deploy some functionality and disable some as we go between milestones?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the whole thing drops as a single release. That release will delete P/RBAC and replace it with ACLs.

Copy link
Contributor

@nopcoder nopcoder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - couple of questions to understand better.

| Permission | Allows | Existing Group |
|------------|--------------------------------------------|---------------------------|
| **Read** | Read operations, creating access keys. | Viewers |
| **Write** | Allows all data read and write operations. | Developers |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checking - it means I can delete a repository as a developer right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, sorry(?). Same permissions you'd get from FSReadWrite today.


Some service jobs such as GC must be run using a user with Admin permission.

##### Scopes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will I be able to give read access to scope "all" - for all repositories?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes!

@arielshaqed arielshaqed mentioned this pull request Feb 26, 2023
2 tasks
Copy link
Contributor Author

@arielshaqed arielshaqed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

THANKS!

Pulling...


Some service jobs such as GC must be run using a user with Admin permission.

##### Scopes
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes!

| Permission | Allows | Existing Group |
|------------|--------------------------------------------|---------------------------|
| **Read** | Read operations, creating access keys. | Viewers |
| **Write** | Allows all data read and write operations. | Developers |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, sorry(?). Same permissions you'd get from FSReadWrite today.

to a statement when the UI posts it back. In effect PBAC statements are the
materialized form of the ui sub-object.

## Milestones
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the whole thing drops as a single release. That release will delete P/RBAC and replace it with ACLs.

@arielshaqed arielshaqed merged commit c3ed6ed into master Feb 26, 2023
@arielshaqed arielshaqed deleted the design/simplified-acl branch February 26, 2023 08:58
@arielshaqed arielshaqed mentioned this pull request Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/auth IAM, authorization, authentication, audit, AAA, and integrations with all those area/UI Improvements or additions to UI docs Improvements or additions to documentation exclude-changelog PR description should not be included in next release changelog new-feature Issues that introduce new feature or capability team/cloud-native Team cloud native
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Design Simplified Authorization
3 participants