使用 Lambda、Cognito 或 IAM 在 AWS 上进行用户身份验证(注册和登录)

User Authentication (Signup & Login) on AWS with Lambda, Cognito or IAM

我一直在寻求使用各种 AWS 服务来处理我们下一个主要项目的基础设施。我们开始研究 EC2 实例上的 docker 个容器,但在进一步研究 AWS Lambda 之后——这似乎是一条值得探索的途径。

使用 AWS Lambda 范例,我们只需使用 Lambda 函数作为逻辑粘合剂,将我们的数据和事件(来自其他 AWS 服务)保存在一起。

例如,如果我们产品的用户创建了一条新记录,则可以在该事件上触发 AWS Lambda,我们可以调用 lambda 函数将该记录添加到 AWS Cloudsearch,从而使我们的搜索保持最新。

在这种范例中涉及用户管理、身份验证等时,我有点不确定。我已经阅读了一些关于 IAM 和 Cognito 的文档,以寻找一种 AWS 服务来卸载用户注册、登录、注销、忘记密码等。看起来这并不是这些服务的实际用途。 IAM 是组织(而非用户群)的身份管理,而 Cognito 更侧重于跨多个设备或应用程序实例同步身份信息(post 身份验证)。

我目前想知道我是否应该自己编写注册、登录、忘记密码等代码作为 lambda 函数?或者 AWS 堆栈中是否有一些解决方案或一组解决方案可以解决这个问题?

您可以将 your own authentication system 与 Cognito 结合使用,然后使用 IAM 进行授权,甚至是针对您的用户群。

勾选authentication flow and some more examples