-
Notifications
You must be signed in to change notification settings - Fork 41
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
want way to delegate Fleet access #3275
Comments
Idea 1: Expose users/groups across Silos.If we create an API for suitably privileged users to list the users and groups in another Silo, then this can work just like any other part of IAM: you can update the fleet policy to add/remove role assignments for whatever user/group you want. This sounds appealing, but has two potentially big downsides:
Idea 2: Define fleet-level privileges for a Silo's initial admin group when creating the SiloWe could add a new property to Note that this would not be a property of the Silo. It's just a create-time property that controls what we do during creation. It has no meaning after the Silo is created. Downsides:
Idea 3: As a Fleet-level admin, you can configure which Silo roles confer which Fleet rolesOne reading of #1340 is that there's an underlying principle that's something like: people outside a Silo ought not to be able to see the users and groups in that Silo. Or, if that seems draconian, one could think of it as: people outside a Silo ought not need to know about all the specific users and groups within a Silo in order to delegate privileges to the Silo. Instead, maybe they could express to the system something more like "I trust this Silo" rather than individual users and groups. Of course, they don't trust the whole Silo. Presumably they trust the administrators of the Silo. So maybe we could add a new property (or properties) to the Silo itself that specify which Silo roles confer which Fleet roles.
This seems pretty appealing to me if we're on board with the initial principle that the Fleet Admin's responsibility isn't to know about the users and groups inside other Silos. But I'm a little worried this is overengineering things for what we need now. In terms of implementation: I hope that we can do this by putting this property into the |
I prefer option 3 precisely because it does attempt to maintain knowledge of users/groups solely within a Silo. Option 1 would be difficult to implement in practice due to JIT user/group provisioning. A user would need to log in to a Silo before they could be granted fleet roles. Stepping back a bit, this all highlights a rough edge with our model of IdPs being strongly associated with Silos. While user accounts exist in Silos, users exist in IdPs. Same applies for groups. With our current model and option 3, fleet roles would be attached not only to a specific user, but to a specific user logged into a designated Silo. That's awkward for a role that, by definition, exists above the concept of Silos. |
I also got feedback in favor of option 3 from a few others so that's what I did in #3349. |
@mx-shift I don't quite follow this. With option 3, there is never a need to directly attach Fleet roles to any user or group. Instead, you would set this policy on the Silo saying "for this Silo, people with the Admin role also get the Fleet Admin role". In #3349 I have even modified the behavior of rack initialization so that even the initial user in the recovery Silo doesn't get the "Fleet Admin" role assigned to them directly. Instead, the recovery Silo uses this Silo-level policy to confer Fleet-level Admin role to any administrators of the recovery Silo. Or are you saying that it's awkward that we would even indirectly grant this role to any Silo user, rather than only granting it to some kind of account that exists outside of a Silo? I don't follow this objection. One of the primary purposes of a Silo is to be a realm of user accounts. Whatever identity that gets these roles has to come from some IdP, and we happen to have called the nexus of IdP configuration a "Silo". Is the confusion that a Silo can also be a container for other resources? That's fair, but this was discussed under RFD 297. We could still make changes here (i.e., create "operations-only" Silos). Sorry if I'm misunderstanding -- I've obviously tried to infer what you meant but I probably should have just asked! |
Right now, I believe the user that gets created in the recovery Silo during rack setup gets the "fleet admin" role. That user should have the privilege to grant "fleet admin" to anybody else (including users/groups in other Silos), but they have no way of knowing the identity of a user or group in another Silo. (And it's not clear that they should. See #1340.)
However we do it, we want some way of having this user delegate "Fleet Admin" to users or groups in other Silos. That way operators don't need to use the recovery Silo (which bypasses their IdP) to manage the rack.
The text was updated successfully, but these errors were encountered: