-
Notifications
You must be signed in to change notification settings - Fork 45
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
Specific list of approvers #48
Comments
I think it's an interesting idea and I'm sure there's a use case for it. What I'm unsure about is how the configuration might look like: I suppose one option would be to specify the (group or list of) approvers in the IAM condition itself somehow. I think that would work, but as the number of eligible role bindings grow, it might become quite difficult though to keep track of and manage who can approve which roles. Another option would be to maintain the configuration (who can approve which role on which resource) in some sort of configuration database that's separate from IAM. But having such a database is something I've been seeking to avoid as it would be difficult to secure and could create a possible avenue for privilege escalations. I'm sure there are other options I haven't thought of yet... if you have some ideas, please let us know. |
This is something I was trying to figure out yesterday when I suggested this, but wasn't particularly sure of the best way. There's two things I can think of:
|
Sorry for not replying earlier. If I understand your comment correctly, then you're suggesting two things:
That's actually very smart. I am a bit worried about the extra complexity introduced by having a third kind of condition, and what that means for managing IAM policies. So I wonder if the following might be sufficient:
Wdyt? |
No problem. I have to admit thinking about this in more depth, and taking a look at how our projects are setup, I am concerned that this could really complicate how permissions are managed and it might appear quite messy in the IAM console. What you're suggesting is a good middle ground, this feels a lot cleaner and much more scalable. This will work well for us aswell. |
Great. I still have to double-check whether this approach will work properly with the Policy Analyzer API, but I'd be happy to move ahead with this. |
Let's not overlook the scenario where IAM admin is done entirely via service accounts, where no users of the project have the IAM Admin role. In that scenario, making only the IAM admin users the approvers leaves us with no approvers. I see the complications of naming groups and users in the policy conditions, and I'd prefer not to go there. Perhaps a conditional policy could offer one or more of the following approver options:
A conditional binding could specify 2) or 3) or both. If neither is specified, case 1) applies. In case 3, what goes into the conditional binding is the role name(s) of one or more other bindings (not the conditional one they are approvers of). The roles could be predefined or custom roles, and the resources they are attached to would not be specified, i.e. they would be roles from whatever resource policies are inherited by the targeted resource or the project it's in. The advantage of identifying approvers by referring to other role bindings is that users and groups are stored in bindings just as they are for everything else, making that more manageable overall. |
That's a good point. However, I'm a bit wary of introducing dependencies between roles or imposing some hierarchy among them as that might create subtle paths to escalate privileges and could make it difficult to reason about who has access to which resources. I think Project IAM Admin (or more precisely, the |
Yeah I guess the only comment is that we would love to set |
Hello @jpassing @duxbuse @duxbuse @RickB-2840 @proppy Can anyone help me where to set the peer approvers so that its visible on JIT application . Do we have any steps to do it |
@rajat2911, I assume you're asking how that works currently? This doc has more details:
So there's no explicit step to "set peer approvers" -- if you grant the same role to multiple users, and add the This thread here is about an alternative way to designate approvers that's not implemented yet. |
Had a thought, would be interesting to be able to give someone And depending on where that role is given will depend on what they are able to approve. @jpassing It might also be worthwhile to have a config flag to allow peers to approve or only |
JIT Groups now takes a different approach and lets you choose which users can request vs. which users can approve requests. For example:
Note that JIT Groups supersedes the JIT Access project, which has largely outlived its purpose as privileged access management is now available as a platform feature in Google Cloud . JIT Groups addresses an adjacent, but different use case -- self-service access management, or entitlement management, for all types of Google Cloud access, not only privileged access. |
Thanks @jpassing I though PAM was going to supersede JIT. Or is that only privileged access rather than all access? |
Yes, exactly. For managing short-term privileged access, PAM should be the preferred choice going forward. This project is shifting its focus away from the privileged access use case towards enabling self-service access management for all kinds of access, based on groups. I described this in a bit more detail in JIT Access vs Privileged Access Manager, and what's next for JIT Access. |
Hello, we are exploring using this where I work and we have some concerns about allowing peers to approve each others requests.
Is there any appetite for allowing a configurable list of approvers instead? I appreciate this isn't an issue more of a feature request.
I'm happy to try and contribute this in my spare time if you think this is something that would be accepted as a PR.
The text was updated successfully, but these errors were encountered: