Google App Engine взаимодействует с Compute Engine по внутренней сети

Мы создаем приложение в облаке Google. Мы используем App Engine в качестве интерфейса и Compute Engine в качестве backend. На этих экземплярах Compute Engine я запускаю TCP-сервер, который принимает определенные "командные" сообщения. Экземпляры Compute Engine также подключены к Интернету за брандмауэром и балансировщиком нагрузки для входящего трафика https. Я хотел бы привязать TCP-сервер к локальным IP-адресам и разрешить только экземпляры App Engine (они находятся в одном проекте) для подключения к порту "команды" TCP через socket api.

Пока мы ограничиваем входящие подключения Google Ip только

Документация Compute Engine:

Каждый экземпляр является членом одной сети. Сеть выполняет ту же функцию, что и маршрутизатор в домашней сети: она описывает сетевой диапазон и IP-адрес шлюза, обрабатывает связь между экземплярами и служит в качестве шлюза между экземплярами и вызывающими абонентами вне сети. Сеть ограничена одним проектом; он не может охватывать проекты. Любая связь между экземплярами в разных сетях, даже внутри одного и того же проекта, должна осуществляться через внешние IP-адреса. В API сеть представлена ​​объектом Network.

Можно ли построить безопасную настройку связи? Возможно, с экземплярами бэкэнда App Engine?

Ответ 1

В настоящее время нет способа настроить частную сеть между GCE и GAE. Ограничение диапазона IP-адресов Google не является безопасным, так как любой пользователь GAE или GCE может подключаться к вашему серверу. Поэтому я рекомендую вам аутентифицировать входящие соединения на вашем TCP-сервере, чтобы проверить, что соединение происходит из ваших экземпляров GAE.

Ответ 3

В настоящее время В 2016 году, когда Google Cloud запустило гибкую среду Google Cloud appengine/docs/flexible/. Так что теперь это возможно, потому что теперь как движок приложения, так и вычислительный движок присутствуют в одной сети, и поэтому с помощью движка приложения вы можете получить доступ к вычислительному движку, используя свой внутренний Ip, также не забудьте удалить все внешние правила брандмауэра для ваших вычислительных движков, если вы только хотите разрешить доступ к движку приложения.

Ответ 4

С 9 апреля 2019 года вы можете использовать безсерверный коннектор VPC, чтобы приложение App Engine могло подключаться к другим сервисам в Google Cloud Platform. Я ссылался на документы стандартной среды Python, но это относится к любому языку в App Engine в любой среде выполнения.