自定义API访问策略和API网关

时间:2016-07-22 18:29:55

标签: aws-lambda aws-api-gateway kong

我需要一些帮助来消除一些疑虑。我一直在使用Kong和Amazon API Gateway,但无法理解如何让自定义ACL与这些API网关一起使用。

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

目前:

我将所有ACL映射到API端点和动词,我从MySQL DB(针对不同的用户组)中选择并将其存储在redis服务器中,并且每个API调用都会检查用户对redis的访问权限以及允许/禁止端点。

使用API​​网关:

使用API​​网关,我可以轻松验证用户并传递身份验证令牌,但我找不到将更多数据传递到网关的方法,因此网关可以检查身份验证+ ACL策略,而无需返回到auth服务器。 / p>

Kong有ACL插件但找不到合适的信息。

Amazon API Gateway具有自定义授权选项和选项,可以通过Lambda函数传递策略,但是我不确定Lambda函数是否可以接受我的自定义ACL。

这里有人遇到过这种问题吗?

2 个答案:

答案 0 :(得分:0)

我不知道为什么你不能通过自定义授权器这样做。自定义授权程序只是您编写的Lambda函数,可通过您想要的任何方法对请求进行授权。因此,您将创建一个Custom Authorizer Lambda函数,通过将其与Redis服务器中的数据进行比较来验证请求。

答案 1 :(得分:0)

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

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

请参阅:

Customer Authorizer developer guide

Customer Authorizer examples

谢谢, 莱恩