【发布时间】:2021-06-30 16:53:40
【问题描述】:
我目前正在为我的 Lambda 自定义授权函数使用 the Auth0 JWKS library 检索 JWKS 密钥。
正如this issue on the JWKS library 中所解释的,显然 JWKS 中内置的公钥 ID 缓存不适用于 lambda 函数,因此他们建议将密钥写入 tmp 文件。
cache=true 不起作用的原因有哪些?
据我所知,应该没有区别会阻止内存缓存与 lambda 函数一起使用,但允许在 tmp 文件夹上进行基于文件的缓存是合适的解决方案。
据我所知,唯一会发生的问题是容器速率限制 JWKS API 的产生,而不是使用创建的容器的内存进行缓存的行为。
在这种情况下,将此令牌外部存储在 Lambda 中的最佳模式是什么?
【问题讨论】:
-
多么可怕的 github 问题......为什么没有解释或参考为什么原始缓存不起作用。我会用“是”回答你的第一个问题,第二个回答“好问题”,第三个回答“不知道(还)”。
-
@luk2302 正是我的想法。我对此感到非常困惑。是否有任何实现特定的原因来解释为什么 LRU(如果我没记错的话是某种形式的队列系统)缓存不会在 AWS lambda 的内存中保持活动状态?我认为真正的问题是,如果在规模上,打开新的 lambda 容器仍然会限制端点,那么最好将密钥缓存在 redis 之类的东西中。但这与默认缓存是否有效无关 - 更多的是一种优化以确保没有速率限制
-
我想我会在 Github 上跟进这个问题,询问它为什么不起作用
标签: amazon-web-services aws-lambda jwt aws-api-gateway auth0