AWS:从公共 Web 应用程序访问私有 API

AWS:从公共 Web 应用程序访问私有 API

我有:

  • 在内部负载均衡器后面的 ECS 集群上运行的私有 API。此 API 供 VPC 内的其他服务使用。
  • 一个公共的 Next.js Web 应用程序。

我需要的:

  • 向 Next.js Web 应用授予私有 API 访问权限。来自此应用外部的互联网流量不得访问该 API。
  • 防止机器人等滥用,只应允许真实的人类流量。
  • 可能对原始客户端 IP 进行速率限制。

我正在考虑在 Next.js 服务器上结合使用反向代理配置,将 API 请求代理到内部负载均衡器,并在前端使用某种 Google recaptcha 来仅允许人工请求(但我对这里所述的 recaptcha 令牌 2 分钟的持续时间有些担忧https://developers.google.com/recaptcha/docs/verify)。对于速率限制要求,Next.js 代理配置中的 X-Forwarded-For 标头和内部平衡器上的 X-Forwarded-For 附加行为是否能解决问题?通过这种方式,私有 API 理论上应该能够提取原始客户端 IP 地址并进行速率限制。

您觉得如何?这可行吗?还有更好的主意吗?

相关内容