我可以使用cloudwatch来实施该解决方案吗?
我研究了 AWS cloudwatch,但我只能为一般登录设置指标,而不能为每个用户设置指标。或者我应该使用 lambda 触发器和 RDS 来计算用户的登录尝试次数?
Cloudwatch 作为一项服务只能记录您的触发器。正如您所提到的,您可以计算违规的发生次数,然后发送超出预定阈值的事件。
我在 lambda 触发器方面获得了积极的经验。您可以使用 pre- 和 postAuthentication 触发器轻松实现此操作。 有一个相关问题和答案概述了解决方案:
在预身份验证(在成功身份验证之前触发)中,查找用户(因为用户未经过身份验证,因此使用 adminGetUser,并使用 adminUpdateUserAttributes 增加自定义属性。如果增加的值大于允许的登录失败次数,则使用 adminDisableUser 禁用用户。 在身份验证后(成功登录后触发)中,将自定义属性重置为零。
请注意,如果您想避免暴力攻击,这可能没有必要,因为 AWS 具有针对认知登录端点的内置保护和速率限制。