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

RFD 201: Native Auto Approval #51979

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

bernardjkim
Copy link
Contributor

@bernardjkim bernardjkim commented Feb 7, 2025

Supports #51682
This RFD describes native auto approval implementation. Rendered

@bernardjkim bernardjkim force-pushed the rfd/0201-native-auto-approval branch from bad0770 to 222d9bb Compare February 7, 2025 21:14
@bernardjkim bernardjkim marked this pull request as ready for review February 7, 2025 21:39
@github-actions github-actions bot added rfd Request for Discussion size/md labels Feb 7, 2025
@bernardjkim bernardjkim added the no-changelog Indicates that a PR does not require a changelog entry label Feb 7, 2025
enforce the same gated access, but it would reduce a lot of friction if access
requests can be automatically approved in the dev environment.

## Goals
Copy link
Contributor

Choose a reason for hiding this comment

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

This sounds great! Couple of questions:

  • When will Terraform support for the changes be added? This is how we deploy all internal Teleport resources currently, and will be needed to adopt this internally.
  • I see "user" used throughout this document. Will this support tbot roles/service users, or just "real" users? For our internal use case, the requests will come from a tbot service user.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

  • The Teleport Terraform provider already supports access monitoring rules, but the tf resource schema will need to be updated with the new automatic_approval field. I'll add a note about Terraform support, and add an additional step in the Implementation Plan section.
  • I'm not too familiar with the capabilities of a bot user, but I would assume they would have the ability to make an access request just like a regular user, assuming that they have the correct role permissions. I'll investigate a bit more on this topic and add a section.

Copy link
Collaborator

@zmb3 zmb3 left a comment

Choose a reason for hiding this comment

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

I only got halfway through, but it's Friday and I'm signing out for the weekend. Will pick it up again next week!

but a big part of this feature request is to provide a frictionless user
experience. For example, access lists can be used to achieve similar behavior,
but a limitation with access lists is that the user must logout and login again
to renew their certificates to obtain the new roles.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This limitation applies to access requests too, doesn't it?

3. Automatic approvals can be configured to approve access to select resources.
For example, the requesting user is pre-approved to access all resources in the
`dev` environment.
4. Automatic approvals can be configured using Access Monitoring Rules.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this a goal or an implementation detail?

Note: Access monitoring rules do not currently support access requests by
resources, in any capacity. It will require more than just extending the access
monitoring rule predicate language to support this use case. Goal [3] will be
left out of scope for this RFD. It probably deserves it's own separate RFD. As a
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
left out of scope for this RFD. It probably deserves it's own separate RFD. As a
left out of scope for this RFD. It probably deserves its own separate RFD. As a

left out of scope for this RFD. It probably deserves it's own separate RFD. As a
workaround to support this use case, auto approval rules can be configured to
approve a role that only has the permission to access resources in a specific
environment.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we be more specific here? Teleport doesn't have any concept of "environments" - we have labels though. I assume you mean some sort of label selector here?

Comment on lines +68 to +69
This feature will be supported by a new `access-native` plugin. This native
plugin will implement the same interface as already existing access plugins.
Copy link
Collaborator

Choose a reason for hiding this comment

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

It's a bit odd for the RFD to start with "users don't want to manage auto approval via a plugin" and have the proposed solution be yet another plugin.

If it's another plugin, why are we calling it "native" auto approval? To me, native suggests built-in and available by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-changelog Indicates that a PR does not require a changelog entry rfd Request for Discussion size/md
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants