0

我目前有一个 S3 存储桶运行一个带有 Cognito 用户身份验证的静态网站。我从这个存储桶调用一个 Lambda 函数来验证用户的 JWT 令牌。我试图限制用户能够对该功能进行的调用次数,例如每小时 1 次。我该怎么做呢?

  • 我最初的计划是在前端做一些事情,但这很容易被绕过。
  • 我查看是否有适用于此的 AWS 服务,但我发现最接近的是 Cloudtrail,它并不真正适合这个
  • 我目前的计划是创建 Cognito userAttributes 来跟踪用户进行了多少次调用并通过 lambda 更新它们,但这也感觉是错误的方法
4

1 回答 1

0

AWS 没有针对此类用例的服务。你必须自己构建一些东西。

就像我会稍微改变架构一样:

我不会直接调用 lambda,而是先放置一个 lambda,它将用户的计数器保存在 ElastiCache 之类的缓存中。根据这个函数的结果是限制还是让它通过,我将执行实际的 lambda 以通过使用 lambda 目标来验证用户的 JWT 令牌,或者在它们之间添加一个事件总线以更优雅地处理它们。

我接受这里有一些活动部分,但这肯定会让事情变得更容易。

我看到您直接从 S3 提供服务,请尝试查看 AWS API Gateway Service Integration 更多用于身份验证和验证的选项,包括限制。例如

于 2020-12-26T14:33:55.010 回答