Статический IP-адрес для доступа к API машинного обучения GCP через поток gRPC через HTTP/2

Мы живем за корпоративным прокси / брандмауэром, который может использовать только статические IP-правила, а не FQDN. Для нашего проекта нам нужно получить доступ к Google Speech To Text API:https://speech.googleapis.com. Если за пределами корпоративной сети, мы используем для этого поток gRPC через HTTP/2.

Идеальный сценарий выглядит так:
Corporate network -> static IP in GCP -> forwarded gRPC stream to speech.googleapis.com

Мы пытались создать глобальный статический внешний IP-адрес, но не смогли настроить балансировщик нагрузки, поскольку он может подключаться только к виртуальным машинам, а не к API.

В качестве альтернативы мы думали использовать вывод nslookup speech.googleapis.com Диапазоны IP-адресов и обновляйте их ежедневно, хотя это кажется довольно "грязным".

Я знаю, что мы можем настроить ресурс / виртуальную машину вычислительного механизма и пересылать трафик, но это тоже не кажется изящным решением. Желательно, чтобы мы могли добиться этого с помощью существующих сетевых компонентов GCP.

Большое спасибо за любые указатели!

2 ответа

Решение

Нашли решение благодаря умным сетевым инженерам из Google, разместившим здесь ссылку для дальнейшего использования:

Вы можете использовать CNAME во внутреннем DNS, чтобы указать *.googleapis.com на private.googleapis.com. Эта запись в общедоступном DNS указывает на два общедоступных IP-адреса (199.36.153.8/30), которые недоступны из общедоступного Интернета, а доступны только через VPN-туннель или облачное соединение.

Итак, если настройка VPN-туннеля для проекта в GCP возможна (и это должно быть довольно просто, см. https://cloud.google.com/vpn/docs/how-to/creating-static-vpns), тогда это должен решить проблему.

Google не публикует блок CIDR для вашего использования. Попытки внести IP-адреса в белый список будут ежедневно. Большинство API-сервисов Google обслуживаются через Global Frontend (GFE). При этом для маршрутизации трафика используются заголовки HTTP Host, а не IP-адреса, что приведет к сбою маршрутизации.

Проблемой может быть поиск IP-адресов. DNS не обязательно возвращать все IP-адреса для разрешения имен при каждом вызове. Это означает, что поиск в DNS может вернуть один набор адресов сейчас и другой набор через час. Это крайний пример огорчения, которое вы вызовете из-за занесения IP-адресов в белый список.

Решение: обратитесь к поставщику брандмауэра.