aws lambda-自定义API访问策略和API网关



我需要一些帮助来消除一些疑虑。我一直在与Kong和Amazon API网关打交道,但不明白如何让我的自定义ACL与这些API网关一起工作。

让我试着用一个例子来解释:

当前:

我已经将所有ACL映射到API端点和谓词,我从MySQL DB(针对不同的用户组)中选择并将其存储在redis服务器中,每个API调用都检查redis和allow/disallow端点的用户访问权限。

使用API网关:

使用API网关,我可以轻松地验证用户并传递身份验证令牌,但我找不到向网关传递更多数据的方法,因此网关可以在不返回身份验证服务器的情况下检查身份验证+ACL策略。

Kong有ACL插件,但找不到正确的信息。

亚马逊API网关有自定义授权器选项和通过Lambda函数传递策略的选项,但我不确定Lambda函数是否可以接受我的自定义ACL。

这里有人面临这种问题吗?

我不明白为什么不能通过自定义授权程序来完成这项工作。自定义授权器只是您编写的Lambda函数,用于通过您想要的任何方法授权请求。因此,您可以创建一个Custom Authorizer Lambda函数,通过将请求与Redis服务器中的数据进行比较来验证请求。

您可以使用API网关自定义授权器,这些授权器是为这种类型的用例开发的。您只需实现自定义authorizer函数即可查询MySQL数据存储,并根据用户令牌为API返回适当的IAM策略。

此外,API网关为授权人决策提供了一个缓存层,因此您可能根本不需要redis。只需让授权人直接查询数据库,并在授权人上设置适当的缓存TTL即可。

请参阅:

客户授权开发人员指南

客户授权人示例

谢谢,Ryan

相关内容

  • 没有找到相关文章

最新更新