Я работаю над многопользовательским приложением 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 (например, Примеры одиночного и множественного подключения Site-to-Site VPN) предназначены для классического случая использования пула VPN в одной организации (например, офис в Нью-Йорке, офис в Лос-Анджелесе и т. д.).
Я готов использовать любой инструментарий AWS (VPC, шлюзы Nat, балансировщики сетевой нагрузки и т. д.) и могу динамически настраивать сервисы по мере предоставления новых клиентов.
Если ответ: Нет, это больше проблем, чем пользы, вам лучше просто запустить один EC2 для каждого клиента. это тоже хорошо бы знать.
amazon-web-services vpn мультитенантность