Наша текущая установка:
Client -> ALB -> Target Group -> auto-scaled instances
У нас есть несколько URL-адресов, которые мы хотели бы «спрятать» за VPN-доступом, например:
Client -> VPN -> ALB -> Target Group -> auto-scaled instances
Для экземпляров со статическим IP-адресом можно настроить доступ группы безопасности к портам из группы безопасности экземпляра VPN. Но наш VPN настроен на маршрутизацию только внутреннего трафика, а не интернет-трафика, поэтому он не маршрутизирует необходимый URL.
Например, URL-адрес: "https://www.something.com/admin"
Одна из наших идей - использовать собственный порт: "https: //www.something: 8099 / admin", затем в группе безопасности ALB настройте этот порт так, чтобы он был доступен только из группы безопасности экземпляра VPN. Это все еще не работает, поскольку VPN не будет маршрутизировать интернет-трафик.
Я пытался изменить конфигурацию VPN (сервер доступа openVPN), но безуспешно. Даже когда я настроил VPN для маршрутизации всего интернет-трафика, он все равно не работал.
В каждом материале, который я нашел в Интернете по этой теме, предлагается изменить конфигурацию VPN для маршрутизации домена на определенный IP-адрес.
Есть ли способ добиться этого без жесткого кодирования IP-адресов? Очевидно, я не могу жестко запрограммировать внутренний IP-адрес ALB, поскольку он все время меняется, и я не могу жестко запрограммировать трафик конечного экземпляра, поскольку он автоматически масштабируется, а также постоянно меняется.
Одно из решений, которое я могу придумать, - это использовать два набора записей, например www.example.com
и admin.example.com
.
www.example.com
-> Public ALB(Open to internet)
-> Target Group (other then /admin)
-> auto-scaled instances
При этом присоедините еще одну целевую группу, которая направляет /admin
на 404 или ошибку.
admin.example.com
-> Internal ALB(Open to VPN)
-> Target Group (/admin)
-> autoscaled instances
AWS поддерживает разделенные домены, если зона / записи управляются в Route53.
Доменные имена преобразуются в IP-адреса путем отправки запросов DNS-серверам. Если я правильно понял, вы хотите, чтобы доменное имя разрешалось во внутренний IP-адрес, когда люди используют VPN.
Это можно сделать, внедрив собственный DNS-сервер и указав своим VPN-клиентам использовать этот DNS-сервер при подключении через VPN. На DNS-сервере вы настроите зону для something.com
, где вы добавляете записи A для доменов / поддоменов, которые указывают на внутренние IP-адреса, которые вы хотите использовать.
В противном случае этот DNS-сервер может действовать как обычный рекурсивный преобразователь DNS.