【发布时间】:2019-08-24 20:27:53
【问题描述】:
我想使用 Kong 作为我所有上游服务的 API 网关。我想使用 API 密钥,以便我的客户可以使用它来使用他们被允许使用的一些 API。
有一个用于管理 API Keys 的插件:https://docs.konghq.com/hub/kong-inc/key-auth/
但我想知道是否可以将属性添加到某些 API 密钥或将其链接到某些配置。
让我用一个例子来解释:
我有 3 个 api
- API 1
- API 2
- API 3
在 Kong API 网关上,我想使用速率限制。所以我想为 2 个具有某些属性的客户生成 API 密钥
- 客户 X:基本订阅,API 1 的速率限制为每分钟 10 次请求,API 2 的速率限制为每分钟 20 次
- 客户 Y:API 2 的高级订阅,其速率限制为每分钟 5000 个请求,API 3 每分钟 1000 个请求
所以在 Kong 中,我为这 3 个 API 创建了 3 个服务,并向其中添加了速率限制插件。有没有办法让速率限制插件知道(基于请求中发送的 API 密钥)它应该对刚刚输入的请求使用什么限制?
在我看来,我每次都需要为相同的 API 创建具有特定速率限制和特定值的新服务。在处理大量客户和 api 时,这感觉有点难以管理。
是否可以根据传递的 API 密钥获取速率限制值?
或者有什么解决办法吗?或者这是我们在 API 网关中想要的实际行为,如果是,为什么?
【问题讨论】:
-
我可能错了,但我认为这是Kong的限制。没有 ACL / 策略的概念。您必须对每个消费者应用不同的速率限制插件。因此,您要么根据上面的建议创建大量服务,这从设计的角度来看毫无意义……要么为每个键/消费者创建一个 RL 插件 - 也有点时髦。
标签: api-key api-gateway kong kong-plugin