首页 > 解决方案 > 如何在 AWS API Gateway 中基于 IAM 用户映射端点?

问题描述

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

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

这些端点不公开。但是每个端点对于我们的客户来说都是独一无二的。

现在我们的客户想要customer使用 REST API 访问信息。所以我试图用它AWS API Gateway来创建公开暴露的 REST API。想法是一旦从客户端收到经过身份验证的请求,然后将请求传递到正确的端点。

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

如何根据 IAM 用户选择合适的端点Integration Request

标签: amazon-web-servicesaws-lambdaaws-api-gateway

解决方案


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

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

然后,您将仅向每个 IAM 用户授予您为该客户端配置的阶段的权限。

请注意,每个 rest api 的阶段数是有限制的,虽然可以增加,但不能无限增加。如果您预计需要为超过 50 个客户端使用此方法,您将需要考虑使用单个资源或每个客户端的 REST API。


推荐阅读