我正在开发一款多租户 SaaS 应用,该应用通过 TCP/IP 上的最小底层协议与客户本地系统集成。顾名思义,MLLP 不支持任何加密,因此通常通过在主机之间配置 VPN 来实现安全性。
SaaS 应用程序在 EC2 实例上运行,并为每个新租户配置一个新的监听端口。连接是双向的,因此 SaaS 应用程序会监听/接收来自客户本地系统的消息,并向客户本地 API 端点发送消息。
+-----------------+
VPN-1 /---------------------\ | SaaS App Server |
| | | |
[Customer1 on-prem API]==========|====[] <-> []====|========== :3001 |
| | | |
\---------------------/ | |
| |
VPN-2 /---------------------\ | |
| | | |
[Customer2 on-prem API]==========|====[] <-> []====|========== :3002 |
| | | |
\---------------------/ | |
| |
VPN-N /---------------------\ | |
| | | |
[CustomerN on-prem API]==========|====[] <-> []====|========== :N |
| | | |
\---------------------/ | |
+-----------------+
是否可以为单个主机或服务配置多个 VPN,以便客户拥有安全、隔离的连接,而我可以运行单个应用服务器/服务?
我找到的所有适用于多个 VPN 的示例(例如站点到站点 VPN 单连接和多连接示例) 是针对同一组织内池化 VPN 的经典用例(即纽约办事处、洛杉矶办事处等)。
我愿意使用 AWS 工具包中的任何内容(VPC、Nat 网关、网络负载均衡器等),并且可以在为新客户提供服务时动态配置服务。
如果答案是:不,这样做的麻烦比它的价值更大,你最好为每个客户运行一个 EC2知道这一点也很好。