如何在AWS API Gateway中基于IAM用户映射终端节点?

时间:2018-12-28 19:25:59

标签: amazon-web-services aws-lambda aws-api-gateway

在EC2服务器上,我们在不同端口上托管了相同API的不同实例。喜欢

http://localhost:9000/api/v1/customer
http://localhost:9001/api/v1/customer
http://localhost:9002/api/v1/customer

这些端点没有公开公开。但是每个端点对于我们的客户都是唯一的。

现在,我们的客户希望使用REST API访问customer信息。因此,我尝试使用AWS API Gateway创建公开公开的REST API。想法是一旦从客户端收到经过身份验证的请求,然后将请求传递到正确的端点即可。

我为每个客户端创建了IAM个用户,因此每个客户端都有自己的access keysecret key。然后在AWS API Gateway console中创建了一个新的REST API,将Method Request配置为使用AWS_IAM授权。现在,我必须配置Integration Request

如何在Integration Request中基于IAM用户选择合适的端点?

1 个答案:

答案 0 :(得分:2)

API网关目前不支持基于输入参数的条件路由。这是我们将来可能会支持的事情,但是我没有时间表何时可用。

您需要支持多少个客户?如果您没有太多,则可以为每个客户单独处理一个阶段,并使用stage variables。在这种情况下,变量将是服务器端口。

然后,您将授予您为该客户端配置的每个IAM用户permissions to only the stage

请注意,有一个limit on the number of stages per rest api,虽然可以增加,但不能无限期地增加。如果您希望将这种方法用于大约50个以上的客户端,则可以考虑使用单个资源或每个客户端使用api。