-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Make Web Rate Limits Configurable #42132
Comments
Related: #34611 |
User impactUsers, especially those with Teleport assets behind a NAT or proxies not configured to pass the
Source of line 420 in version 14.3.20 / 16.1.3 equivalent WorkaroundsIn case of misconfigured reverse proxies or ingress(es) in Kubernetes deployments, the fix is to simply ensure that In case of user deployments where many assets are behind a NAT in relation to Teleport Proxy, a potential workaround is to use a TLS Terminating Reverse Proxy in front of Teleport, which caches Another NAT workaround is to reconfigure so Teleport assets don't use the NAT, however, this is usually not a straightforward fix, and in many cases not possible for business or technical reasons. |
We removed these rate limits in #42799, this should no longer be an issue. |
@zmb3 one of our team members noticed that #42799 was released as part of https://github.com/gravitational/teleport/releases/tag/v15.4.3. As I mentioned we still get HTTP 429 in some scenarios for
|
@zmb3 I've been hitting this at home when some automation I have $ while ! curl -s -o /dev/null -w '%{http_code}' 'https://platform.teleport.sh/webapi/auth/export' | grep 429; do
printf '.'
done
.............................429 Would you be opposed to me removing this limit here? This should be a pretty easy change. If you're okay with it, I can file a PR next week. |
@fheinecke why do you need to hit the export endpoint so many times in such a short timespan? I think all unauthenticated endpoints which do any non-trivial amount of work should continue to be rate limited to prevent DoS, but we can discuss changing the limits if the current limits are preventing legitimate use cases from functioning properly. |
What would you like Teleport to do?
The #24623 introduced rate limiting with hardcoded limits for all unauthenticated endpoints. Some endpoints, such as ping/connection/update in the case of TLS Routing - ALB setup, are used very often.
Certain workflows, like custom script/Ansible playbooks, perform many API calls, quickly draining this limit and resulting in 429 HTTP errors without retry mechanism.
Currently, Web API limits are not configurable and hardcoded values are used:
teleport/lib/web/apiserver.go
Line 485 in edc6809
Rate Limiting values should be configurable by
teleport/lib/config/fileconf.go
Line 598 in edc6809
What problem does this solve?
It allows handling custom intensive workloads without being hindered by rate limiting.
The text was updated successfully, but these errors were encountered: