这在 API 网关中可能吗?

Is this possible in API Gateway?

有人要求我为我的组织研究 AWS 设置,但这不是我的经验领域,所以这有点挑战。在做了一些研究之后,我希望 API Gateway 对我们有用,如果有人能告诉我我的思路是否正确,我将不胜感激。 计划是:

  1. 我们创建了一个具有多个私有子网的 VPC。子网中的 EC2 实例将托管基于浏览器的应用程序,如 Apache Guacamole、Splunk 等。
  2. 我们将带有 REST API 的 API 网关附加到 VPC,这将允许用户仅访问 'their' 子网
  3. 上的应用程序
  4. 用户从外部 API 跟随 link 到 API 网关,这将提供 Oauth2 凭据。
  5. API 网关 REST API 验证他们的凭据并为他们提供一个带有 links 的页面到仅 'their' 子网中服务的私有 IP 地址.然后他们可以单击 link 并打开 Splunk、Guacamole 浏览器页面等

我也将 Client VPN 视为一种可能的解决方案,但我的组织希望用户能够从现有 API 直接连接到各个子网,而无需下载任何其他工具(这是由于用户的专业知识水平不同以及远程工作的需要)。如果有更好的解决方案可以提供相同的工作流程,那么我很乐意实施它。

感谢您的帮助

这听起来理论上可行。我主要担心的是 Apache Guacomole 或您尝试公开的任何其他服务是否需要长期 HTTP 连接。 API 网关有一个硬性要求,即所有请求的时间必须不超过 29 秒。

我还建议考虑通过 public Application Load Balancer 公开这些服务,而不是 API 具有 OIDC authentication support 的网关。您需要查看您尝试公开的特定服务的要求,以评估 API 网关或 ALB 是否更合适。


我个人会通过使用基础架构即代码配置这些环境中的每一个来解决这个问题,这样您就可以通过简单地 运行 您的 IaC 工具和一些参数来创建新的客户端环境,例如客户端 ID 和您要使用的域名或子域。实际上,我会在各自的 VPC 中启动每个客户端,因为听起来您希望每个客户端的环境都与其他客户端隔离。